Skip to content

Instantly share code, notes, and snippets.

@ships
Created March 16, 2017 17:27
Show Gist options
  • Save ships/76b06411ccd2c85f05c559654963c6de to your computer and use it in GitHub Desktop.
Save ships/76b06411ccd2c85f05c559654963c6de to your computer and use it in GitHub Desktop.
foo-demo
---
name: empty
releases: []
stemcells:
- alias: ubuntu-local
name: bosh-aws-xen-hvm-ubuntu-trusty-go_agent
version: latest
update:
canaries: 5000
max_in_flight: 5000
canary_watch_time: 5000-600000
update_watch_time: 5000-600000
instance_groups:
- name: empty
jobs: []
instances: 15 -> 6
vm_type: tiny
stemcell: ubuntu-local
networks:
- name: default
curr_patent
stuff:
(findable VM x stemcell x recreate-worthy cloud stuff x packages etc) <-- have exactly 1 purpose
tiny_type/1-30 + ubuntu_local + network default
(empty instance/n)
activity:
empty_instance/1-30 -> tiny_type/1-15
new_patent
vms:
tiny_type/1-30 + ubuntu_local + network default
assign:
empty_instance/1-15 -> tiny_type/1-15
empty2_instance/1-15 -> tiny_type/16-30
mutations implied:
//create 15 new instances
assign vms 16-30 to new instances (i.e. download blobs & start)
empty_instance1
1 vm - tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance2 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance3 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance4 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance5 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance6 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance7 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance8 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance9 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance10 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance11 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance12 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance13 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance14 + tiny_type + ubuntu-local stemcell + network default + no jobs
empty_instance15 + tiny_type + ubuntu-local stemcell + network default + no jobs
9x "unload vm of type tiny"
"unload vm tiny/4564563123-456-456456--654645 (14)"
"unload vm tiny/13"
"unload vm tiny/12"
"unload vm tiny/11"
example 2
---
name: empty
releases:
- name: my-magic
version: 1.0 -> 1.1
- name: unchanging
version: 1.0
stemcells:
- alias: ubuntu-local
name: bosh-aws-xen-hvm-ubuntu-trusty-go_agent
version: 3363
- alias: ubuntu-new
name: bosh-aws-xen-hvm-ubuntu-trusty-go_agent
version: 3364
update:
canaries: 5000
max_in_flight: 5000
canary_watch_time: 5000-600000
update_watch_time: 5000-600000
instance_groups:
- name: magic
jobs:
- name: my-magic -> name: my-other-magic
release: my-magic release: my-magic
instances: 1
vm_type: tiny
stemcell: ubuntu-local
networks:
- name: default
- name: empty-recreate
jobs:
- name: my-magic
release: my-magic
instances: 1
vm_type: tiny
stemcell: ubuntu-local -> ubuntu-new
networks:
- name: default
- name: static
jobs:
- name: static
release: unchanging
instances: 1
vm_type: tiny
stemcell: ubuntu-local
networks:
- name: default
PATENT
vm_fancytype_1: (1)
= empty-recreate*
x BAXHUTGA 3364
x default
x tiny
vm_fancytype_2: (1)
= magic*
x BAXHUTGA 3363
x default
x tiny
vm_fancytype_3: (1)
= static*
x BAXHUTGA 3363
x default
x tiny
[no disks]
instance_fancytype_1: (1)
= empty-recreate*
x my-magic/my-magic 1.1
instance_fancytype_2: (1)
= magic*
x my-magic/my-other-magic 1.1
instance_fancytype_3: (1)
= static*
x unchanging/static 1.0
EMBODIMENT/PRECEDENT
vm_fancytype_a: (1)
= empty-recreate*
x BAXHUTGA 3363
x default
x tiny
vm_fancytype_b: (1)
= magic*
x BAXHUTGA 3363
x default
x tiny
vm_fancytype_c: (1)
= static*
x BAXHUTGA 3363
x default
x tiny
[no disks]
instance_fancytype_a: (1)
= empty-recreate*
x my-magic/my-magic 1.0
instance_fancytype_b: (1)
= magic*
x my-magic/my-other-magic 1.0
instance_fancytype_c: (1)
= static*
x unchanging/static 1.0
empty-recreate/aaaa-bbabaa-guid [vm-fancytype-a, instance-fancytype-a, 0d]
magic/de83-bbabaa-guid [vm-fancytype-b, instance-fancytype-b, 0d]
static/yayabaa-guid [vm-fancytype-c, instance-fancytype-c, 0d]
RECONCILER
aaaa-bbabaa-guid:
[ vm-ft-a -> vm-ft-1
is-ft-a -> is-ft-1
]
de83-bbabaa-guid:
[ # vm-ft-b -> vm-ft-2
is-ft-b -> is-ft-2
]
aaaa-bbabaa-guid:
[ # vm-ft-c -> vm-ft-3
# is-ft-c -> is-ft-3
]
OBLIGATION
"update aaaa-bbabaa-guid":
1. create cid-Q, a vm-ft-1
2. download jobs onto cid-Q
3. shutdown jobs on old vm (cid-A)
4. link and start jobs on cid-Q
5. delete/orphan cid-A
"update de83-bbabaa-guid":
1. download jobs onto old vm (cid-B)
2. shutdown jobs on cid-B
3. link and start jobs on cid-B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment