Skip to content

Instantly share code, notes, and snippets.

View geofffranks's full-sized avatar

Geoff Franks geofffranks

  • Nowhere in particular
View GitHub Profile
@geofffranks
geofffranks / spruce.json
Created February 16, 2018 19:28
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"---\n boshes:\n proto:\n #tagged: [proto] # defaults to env name, overridable\n url: https://sandbox.example.com:25555\n ca_cert: (( vault \"secret/bosh/sandbox/ssl/ca:certificate\" ))\n username: sb-admin\n password: (( vault \"secret/bosh/sandbox/admin:password\" ))\n stemcells:\n - bosh-lite\n\n \n envs: # optional - no env = use bosh of same name\n sandbox: {on: proto}\n preprod: {on: proto}\n prod: {on: proto}\n \n #sandbox: {on: sandbox}\n #preprod: {on: preprod}\n #prod: {on: prod}\n \n layout: |\n sandbox -\u003e preprod -\u003e prod\n auto sandbox\n auto preprod\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 20, 2018 14:42
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"---\nlist:\n- name: one\n version: v1\n- name: two\n version: v1\n- name: three\n version: v1\n- name: four\n version: v1\n\n"},{"filename":"file2.yml","contents":"---\nlist:\n- name: eins\n \u003c\u003c\u003c: (( inject list.one ))\n- name: zwei\n \u003c\u003c\u003c: (( inject list.one ))\n- name: drei\n \u003c\u003c\u003c: (( inject list.one ))\n- name: vier\n \u003c\u003c\u003c: (( inject list.one ))\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 20, 2018 14:46
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"---\nlist:\n- name: one\n version: v1\n- name: two\n version: v1\n- name: three\n version: v1\n- name: four\n version: v1\n- name: eins\n version: v1\n- name: zwei\n version: v1\n- name: drei\n version: v1\n- name: vier\n version: v1\n\n"},{"filename":"file2.yml","contents":"---\nlist:\n- (( delete one ))\n- (( delete two ))\n- (( delete three ))\n- (( delete four ))\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 22, 2018 20:17
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":[],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"---\nmeta:\n vault: (( concat \"secret/\" params.vault || \"nowhere\" ))\n \nparams:\n vault: my-vault\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 25, 2018 22:56
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"mjolnir.yml","contents":"--- # mjolnir.yml\nmeta:\n env: prod\n\nclusters:\n- name: mjolnir\n servers:\n - 10.0.1.1\n - 10.0.1.2\n env: (( grab meta.env ))\n instances: 2\n\n"},{"filename":"file2.yml","contents":"--- # hammer\nclusters:\n- name: hammer\n env: (( grab meta.env ))\n servers:\n - 10.1.1.1\n - 10.1.1.2\n - 10.1.1.3\n instances: 3\n\n"},{"filename":"file3.yml","contents":"--- # final\nsite_list:\n- (( concat \"mjolnir-\" clusters.mjolnir.env ))\n- (( concat \"hammer-\" clusters.hammer.env ))\n\nsites: (( join \",\" site_list ))\n\nfootprint: (( calc \"(clusters.mjolnir.instances + clusters.hammer.instances) * 2048\" ))\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 27, 2018 10:56
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"--- #\njobs:\n- name: foobar\n plan:\n - get: number-one\n - put: put-one\n - task: foobar-task\n input_mapping:\n number-one: some-value\n\n\n"},{"filename":"file2.yml","contents":"--- # hammer\n- type: replace\n path: /jobs/name=foobar/plan/task=foobar-task/input_mapping/new-input-mapping?\n value: value-of-new-input\n \n- type: replace\n path: /jobs/name=foobar/plan/-\n value: { \"get\": \"something\" }\n \n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":true,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 28, 2018 18:54
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.11.0","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"--- # cloud config\nnetworks:\n- name: prod\n subnets:\n - gateway: 10.0.1.1\n range: 10.0.1.0/24\n static: [ 10.0.1.2 - 10.0.1.10 ]\n\n\n\n\n\n"},{"filename":"file2.yml","contents":"--- # job definitions\ninstance_groups:\n- name: haproxy\n instances: 2\n jobs:\n - { name: haproxy, release: haproxy }\n networks:\n - name: prod\n static_ips: (( static_ips(0, 1) ))\n\nazs: (( prune ))\ncompilation: (( prune ))\ndisk_types: (( prune ))\nnetworks: (( prune ))\nvm_extensions: (( prune ))\nvm_types: (( prune ))\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 28, 2018 18:54
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.11.0","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"--- # cloud config\nnetworks:\n- name: prod\n subnets:\n - gateway: 10.0.1.1\n range: 10.0.1.0/24\n static: [ 10.0.1.2 - 10.0.1.10 ]\n\n\n\n\n\n"},{"filename":"file2.yml","contents":"--- # job definitions\ninstance_groups:\n- name: haproxy\n instances: 2\n jobs:\n - { name: haproxy, release: haproxy }\n networks:\n - name: prod\n static_ips: (( static_ips(0, 1) ))\n\nazs: (( prune ))\ncompilation: (( prune ))\ndisk_types: (( prune ))\nnetworks: (( prune ))\nvm_extensions: (( prune ))\nvm_types: (( prune ))\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 28, 2018 18:54
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.11.0","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"--- # cloud config\nnetworks:\n- name: prod\n subnets:\n - gateway: 10.0.1.1\n range: 10.0.1.0/24\n static: [ 10.0.1.2 - 10.0.1.10 ]\n\n\n\n\n\n"},{"filename":"file2.yml","contents":"--- # job definitions\ninstance_groups:\n- name: haproxy\n instances: 2\n jobs:\n - { name: haproxy, release: haproxy }\n networks:\n - name: prod\n static_ips: (( static_ips(0, 1) ))\n\nazs: (( prune ))\ncompilation: (( prune ))\ndisk_types: (( prune ))\nnetworks: (( prune ))\nvm_extensions: (( prune ))\nvm_types: (( prune ))\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created February 28, 2018 19:43
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.16.1","prune":["kong","channel"],"env":["HOME=/home/user","BRANCH_NAME=blue"],"cherry_pick":[],"yaml":[{"filename":"api.yml","contents":"--- # api.yml\napi:\n name: sportsbook-categories\n ms-name: sportsbook\n paths:\n public: /v4/sportsbook-api/categories/\n private: /v4/sportsbook-private-api/categories/\n methods:\n public:\n - HEAD\n - GET\n private:\n - HEAD\n groups:\n public:\n - sportsbook-categories-public\n private:\n - sportsbook-categories-private\n not_in_channels:\n - common\n - coral-retail\n - ladbrokes-retail\n\n\n\n"},{"filename":"defaults.yml","contents":"--- # defaults.yml\nheaders: []\napis:\n # Public API definitions\n - name: (( concat kong.env \".\" channel.prefix \".\" api.ms-name || api.name \".public\" ))\n ensure: \"present\"\nattributes:\n upstream_url: \u003e-\n (( concat \"http://\" channel.prefix \"-\" api.ms-name || api.name \".\" kong.service_domain ))\n \n"},{"filename":"kong.yml","cont