Template Based Orchestration¶
Heat Templates¶
Heat templates with local context (env) definitions.
engine: heat
cloud_endpoint: {{ openstack-manager-name }}
root_path: /path/to/heat-templates
template_path: /path/to/heat-templates/template
context_source: local
context_path: /path/to/heat-templates/env
Heat templates with remote context (env) definitions coming from Inventory service.
engine: heat
cloud_endpoint: {{ openstack-manager-name }}
root_path: /path/to/heat-templates
template_path: /path/to/heat-templates/template
context_source: remote
context_inventory: {{ inventory-name }}
The metadata schema for Heat manager:
query:
heat_complete_graph:
name: Complete Stack
layout: graph
heat_template_stacks_tree:
name: Template Stacks
layout: hierarchy
hierarchy_layers:
0:
name: Heat heat_template_stacks_tree
kind:
1:
kind: heat_template
2:
kind: heat_stack
target: defined_by
relation:
defined_by:
relation:
default: template
default_resource: heat_template
resource:
heat_template:
client: heat
icon: fa:cube
name: Template
resource: OS::Heat::Stack
workflow:
create:
name: Launch stack
heat_stack:
client: heat
icon: fa:cube
name: Stack
resource: OS::Heat::Stack
model:
template:
type: relationship_to
model: defined_by
target: heat_template
TerraForm Templates¶
Configuration for parsing Hashicorp TerraForm templates.
monitor:
terraform-local-manager:
engine: terraform
endpoints:
- {{ kubernetes-manager-name }}
- {{ openstack-manager-name }}
- {{ amazon-manager-name }}
terraform_bin: /path/to/terraform-bin
template_path: /path/to/terraform-templates
The metadata schema for Terraform manager:
query:
tf_complete_graph:
name: Complete Template
layout: graph
relation:
uses_tf_template:
relation:
default: template
in_tf_state:
relation:
default: state
in_tf_module:
relation:
default: module
in_tf_net:
relation:
default: network
in_tf_subnet:
relation:
default: subnet
has_tf_security_group:
relation:
default: security_group
using_tf_key_pair:
relation:
default: key_pair
links_tf_router:
relation:
default: router
links_tf_floating_instance:
relation:
default: instance
links_tf_floating_ip:
relation:
tf_openstack_compute_floatingip_associate_v2: floating_ip
tf_openstack_networking_floatingip_v2: router
default_resource: tf_template
resource:
tf_template:
client: ''
icon: fa:map-signs
name: Template
resource: ''
workflow:
create:
name: Deploy template
tf_state:
client: ''
icon: fa:map-signs
name: State
resource: ''
workflow:
destroy:
name: Destroy
model:
template:
type: relationship_to
model: uses_tf_template
target: tf_template
tf_module:
client: ''
icon: fa:map-signs
name: Module
resource: ''
model:
state:
type: relationship_to
model: in_tf_state
target: tf_state
tf_openstack_compute_floatingip_associate_v2:
client: ''
icon: fa:map-signs
name: Floating IP Association
resource: openstack_compute_floatingip_associate_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
floating_ip:
type: relationship_to
model: links_tf_floating_ip
target: tf_openstack_networking_floatingip_v2
instance:
type: relationship_to
model: links_tf_floating_instance
target: tf_openstack_compute_instance_v2
tf_openstack_compute_instance_v2:
client: ''
icon: fa:server
name: Instance
resource: openstack_compute_instance_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
key_pair:
type: relationship_to
model: using_tf_key_pair
target: tf_openstack_compute_keypair_v2
security_group:
type: relationship_to
model: has_tf_security_group
target: tf_openstack_compute_secgroup_v2
network:
type: relationship_to
model: in_tf_net
target: tf_openstack_networking_network_v2
tf_openstack_compute_keypair_v2:
client: ''
icon: fa:key
name: Key Pair
resource: openstack_compute_keypair_v2
tf_openstack_compute_secgroup_v2:
client: ''
icon: fa:cube
name: Security Group
resource: openstack_compute_secgroup_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
tf_openstack_networking_floatingip_v2:
client: ''
icon: fa:map-signs
name: Floating IP
resource: openstack_networking_floatingip_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
router:
type: relationship_to
model: links_tf_floating_ip
target: tf_openstack_networking_router_interface_v2
tf_openstack_networking_network_v2:
client: ''
icon: fa:share-alt
name: Net
resource: openstack_networking_network_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
key_pair:
type: relationship_to
model: in_tf_net
target: tf_openstack_networking_network_v2
tf_openstack_networking_router_interface_v2:
client: ''
icon: fa:arrows-alt
name: Router Interface
resource: openstack_networking_router_interface_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
subnet:
type: relationship_to
model: in_tf_subnet
target: tf_openstack_networking_subnet_v2
router:
type: relationship_to
model: links_tf_router
target: tf_openstack_networking_router_v2
tf_openstack_networking_router_v2:
client: ''
icon: fa:arrows-alt
name: Router
resource: openstack_networking_router_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
tf_openstack_networking_subnet_v2:
client: ''
icon: fa:share-alt
name: Subnet
resource: openstack_networking_subnet_v2
model:
module:
type: relationship_to
model: in_tf_module
target: tf_module
network:
type: relationship_to
model: in_tf_net
target: tf_openstack_networking_network_v2