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 November 26, 2017 20:42
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"top:\n orig_key: This is a string attached to a key\n number: 50\n array1:\n - first element\n - second element\n - third element\n map:\n key1: v1\n key2: v2\n key3:\n subkey1: vv1\n subkey2: vv2\n subkey3:\n - nested element 1\n - nested element 2\n\n 1: 430.0\n 2: this starts as a string\n array2:\n - 1\n - 2\n - 3\n - 4\n inline_array_merge:\n - will be overwritten\n - this: will\n be: merged\n\n\n\ntop:\n new_key: this is added\n orig_key: this is replaced\n map:\n key4: added key\n key1: replaced key\n key2: ~\n key3:\n subkey3:\n - (( append ))\n - nested element 3\n array1:\n - (( prepend ))\n - prepend this\n array2:\n - over\n - ridden\n - array\n 1: You can change types too\n 2:\n even: drastically\n to: from scalars to maps/lists\n inline_array_merge:\n - (( inline ))\n - th
@geofffranks
geofffranks / spruce.json
Created November 26, 2017 20:42
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"top:\n orig_key: This is a string attached to a key\n number: 50\n array1:\n - first element\n - second element\n - third element\n map:\n key1: v1\n key2: v2\n key3:\n subkey1: vv1\n subkey2: vv2\n subkey3:\n - nested element 1\n - nested element 2\n\n 1: 430.0\n 2: this starts as a string\n array2:\n - 1\n - 2\n - 3\n - 4\n inline_array_merge:\n - will be overwritten\n - this: will\n be: merged\n\n\n\ntop:\n new_key: this is added\n orig_key: this is replaced\n map:\n key4: added key\n key1: replaced key\n key2: ~\n key3:\n subkey3:\n - (( append ))\n - nested element 3\n array1:\n - (( prepend ))\n - prepend this\n array2:\n - over\n - ridden\n - array\n 1: You can change types too\n 2:\n even: drastically\n to: from scalars to maps/lists\n inline_array_merge:\n - (( inline ))\n - th
@geofffranks
geofffranks / spruce.json
Created November 29, 2017 20:54
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":[],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"meta:\n jobs:\n ha_proxy:\n templates:\n - name: haproxy\n release: cf\n - name: metron_agent\n release: cf\n - name: consul_agent\n release: cf\n update: { serial: true }\n properties:\n router:\n servers: [ 10.10.1.2, 10.10.1.3 ]\n\njobs:\n- name: ha_proxy_z1\n instances: 1\n .: (( inject meta.jobs.ha_proxy ))\n resource_pool: medium\n networks:\n - name: cf1\n static_ips: [ 10.10.2.2 ]\n properties:\n metron_agent:\n zone: z1\n- name: ha_proxy_z2\n instances: 1\n .: (( inject meta.jobs.ha_proxy ))\n resource_pool: medium\n networks:\n - name: cf2\n static_ips: [ 10.10.3.2 ]\n properties:\n metron_agent:\n zone: z2\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created November 29, 2017 20:55
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":[],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"color-map:\n blue: not red\n green: not red\n yellow: not red\n red: is actually red\n\ncolors: (( keys color-map ))\n\n\n\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created November 29, 2017 20:55
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":[],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"color-map:\n blue: not red\n green: not red\n yellow: not red\n red: is actually red\n\ncolors: (( keys color-map ))\n\n\n\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created November 29, 2017 21:00
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":[],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"color-map:\n blue: not red\n green: not red\n yellow: not red\n red: is actually red\n\ncolors: (( keys color-map ))\n\n\n\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created December 1, 2017 10:32
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"domains:\n- example.com\n- another-company.com\n- play.spruce.cf\nports:\n- 80\n- 443\n- 4443\n- 2222\n\n\nhost_port_combos: (( cartesian-product domains \";\" ports ))\nwss_only: (( cartesian-product \"https://\" domains \":\" ports[2] ))\n\n\n\n"},{"filename":"file2.yml","contents":"---\ndomains: (( prune ))\nports: (( prune ))\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created December 1, 2017 10:32
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"domains:\n- example.com\n- another-company.com\n- play.spruce.cf\nports:\n- 80\n- 443\n- 4443\n- 2222\n\n\nhost_port_combos: (( cartesian-product domains \";\" ports ))\nwss_only: (( cartesian-product \"https://\" domains \":\" ports[2] ))\n\n\n\n"},{"filename":"file2.yml","contents":"---\ndomains: (( prune ))\nports: (( prune ))\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created December 1, 2017 10:32
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.1","prune":["meta"],"env":["HOME=/home/user"],"cherry_pick":[],"yaml":[{"filename":"file1.yml","contents":"domains:\n- example.com\n- another-company.com\n- play.spruce.cf\nports:\n- 80\n- 443\n- 4443\n- 2222\n\n\nhost_port_combos: (( cartesian-product domains \";\" ports ))\nwss_only: (( cartesian-product \"https://\" domains \":\" ports[2] ))\n\n\n\n"},{"filename":"file2.yml","contents":"---\ndomains: (( prune ))\nports: (( prune ))\n\n\n\n"}],"skip_eval":false,"fallback_append":false,"go_patch":false,"debug":false,"trace":false}
@geofffranks
geofffranks / spruce.json
Created December 5, 2017 10:13
a bit o' spruce, from http://play.spruce.cf
{"flavor":"1.13.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}