Skip to content

Instantly share code, notes, and snippets.

View robzienert's full-sized avatar

Rob Zienert robzienert

View GitHub Profile
@robzienert
robzienert / Spinfile.yml
Last active April 19, 2017 06:36
DCD, Spinfile, Terraform, etc
# Required. Spinfiles have their own independent schema than what DCD has.
schema: "1"
# Defines the root application name. This can be undefined and will inherit the
# name the repository e.g. dir(__file__)
name: clouddriver
# Tags allow us to auto-generate Spinnaker Projects of any application that has
# the same tag. They have no other purpose but for discovery and organizational
# purposes.
tags:
- spinnaker
@robzienert
robzienert / .gitconfig
Last active September 12, 2024 15:15
my git aliases
[alias]
# Short-hand
cp = cherry-pick
cl = clone
ci = commit
co = checkout
br = branch
d = diff
r = reset
fu = fetch upstream
schema: "1"
id: barebones
stages:
- id: wait
type: wait
config:
waitTime: 5
# Type queries into this side of the screen, and you will
# see intelligent typeaheads aware of the current GraphQL type schema,
# live syntax, and validation errors highlighted within the text.
# We'll get you started with a simple query showing your username!
query {
user(login: "robzienert") {
id
email
organizations(first: 100) {
com.netflix.hystrix.exception.HystrixRuntimeException: jenkins-RelEng Jenkins-getProjects failed and no fallback available.
at com.netflix.hystrix.AbstractCommand$16.call(AbstractCommand.java:801)
at com.netflix.hystrix.AbstractCommand$16.call(AbstractCommand.java:785)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:99)
at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70)
at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70)
at rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70)
at com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication$1.onError(AbstractCommand.java:1514)
at com.netflix.hystrix.AbstractCommand$FallbackHookApplication$1.onError(AbstractCommand.java:1404)
at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:314)
---
# Each template would have a defaults.yml file defining both flags and vars that
# have default values. Running "tf.py help foo.j2" would print these out.
# The template name would be relative to the templates directory.
template: foo.j2
flags:
use_nat_gateway: true
# ...
vars:
private_subnets:
@robzienert
robzienert / spec.tf
Created July 10, 2015 22:09
Terraform GitHub provider
// github_teams have a direct 1-1 mapping with GitHubs internal API.
resource "github_team" "techops" {
organization = "${var.organization_id}"
permission = "read"
members = [
"robzienert",
"acm1",
"peterpalmieri"
]
}

Keybase proof

I hereby claim:

  • I am robzienert on github.
  • I am robzienert (https://keybase.io/robzienert) on keybase.
  • I have a public key whose fingerprint is FA97 622F 2EA2 5D8D 769E B366 9A86 6228 5C63 E633

To claim this, I am signing this object:

Taxonomy

  • Don't re-use CFN taxonomies for our own domain, except when directly interacting with the resources
  • Stacks -> Blueprints
  • StackTemplate -> Plan? Bundle? (Using "bundle" for the remainder of the doc)

Config YAML

  • Like YAML. In stratosphere, I was aiming to lock down a Python API first, which people could write ConfigLoaders for to implement any config format that suits them. Probably better to name them Marshalers if we wanted to go this route.
  • Like the class mapping.
from troposphere import Template
import troposphere.ec2 as ec2
import stratosphere.ext
import stratosphere.cloudformation
t = Template()
# ...
t.add_resource(ec2.Instance(