Skip to content

Instantly share code, notes, and snippets.

View timmyers's full-sized avatar

Tim Myers timmyers

View GitHub Profile
@timmyers
timmyers / index.ts
Created October 4, 2022 00:53
Pulumi IaC IAM User Change #2
import * as aws from '@pulumi/aws';
const defaultTags = { Creator: 'pulumi' };
const timUser = new aws.iam.User('tim.myers', {
name: 'tim.myers',
tags: defaultTags,
});
new aws.iam.UserPolicyAttachment('tim.myers-readonly', {
@timmyers
timmyers / index.ts
Created October 4, 2022 00:13
Pulumi IaC IAM Infrastructure Role
import * as aws from '@pulumi/aws';
const defaultTags = { Creator: 'pulumi' };
const awsAccountId = pulumi.output(aws.getCallerIdentity()).accountId;
const infrastructureRole = new aws.iam.Role('infrastructure', {
name: 'infrastructure',
assumeRolePolicy: {
Version: '2012-10-17',
@timmyers
timmyers / index.ts
Created September 30, 2022 19:58
Pulumi IaC IAM User Change #1
import * as aws from '@pulumi/aws';
const defaultTags = { Creator: 'pulumi' };
const timUser = new aws.iam.User('tim.myers', {
name: 'tim.myers',
tags: defaultTags,
});
new aws.iam.UserPolicyAttachment('tim.myers-admin', {
@timmyers
timmyers / index.ts
Created September 30, 2022 19:28
test
import * as aws from '@pulumi/aws';
@timmyers
timmyers / index.ts
Last active September 30, 2022 19:41
Pulumi IaC IAM User Import
import * as aws from '@pulumi/aws';
const timUser = new aws.iam.User('tim.myers', {
name: 'tim.myers',
}, { import: 'tim.myers'});
new aws.iam.UserPolicyAttachment('tim.myers-admin', {
user: timUser.name,
policyArn: aws.iam.getPolicyOutput({ name: 'AdministratorAccess'}).arn,
}, { import: 'tim.myers/arn:aws:iam::aws:policy/AdministratorAccess' });
@timmyers
timmyers / pyrmont.ts
Last active February 10, 2021 18:29
Infura Pyrmont Example
import axios from 'axios';
const instance = axios.create({
baseURL: 'https://eth2-beacon-pyrmont.infura.io/',
auth: {
username: process.env.INFURA_PROJECT_ID,
password: '',
},
});
@timmyers
timmyers / MutatedResource.ts
Last active February 9, 2021 19:38
Pulumi resource opts mutation
import * as pulumi from '@pulumi/pulumi';
import * as aws from '@pulumi/aws';
import * as datadog from '@pulumi/datadog';
export class MutatedResource extends pulumi.ComponentResource {
public constructor(name: string, args: {}, opts?: pulumi.ComponentResourceOptions) {
super('test:mutation', name, {}, opts);
// Totally reasonable shared options
const defaultOpts: pulumi.CustomResourceOptions = { parent: this };
@timmyers
timmyers / containerRegistry.ts
Created July 14, 2020 20:48
Pulumi DigitalOcean Container Registry
import * as pulumi from '@pulumi/pulumi';
import * as ocean from '@pulumi/digitalocean';
interface Options {
}
class ContainerRegistry extends pulumi.ComponentResource {
public name: pulumi.Output<string>;
public username: pulumi.Output<string>;
public password: pulumi.Output<string>;
@timmyers
timmyers / pulumiWaitFor.ts
Created May 29, 2020 21:05
Wait for a resource in pulumi
// Make sure x is a true output so pulumi doesn't try to run this function during preview.
const ingressIP = pulumi.all([x]).apply(async ([x]) => {
const kc = new k8sClient.KubeConfig();
const provider = (this.getProvider('kubernetes::') as any)
const kubeConfig = provider.kubeconfig as pulumi.Output<string>;
const ip = kubeConfig.apply(async (config) => {
kc.loadFromString(config);
const k8sApi = kc.makeApiClient(k8sClient.CoreV1Api);
@timmyers
timmyers / prysm.log
Created May 6, 2020 17:10
prysm schlesi sync loop
This file has been truncated, but you can view the full file.
2020/05/06 17:05:22 proto: duplicate proto type registered: ethereum.beacon.rpc.v1.BeaconStateRequest
2020/05/06 17:05:22 maxprocs: Updating GOMAXPROCS=4: determined from CPU quota
{"level":"warning","msg":"Using schlesi testnet config","prefix":"flags","time":"2020-05-06T17:05:22Z"}
{"level":"warning","msg":"Enabling experimental memory management for beacon state","prefix":"flags","time":"2020-05-06T17:05:22Z"}
{"database-path":"/db/beaconchaindata","level":"info","msg":"Checking DB","prefix":"node","time":"2020-05-06T17:05:22Z"}
{"level":"error","msg":"Invalid address of enr:-LK4QJS5Rn_kkA2MQpieVDUao5vkBj3kE15S_JJepGA9MNfndwHyfBWSjmAa5T_qvkGklrDiZXqlIAahXTm_eH_IXY8Ch2F0dG5ldHOIAAAAAAAAAACEZXRoMpCZJe_WAAAAAP__________gmlkgnY0gmlwhDMPd52Jc2VjcDI1NmsxoQOS1-hRSwsxLo2PH3RKtwWdjLdT1IMX2nqkQAlHs5E7LIN0Y3CCMsiDdWRwgi7 provided","prefix":"p2p","time":"2020-05-06T17:05:22Z"}
{"level":"warning","msg":"No bootstrap addresses supplied","prefix":"p2p","time":"2020-05-06T17:05:22Z"}
{"level":"info","msg":"Starting beacon