tripleo-heat-templates/extraconfig/services/skydive-analyzer.yaml
Alex Schultz fb0e8f62fc Convert dynamic lookups to use colon notation
With the upgrade to puppet 5, we can no longer use dots in the hieradata
key lookups. This change updates the THT for firewall_rules,
haproxy_endpoints and haproxy_userlists to use the colon notation.

Change-Id: I6f67153e04aed191acb715fe8cfa976ee2e75878
Related-Bug: #1803024
2018-11-12 21:21:49 -07:00

171 lines
6.8 KiB
YAML

heat_template_version: rocky
description: External tasks definition for Skydive
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
EnableInternalTLS:
type: boolean
default: false
SkydiveAnsiblePlaybook:
type: string
description: Path to the skydive-ansible playbook to execute
default: /usr/share/skydive-ansible/playbook.yml.sample
SkydiveVars:
type: json
description: Variables used by skydive-ansible
default: {}
DockerSkydiveAnalyzerImage:
description: Analyzer docker image
type: string
DockerSkydiveAgentImage:
description: Agent docker image
type: string
outputs:
role_data:
description: Role data for Skydive services.
value:
service_name: skydive_analyzer
upgrade_tasks: []
puppet_config:
config_image: ''
config_volume: ''
step_config: ''
docker_config: {}
config_settings:
tripleo::skydive_analyzer::firewall_rules:
'150 skydive_analyzer':
dport: 8082
proto: tcp
external_deploy_tasks:
- name: Skydive deployment
when: step == '5'
block:
- name: create skydive temp dirs
file:
path: "{{item}}"
state: directory
with_items:
- "{{playbook_dir}}/skydive"
- name: Skydive global vars fact
set_fact:
os_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
os_region_name: {get_param: KeystoneRegion}
skydive_ansible_playbook: {get_param: SkydiveAnsiblePlaybook}
skydive_analyzer_docker_image: {get_param: DockerSkydiveAnalyzerImage}
skydive_agent_docker_image: {get_param: DockerSkydiveAgentImage}
skydive_vars: {get_param: SkydiveVars}
- name: Skydive global defaults
copy:
dest: "{{playbook_dir}}/skydive/global_defaults.yml"
content: |
skydive_docker_registry: {{skydive_analyzer_docker_image | regex_replace("([^/]*).*", "\1")}}
skydive_docker_image_tag: {{skydive_analyzer_docker_image | regex_replace(".*:")}}
skydive_analyzer_docker_image: {{skydive_analyzer_docker_image | regex_replace("[^/]*/([^:]*).*", "\1")}}
skydive_analyzer_docker_command: "/usr/bin/skydive analyzer --conf /etc/skydive.yml"
skydive_agent_docker_image: {{skydive_agent_docker_image | regex_replace("[^/]*/([^:]*).*", "\1")}}
skydive_agent_docker_command: "/usr/bin/skydive agent --conf /etc/skydive.yml"
os_auth_url: {{overcloud_keystone_url}}/v3
os_username: {{username}}
os_password: {{overcloud_admin_password}}
os_tenant_name: {{project_name}}
skydive_auth_type: keystone
skydive_os_auth_url: {{os_auth_url}}/v3
skydive_os_service_region_name: {{os_region_name}}
skydive_deployment_mode: container
skydive_flow_protocol: websocket
skydive_topology_probes:
- neutron
- ovsdb
- docker
- name: generate Skydive global vars
copy:
dest: "{{playbook_dir}}/skydive/global_vars.yml"
content: "{{skydive_vars.globals|default({})|to_nice_yaml}}"
- name: generate inventory
copy:
dest: "{{playbook_dir}}/skydive/inventory.yml"
content: |
analyzers:
hosts:
{% for host in groups['skydive_analyzer'] -%}
{{hostvars.raw_get(host)['ansible_hostname']}}:
ansible_user: {{ hostvars.raw_get(host)['ansible_user'] | default(hostvars.raw_get(host)['ansible_ssh_user']) | default('root') }}
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }}
ansible_become: true
skydive_listen_ip: {{hostvars.raw_get(host)['ctlplane_ip']}}
{% if skydive_vars.analyzers is defined -%}
{{skydive_vars.analyzers|to_nice_yaml()|indent(6)}}
{%- endif %}
{% endfor %}
agents:
hosts:
{% for host in groups['skydive_agent'] -%}
{{hostvars.raw_get(host)['ansible_hostname']}}:
ansible_user: {{ hostvars.raw_get(host)['ansible_user'] | default(hostvars.raw_get(host)['ansible_ssh_user']) | default('root') }}
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }}
ansible_become: true
skydive_listen_ip: {{hostvars.raw_get(host)['ctlplane_ip']}}
{% if skydive_vars.agents is defined -%}
{{skydive_vars.agents|to_nice_yaml()|indent(6)}}
{%- endif %}
{% endfor %}
- name: write Skydive deploy script
copy:
content: >
#!/bin/bash
set -e
ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook
-i '{{playbook_dir}}/skydive/inventory.yml'
--extra-vars '@{{playbook_dir}}/skydive/global_defaults.yml'
--extra-vars '@{{playbook_dir}}/skydive/global_vars.yml'
'{{skydive_ansible_playbook}}'
dest: '{{playbook_dir}}/skydive/skydive-deploy.sh'
mode: 0700
- name: run skydive-deploy.sh (immediate log at {{playbook_dir}}/skydive/playbook.log)
shell: |
{{playbook_dir}}/skydive/skydive-deploy.sh 2>&1 | tee {{playbook_dir}}/skydive/playbook.log
exit ${PIPESTATUS[0]}