Add instance_groups property to schema

This commit is contained in:
Kris De Volder
2017-07-10 15:53:44 -07:00
parent fd7efb2aba
commit acfcc0866b
3 changed files with 63 additions and 0 deletions

View File

@@ -68,6 +68,8 @@ public class BoshDeploymentManifestSchema implements YamlSchema {
YType t_update = t_params; //TODO: https://www.pivotaltracker.com/story/show/148627121
addProp(TOPLEVEL_TYPE, "update", t_update).isRequired(true);
YType t_instance_group = t_params; //TODO: https://www.pivotaltracker.com/story/show/148627121
addProp(TOPLEVEL_TYPE, "instance_groups", f.yseq(t_update)).isRequired(true);
}
@Override

View File

@@ -0,0 +1,32 @@
*Required*. Specifies the mapping between release [jobs](https://bosh.io/docs/terminology.html#job) and instance groups.
Example:
instance_groups:
- name: redis-master
instances: 1
azs: [z1, z2]
jobs:
- name: redis-server
release: redis
properties:
port: 3606
vm_type: medium
vm_extensions: [public-lbs]
stemcell: default
persistent_disk_type: medium
networks:
- name: default
- name: redis-slave
instances: 2
azs: [z1, z2]
jobs:
- name: redis-server
release: redis
properties: {}
vm_type: medium
stemcell: default
persistent_disk_type: medium
networks:
- name: default

View File

@@ -48,6 +48,33 @@ public class BoshEditorTest {
" max_in_flight: 10\n" +
" canary_watch_time: 1000-30000\n" +
" update_watch_time: 1000-30000\n" +
"instance_groups:\n" +
"- name: redis-master\n" +
" instances: 1\n" +
" azs: [z1, z2]\n" +
" jobs:\n" +
" - name: redis-server\n" +
" release: redis\n" +
" properties:\n" +
" port: 3606\n" +
" vm_type: medium\n" +
" vm_extensions: [public-lbs]\n" +
" stemcell: default\n" +
" persistent_disk_type: medium\n" +
" networks:\n" +
" - name: default\n" +
"- name: redis-slave\n" +
" instances: 2\n" +
" azs: [z1, z2]\n" +
" jobs:\n" +
" - name: redis-server\n" +
" release: redis\n" +
" properties: {}\n" +
" vm_type: medium\n" +
" stemcell: default\n" +
" persistent_disk_type: medium\n" +
" networks:\n" +
" - name: default\n" +
"blah: hoooo\n"
);
editor.assertProblems(
@@ -59,6 +86,7 @@ public class BoshEditorTest {
editor.assertHoverContains("releases", "The name and version of each release in the deployment");
editor.assertHoverContains("stemcells", "The name and version of each stemcell");
editor.assertHoverContains("update", "This specifies instance update properties");
editor.assertHoverContains("instance_groups", "Specifies the mapping between release [jobs](https://bosh.io/docs/terminology.html#job) and instance groups.");
}
@@ -68,6 +96,7 @@ public class BoshEditorTest {
);
editor.assertCompletions(
"director_uuid: <*>",
"instance_groups:\n- <*>",
"name: <*>",
"releases:\n- <*>",
"stemcells:\n- <*>",