mirror of https://github.com/helm/helm
pull/167/head
parent
c1e177a4f7
commit
0deefdc249
@ -1,3 +1,4 @@
|
|||||||
pyyaml
|
pyyaml
|
||||||
Jinja2
|
Jinja2
|
||||||
Jsonschema
|
Jsonschema
|
||||||
|
Jsonpath
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
resources:
|
||||||
|
- name: {{ env['name'] }}-backend
|
||||||
|
type: instance_builder.jinja
|
||||||
|
properties:
|
||||||
|
instance-name: {{ env['name'] }}-backend-vm
|
||||||
|
target-ip: {{ properties['frontend-ip'] }}
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.{{ env['name'] }}-backend.ip)
|
@ -0,0 +1,8 @@
|
|||||||
|
resources:
|
||||||
|
- name: chain-template
|
||||||
|
type: one_simple.jinja
|
||||||
|
outputs:
|
||||||
|
- name: parent_ip
|
||||||
|
# We expect the ip value from one_simple.jinja, which in turn
|
||||||
|
# comes from simple.jinja, 192.168.0.0
|
||||||
|
value: $(ref.chain-template.intermediate_ip)
|
@ -0,0 +1,23 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: parent_ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: chain-template
|
||||||
|
outputs:
|
||||||
|
- name: intermediate_ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
type: simple.jinja
|
||||||
|
type: one_simple.jinja
|
@ -0,0 +1,7 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
type: simple.jinja
|
||||||
|
outputs:
|
||||||
|
- name: parent_ip
|
||||||
|
# We expect the ip value from simple.jinja, 192.168.0.0
|
||||||
|
value: $(ref.simple-template.ip)
|
@ -0,0 +1,17 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: parent_ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
type: simple.jinja
|
@ -0,0 +1,9 @@
|
|||||||
|
resources:
|
||||||
|
- name: one
|
||||||
|
type: simple-instance
|
||||||
|
{# properties['value'] is a refernce, not yet a number. #}
|
||||||
|
{# So this shouldn't output anything. #}
|
||||||
|
{% if properties['value'] is number %}
|
||||||
|
- name: two
|
||||||
|
type: simple-instance
|
||||||
|
{% endif %}
|
@ -0,0 +1,7 @@
|
|||||||
|
resources:
|
||||||
|
- name: one
|
||||||
|
type: output_one.jinja
|
||||||
|
- name: conditional
|
||||||
|
type: conditional.jinja
|
||||||
|
properties:
|
||||||
|
value: $(ref.one.one)
|
@ -0,0 +1,18 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: one
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
resources:
|
||||||
|
- name: one
|
||||||
|
outputs:
|
||||||
|
- name: one
|
||||||
|
value: 1
|
||||||
|
type: output_one.jinja
|
||||||
|
- name: conditional
|
||||||
|
properties:
|
||||||
|
value: $(ref.one.one)
|
||||||
|
resources:
|
||||||
|
- name: one
|
||||||
|
type: simple-instance
|
||||||
|
type: conditional.jinja
|
@ -0,0 +1,8 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-consume-template
|
||||||
|
type: one_consume.jinja
|
||||||
|
- name: consume-simple
|
||||||
|
type: simple-instance
|
||||||
|
properties:
|
||||||
|
# Get the output value of simple.jinja, we expect 192.168.0.0
|
||||||
|
target: $(ref.simple-consume-template.intermediate_ip)
|
@ -0,0 +1,32 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
- name: sub-consume-simple
|
||||||
|
properties:
|
||||||
|
target: 192.168.0.0
|
||||||
|
type: simple-instance
|
||||||
|
- name: consume-simple
|
||||||
|
properties:
|
||||||
|
target: 192.168.0.0
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
resources:
|
||||||
|
- name: simple-consume-template
|
||||||
|
outputs:
|
||||||
|
- name: intermediate_ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
type: simple.jinja
|
||||||
|
- name: sub-consume-simple
|
||||||
|
type: simple-instance
|
||||||
|
type: one_consume.jinja
|
||||||
|
- name: consume-simple
|
||||||
|
type: simple-instance
|
@ -0,0 +1,8 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
type: simple.jinja
|
||||||
|
- name: consume-simple
|
||||||
|
type: simple-instance
|
||||||
|
properties:
|
||||||
|
# Get the output value of simple.jinja, we expect 192.168.0.0
|
||||||
|
target: $(ref.simple-template.ip)
|
@ -0,0 +1,20 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
- name: consume-simple
|
||||||
|
properties:
|
||||||
|
target: 192.168.0.0
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
type: simple.jinja
|
||||||
|
- name: consume-simple
|
||||||
|
type: simple-instance
|
@ -0,0 +1,9 @@
|
|||||||
|
resources:
|
||||||
|
- name: {{ env['name'] }}-frontend
|
||||||
|
type: instance_builder.jinja
|
||||||
|
properties:
|
||||||
|
instance-name: {{ env['name'] }}-frontend-vm
|
||||||
|
target-ip: {{ properties['backend-ip'] }}
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.{{ env['name'] }}-frontend.ip)
|
@ -0,0 +1,8 @@
|
|||||||
|
resources:
|
||||||
|
- name: {{ properties['instance-name'] }}
|
||||||
|
type: simple-instance
|
||||||
|
properties:
|
||||||
|
target: {{ properties['target-ip'] }}
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.{{ properties['instance-name'] }}.network[0].ip)
|
@ -0,0 +1,5 @@
|
|||||||
|
resources:
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
- name: type
|
||||||
|
value: my-kubernetes
|
@ -0,0 +1,9 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
outputs:
|
||||||
|
- name: ips
|
||||||
|
value:
|
||||||
|
- 192.168.0.0
|
||||||
|
- 192.168.0.1
|
||||||
|
- 192.168.0.2
|
@ -0,0 +1,12 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
type: list_output.jinja
|
||||||
|
- name: consume-list
|
||||||
|
type: simple-instance
|
||||||
|
properties:
|
||||||
|
# Get the first output value of list_output.jinja, we expect 192.168.0.1
|
||||||
|
first-ip: $(ref.simple-template.ips[1])
|
||||||
|
outputs:
|
||||||
|
- name: second-ip
|
||||||
|
# We expect the 2nd ip from list_outputs.jinja, 192.168.0.2
|
||||||
|
value: $(ref.simple-template.ips[2])
|
@ -0,0 +1,26 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
- name: consume-list
|
||||||
|
properties:
|
||||||
|
first-ip: 192.168.0.1
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: second-ip
|
||||||
|
value: 192.168.0.2
|
||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
outputs:
|
||||||
|
- name: ips
|
||||||
|
value:
|
||||||
|
- 192.168.0.0
|
||||||
|
- 192.168.0.1
|
||||||
|
- 192.168.0.2
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
type: list_output.jinja
|
||||||
|
- name: consume-list
|
||||||
|
type: simple-instance
|
@ -0,0 +1,12 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
type: simple.jinja
|
||||||
|
- name: sub-consume-simple
|
||||||
|
type: simple-instance
|
||||||
|
properties:
|
||||||
|
# Get the output value of simple.jinja, we expect 192.168.0.0
|
||||||
|
target: $(ref.simple-template.ip)
|
||||||
|
outputs:
|
||||||
|
- name: intermediate_ip
|
||||||
|
# We expect the ip value from simple.jinja, 192.168.0.0
|
||||||
|
value: $(ref.simple-template.ip)
|
@ -0,0 +1,7 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
type: simple.jinja
|
||||||
|
outputs:
|
||||||
|
- name: intermediate_ip
|
||||||
|
# We expect the ip value from simple.jinja, 192.168.0.0
|
||||||
|
value: $(ref.simple-template.ip)
|
@ -0,0 +1,5 @@
|
|||||||
|
resources:
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
- name: one
|
||||||
|
value: 1
|
@ -0,0 +1,5 @@
|
|||||||
|
resources:
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
- name: type
|
||||||
|
value: helper.jinja
|
@ -0,0 +1,5 @@
|
|||||||
|
resources:
|
||||||
|
- name: foo
|
||||||
|
type: output_template.jinja
|
||||||
|
- name: bar
|
||||||
|
type: $(ref.foo.type)
|
@ -0,0 +1,6 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
@ -0,0 +1,6 @@
|
|||||||
|
resources:
|
||||||
|
- type: simple-type
|
||||||
|
name: simple-instance
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
@ -0,0 +1,11 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-instance
|
||||||
|
type: simple-type
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-instance
|
||||||
|
type: simple-type
|
@ -0,0 +1,17 @@
|
|||||||
|
resources:
|
||||||
|
- name: frontend
|
||||||
|
type: instance_builder.jinja
|
||||||
|
properties:
|
||||||
|
instance-name: mixer
|
||||||
|
target-ip: $(ref.backend.ip)
|
||||||
|
|
||||||
|
- name: backend
|
||||||
|
type: instance_builder.jinja
|
||||||
|
properties:
|
||||||
|
instance-name: workflow
|
||||||
|
target-ip: $(ref.frontend.ip)
|
||||||
|
outputs:
|
||||||
|
- name: frontend-ip
|
||||||
|
value: $(ref.frontend.ip)
|
||||||
|
- name: backend-ip
|
||||||
|
value: $(ref.backend.ip)
|
@ -0,0 +1,39 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: mixer
|
||||||
|
properties:
|
||||||
|
target: $(ref.workflow.network[0].ip)
|
||||||
|
type: simple-instance
|
||||||
|
- name: workflow
|
||||||
|
properties:
|
||||||
|
target: $(ref.mixer.network[0].ip)
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: frontend-ip
|
||||||
|
value: $(ref.mixer.network[0].ip)
|
||||||
|
- name: backend-ip
|
||||||
|
value: $(ref.workflow.network[0].ip)
|
||||||
|
resources:
|
||||||
|
- name: frontend
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.mixer.network[0].ip)
|
||||||
|
properties:
|
||||||
|
instance-name: mixer
|
||||||
|
target-ip: $(ref.backend.ip)
|
||||||
|
resources:
|
||||||
|
- name: mixer
|
||||||
|
type: simple-instance
|
||||||
|
type: instance_builder.jinja
|
||||||
|
- name: backend
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.workflow.network[0].ip)
|
||||||
|
properties:
|
||||||
|
instance-name: workflow
|
||||||
|
target-ip: $(ref.frontend.ip)
|
||||||
|
resources:
|
||||||
|
- name: workflow
|
||||||
|
type: simple-instance
|
||||||
|
type: instance_builder.jinja
|
@ -0,0 +1,6 @@
|
|||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
type: simple.jinja
|
||||||
|
outputs:
|
||||||
|
- name: port
|
||||||
|
value: 88
|
@ -0,0 +1,17 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: port
|
||||||
|
value: 88
|
||||||
|
resources:
|
||||||
|
- name: simple-template
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: 192.168.0.0
|
||||||
|
resources:
|
||||||
|
- name: simple-name
|
||||||
|
type: simple-instance
|
||||||
|
type: simple.jinja
|
@ -0,0 +1,8 @@
|
|||||||
|
resources:
|
||||||
|
- name: kubernetes-cluster
|
||||||
|
type: kubernetes.jinja
|
||||||
|
- name: sub-thingy
|
||||||
|
type: $(ref.kubernetes-cluster.type)
|
||||||
|
outputs:
|
||||||
|
- name: type
|
||||||
|
value: $(ref.kubernetes-cluster.type)
|
@ -0,0 +1,5 @@
|
|||||||
|
resources:
|
||||||
|
- name: type-helper
|
||||||
|
type: type.jinja
|
||||||
|
- name: thingy
|
||||||
|
type: $(ref.type-helper.type)
|
@ -0,0 +1,23 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: sub-thingy
|
||||||
|
type: my-kubernetes
|
||||||
|
- name: thingy
|
||||||
|
type: my-kubernetes
|
||||||
|
layout:
|
||||||
|
resources:
|
||||||
|
- name: type-helper
|
||||||
|
outputs:
|
||||||
|
- name: type
|
||||||
|
value: my-kubernetes
|
||||||
|
resources:
|
||||||
|
- name: kubernetes-cluster
|
||||||
|
outputs:
|
||||||
|
- name: type
|
||||||
|
value: my-kubernetes
|
||||||
|
type: kubernetes.jinja
|
||||||
|
- name: sub-thingy
|
||||||
|
type: $(ref.kubernetes-cluster.type)
|
||||||
|
type: type.jinja
|
||||||
|
- name: thingy
|
||||||
|
type: $(ref.type-helper.type)
|
@ -0,0 +1,14 @@
|
|||||||
|
resources:
|
||||||
|
- name: mixer
|
||||||
|
type: frontend.jinja
|
||||||
|
properties:
|
||||||
|
backend-ip: $(ref.workflow.ip)
|
||||||
|
- name: workflow
|
||||||
|
type: backend.jinja
|
||||||
|
properties:
|
||||||
|
frontend-ip: $(ref.mixer.ip)
|
||||||
|
outputs:
|
||||||
|
- name: frontend-ip
|
||||||
|
value: $(ref.mixer.ip)
|
||||||
|
- name: backend-ip
|
||||||
|
value: $(ref.workflow.ip)
|
@ -0,0 +1,55 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: mixer-frontend-vm
|
||||||
|
properties:
|
||||||
|
target: $(ref.workflow-backend-vm.network[0].ip)
|
||||||
|
type: simple-instance
|
||||||
|
- name: workflow-backend-vm
|
||||||
|
properties:
|
||||||
|
target: $(ref.mixer-frontend-vm.network[0].ip)
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
outputs:
|
||||||
|
- name: frontend-ip
|
||||||
|
value: $(ref.mixer-frontend-vm.network[0].ip)
|
||||||
|
- name: backend-ip
|
||||||
|
value: $(ref.workflow-backend-vm.network[0].ip)
|
||||||
|
resources:
|
||||||
|
- name: mixer
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.mixer-frontend-vm.network[0].ip)
|
||||||
|
properties:
|
||||||
|
backend-ip: $(ref.workflow.ip)
|
||||||
|
resources:
|
||||||
|
- name: mixer-frontend
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.mixer-frontend-vm.network[0].ip)
|
||||||
|
properties:
|
||||||
|
instance-name: mixer-frontend-vm
|
||||||
|
target-ip: $(ref.workflow.ip)
|
||||||
|
resources:
|
||||||
|
- name: mixer-frontend-vm
|
||||||
|
type: simple-instance
|
||||||
|
type: instance_builder.jinja
|
||||||
|
type: frontend.jinja
|
||||||
|
- name: workflow
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.workflow-backend-vm.network[0].ip)
|
||||||
|
properties:
|
||||||
|
frontend-ip: $(ref.mixer.ip)
|
||||||
|
resources:
|
||||||
|
- name: workflow-backend
|
||||||
|
outputs:
|
||||||
|
- name: ip
|
||||||
|
value: $(ref.workflow-backend-vm.network[0].ip)
|
||||||
|
properties:
|
||||||
|
instance-name: workflow-backend-vm
|
||||||
|
target-ip: $(ref.mixer.ip)
|
||||||
|
resources:
|
||||||
|
- name: workflow-backend-vm
|
||||||
|
type: simple-instance
|
||||||
|
type: instance_builder.jinja
|
||||||
|
type: backend.jinja
|
@ -0,0 +1,38 @@
|
|||||||
|
config:
|
||||||
|
resources:
|
||||||
|
- name: mixer-frontend-vm
|
||||||
|
properties:
|
||||||
|
target: $(ref.workflow.ip)
|
||||||
|
type: simple-instance
|
||||||
|
- name: workflow-backend-vm
|
||||||
|
properties:
|
||||||
|
target: $(ref.mixer.ip)
|
||||||
|
type: simple-instance
|
||||||
|
layout:
|
||||||
|
resources:
|
||||||
|
- name: mixer
|
||||||
|
properties:
|
||||||
|
backend-ip: $(ref.workflow.ip)
|
||||||
|
resources:
|
||||||
|
- name: mixer-frontend
|
||||||
|
properties:
|
||||||
|
instance-name: mixer-frontend-vm
|
||||||
|
target-ip: $(ref.workflow.ip)
|
||||||
|
resources:
|
||||||
|
- name: mixer-frontend-vm
|
||||||
|
type: simple-instance
|
||||||
|
type: instance_builder.jinja
|
||||||
|
type: frontend.jinja
|
||||||
|
- name: workflow
|
||||||
|
properties:
|
||||||
|
frontend-ip: $(ref.mixer.ip)
|
||||||
|
resources:
|
||||||
|
- name: workflow-backend
|
||||||
|
properties:
|
||||||
|
instance-name: workflow-backend-vm
|
||||||
|
target-ip: $(ref.mixer.ip)
|
||||||
|
resources:
|
||||||
|
- name: workflow-backend-vm
|
||||||
|
type: simple-instance
|
||||||
|
type: instance_builder.jinja
|
||||||
|
type: backend.jinja
|
Loading…
Reference in new issue