Merge "Config download support for standalone deployments"
This commit is contained in:
commit
b1786cc1b0
@ -165,6 +165,7 @@ resources:
|
|||||||
{{role.name}}ArtifactsDeploy:
|
{{role.name}}ArtifactsDeploy:
|
||||||
type: OS::Heat::StructuredDeploymentGroup
|
type: OS::Heat::StructuredDeploymentGroup
|
||||||
properties:
|
properties:
|
||||||
|
name: {{role.name}}ArtifactsDeploy
|
||||||
servers: {get_param: [servers, {{role.name}}]}
|
servers: {get_param: [servers, {{role.name}}]}
|
||||||
config: {get_resource: {{role.name}}ArtifactsConfig}
|
config: {get_resource: {{role.name}}ArtifactsConfig}
|
||||||
|
|
||||||
@ -198,54 +199,53 @@ resources:
|
|||||||
- {get_param: [role_data, {{role.name}}, host_prep_tasks]}
|
- {get_param: [role_data, {{role.name}}, host_prep_tasks]}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
-
|
-
|
||||||
{%- raw %}
|
|
||||||
# Write the manifest for baremetal puppet configuration
|
# Write the manifest for baremetal puppet configuration
|
||||||
- name: Create /var/lib/tripleo-config directory
|
- name: Create /var/lib/tripleo-config directory
|
||||||
file: path=/var/lib/tripleo-config state=directory
|
file: path=/var/lib/tripleo-config state=directory
|
||||||
- name: Write the puppet step_config manifest
|
- name: Write the puppet step_config manifest
|
||||||
copy: content="{{puppet_step_config}}" dest=/var/lib/tripleo-config/puppet_step_config.pp force=yes mode=0600
|
copy: content="{{ '{{' }}puppet_step_config{{ '}}' }}" dest=/var/lib/tripleo-config/puppet_step_config.pp force=yes mode=0600
|
||||||
# this creates a JSON config file for our docker-puppet.py script
|
# this creates a JSON config file for our docker-puppet.py script
|
||||||
- name: Create /var/lib/docker-puppet
|
- name: Create /var/lib/docker-puppet
|
||||||
file: path=/var/lib/docker-puppet state=directory
|
file: path=/var/lib/docker-puppet state=directory
|
||||||
- name: Write docker-puppet-tasks json files
|
- name: Write docker-puppet-tasks json files
|
||||||
copy: content="{{puppet_config | to_json}}" dest=/var/lib/docker-puppet/docker-puppet.json force=yes mode=0600
|
copy: content="{{ '{{' }}puppet_config | to_json{{ '}}' }}" dest=/var/lib/docker-puppet/docker-puppet.json force=yes mode=0600
|
||||||
# FIXME: can we move docker-puppet somewhere so it's installed via a package?
|
# FIXME: can we move docker-puppet somewhere so it's installed via a package?
|
||||||
- name: Write docker-puppet.py
|
- name: Write docker-puppet.py
|
||||||
copy: content="{{docker_puppet_script}}" dest=/var/lib/docker-puppet/docker-puppet.py force=yes mode=0600
|
copy: content="{{ '{{' }}docker_puppet_script{{ '}}' }}" dest=/var/lib/docker-puppet/docker-puppet.py force=yes mode=0600
|
||||||
# Here we are dumping all the docker container startup configuration data
|
# Here we are dumping all the docker container startup configuration data
|
||||||
# so that we can have access to how they are started outside of heat
|
# so that we can have access to how they are started outside of heat
|
||||||
# and docker-cmd. This lets us create command line tools to test containers.
|
# and docker-cmd. This lets us create command line tools to test containers.
|
||||||
# FIXME do we need the docker-container-startup-configs.json or is the new per-step
|
# FIXME do we need the docker-container-startup-configs.json or is the new per-step
|
||||||
# data consumed by paunch enough?
|
# data consumed by paunch enough?
|
||||||
- name: Write docker-container-startup-configs
|
- name: Write docker-container-startup-configs
|
||||||
copy: content="{{docker_startup_configs | to_json}}" dest=/var/lib/docker-container-startup-configs.json force=yes mode=0600
|
copy: content="{{ '{{' }}docker_startup_configs | to_json{{ '}}' }}" dest=/var/lib/docker-container-startup-configs.json force=yes mode=0600
|
||||||
- name: Write per-step docker-container-startup-configs
|
- name: Write per-step docker-container-startup-configs
|
||||||
copy: content="{{item.value|to_json}}" dest="/var/lib/tripleo-config/docker-container-startup-config-{{item.key}}.json" force=yes mode=0600
|
copy: content="{{ '{{' }}item.value|to_json{{ '}}' }}" dest="/var/lib/tripleo-config/docker-container-startup-config-{{ '{{' }}item.key{{ '}}' }}.json" force=yes mode=0600
|
||||||
with_dict: "{{docker_startup_configs}}"
|
with_dict: "{{ '{{' }}docker_startup_configs{{ '}}' }}"
|
||||||
- name: Create /var/lib/kolla/config_files directory
|
- name: Create /var/lib/kolla/config_files directory
|
||||||
file: path=/var/lib/kolla/config_files state=directory
|
file: path=/var/lib/kolla/config_files state=directory
|
||||||
- name: Write kolla config json files
|
- name: Write kolla config json files
|
||||||
copy: content="{{item.value|to_json}}" dest="{{item.key}}" force=yes mode=0600
|
copy: content="{{ '{{' }}item.value|to_json{{ '}}' }}" dest="{{ '{{' }}item.key{{ '}}' }}" force=yes mode=0600
|
||||||
with_dict: "{{kolla_config}}"
|
with_dict: "{{ '{{' }}kolla_config{{ '}}' }}"
|
||||||
########################################################
|
########################################################
|
||||||
# Bootstrap tasks, only performed on bootstrap_server_id
|
# Bootstrap tasks, only performed on bootstrap_server_id
|
||||||
########################################################
|
########################################################
|
||||||
- name: Clean /var/lib/docker-puppet/docker-puppet-tasks*.json files
|
- name: Clean /var/lib/docker-puppet/docker-puppet-tasks*.json files
|
||||||
file:
|
file:
|
||||||
path: "{{item}}"
|
path: "{{ '{{' }}item{{ '}}' }}"
|
||||||
state: absent
|
state: absent
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- /var/lib/docker-puppet/docker-puppet-tasks*.json
|
- /var/lib/docker-puppet/docker-puppet-tasks*.json
|
||||||
when: deploy_server_id == bootstrap_server_id
|
when: deploy_server_id == bootstrap_server_id
|
||||||
- name: Write docker-puppet-tasks json files
|
- name: Write docker-puppet-tasks json files
|
||||||
copy: content="{{item.value|to_json}}" dest=/var/lib/docker-puppet/docker-puppet-tasks{{item.key.replace("step_", "")}}.json force=yes mode=0600
|
copy: content="{{ '{{' }}item.value|to_json{{ '}}' }}" dest=/var/lib/docker-puppet/docker-puppet-tasks{{ '{{' }}item.key.replace("step_", ""){{ '}}' }}.json force=yes mode=0600
|
||||||
with_dict: "{{docker_puppet_tasks}}"
|
with_dict: "{{ '{{' }}docker_puppet_tasks{{ '}}' }}"
|
||||||
when: deploy_server_id == bootstrap_server_id
|
when: deploy_server_id == bootstrap_server_id
|
||||||
{%- endraw %}
|
|
||||||
|
|
||||||
{{role.name}}HostPrepDeployment:
|
{{role.name}}HostPrepDeployment:
|
||||||
type: OS::Heat::SoftwareDeploymentGroup
|
type: OS::Heat::SoftwareDeploymentGroup
|
||||||
properties:
|
properties:
|
||||||
|
name: {{role.name}}HostPrepDeployment
|
||||||
servers: {get_param: [servers, {{role.name}}]}
|
servers: {get_param: [servers, {{role.name}}]}
|
||||||
config: {get_resource: {{role.name}}HostPrepConfig}
|
config: {get_resource: {{role.name}}HostPrepConfig}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -330,17 +330,44 @@ outputs:
|
|||||||
description: Mapping of config data for all roles
|
description: Mapping of config data for all roles
|
||||||
value:
|
value:
|
||||||
deploy_steps_tasks: {get_file: deploy-steps-tasks.yaml}
|
deploy_steps_tasks: {get_file: deploy-steps-tasks.yaml}
|
||||||
deploy_steps_playbook: |
|
deploy_steps_playbook:
|
||||||
- hosts: overcloud
|
str_replace:
|
||||||
tasks:
|
params:
|
||||||
|
BOOTSTRAP_SERVER_ID: {get_param: [servers, {{primary_role_name}}, '0']}
|
||||||
|
template: |
|
||||||
|
- hosts: overcloud
|
||||||
|
name: Server deployments
|
||||||
|
tasks:
|
||||||
{%- for role in roles %}
|
{%- for role in roles %}
|
||||||
- include: {{role.name}}/host_prep_tasks.yaml
|
- include: {{role.name}}/deployments.yaml
|
||||||
when: role_name == '{{role.name}}'
|
vars:
|
||||||
|
force: false
|
||||||
|
when: role_name == '{{role.name}}'
|
||||||
|
with_items: "{{ '{{' }} {{role.name}}_pre_deployments {{ '}}' }}"
|
||||||
|
{%- endfor %}
|
||||||
|
- hosts: overcloud
|
||||||
|
name: Deployment steps
|
||||||
|
vars:
|
||||||
|
bootstrap_server_id: BOOTSTRAP_SERVER_ID
|
||||||
|
tasks:
|
||||||
|
{%- for role in roles %}
|
||||||
|
- include: {{role.name}}/host_prep_tasks.yaml
|
||||||
|
when: role_name == '{{role.name}}'
|
||||||
|
{%- endfor %}
|
||||||
|
- include: deploy_steps_tasks.yaml
|
||||||
|
with_sequence: count={{deploy_steps_max-1}}
|
||||||
|
loop_control:
|
||||||
|
loop_var: step
|
||||||
|
- hosts: overcloud
|
||||||
|
name: Server Post Deployments
|
||||||
|
tasks:
|
||||||
|
{%- for role in roles %}
|
||||||
|
- include: {{role.name}}/deployments.yaml
|
||||||
|
vars:
|
||||||
|
force: false
|
||||||
|
when: role_name == '{{role.name}}'
|
||||||
|
with_items: "{{ '{{' }} {{role.name}}_post_deployments {{ '}}' }}"
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
- include: deploy_steps_tasks.yaml
|
|
||||||
with_sequence: count={{deploy_steps_max-1}}
|
|
||||||
loop_control:
|
|
||||||
loop_var: step
|
|
||||||
update_steps_tasks: |
|
update_steps_tasks: |
|
||||||
{%- for role in roles %}
|
{%- for role in roles %}
|
||||||
- include: {{role.name}}/update_tasks.yaml
|
- include: {{role.name}}/update_tasks.yaml
|
||||||
|
87
config-download-software.yaml
Normal file
87
config-download-software.yaml
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
actions:
|
||||||
|
type: comma_delimited_list
|
||||||
|
default: ['CREATE', 'UPDATE']
|
||||||
|
|
||||||
|
server:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
config:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
input_values:
|
||||||
|
type: json
|
||||||
|
description: input values for the software deployments
|
||||||
|
default: {}
|
||||||
|
|
||||||
|
input_key:
|
||||||
|
type: string
|
||||||
|
default: 'get_input'
|
||||||
|
|
||||||
|
signal_transport:
|
||||||
|
type: string
|
||||||
|
default: 'CFN_SIGNAL'
|
||||||
|
|
||||||
|
input_values_validate:
|
||||||
|
type: string
|
||||||
|
default: 'LAX'
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
TripleODeployment:
|
||||||
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
name: {get_param: name}
|
||||||
|
server: {get_param: server}
|
||||||
|
config: {get_param: config}
|
||||||
|
input_values: {get_param: input_values}
|
||||||
|
deployment: {get_resource: TripleOSoftwareDeployment}
|
||||||
|
|
||||||
|
TripleOSoftwareDeployment:
|
||||||
|
type: OS::Heat::SoftwareDeployment
|
||||||
|
properties:
|
||||||
|
name: deployment_resource
|
||||||
|
config: {get_param: config}
|
||||||
|
server: {get_resource: TripleOServer}
|
||||||
|
input_values: {get_param: input_values}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
actions: {get_param: actions}
|
||||||
|
|
||||||
|
TripleOServer:
|
||||||
|
type: OS::Heat::DeployedServer
|
||||||
|
properties:
|
||||||
|
name: server_resource
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
|
||||||
|
deploy_status_code:
|
||||||
|
value: 0
|
||||||
|
deploy_stderr:
|
||||||
|
value: ''
|
||||||
|
deploy_stdout:
|
||||||
|
value: ''
|
||||||
|
show:
|
||||||
|
value: ''
|
||||||
|
|
||||||
|
ecdsa:
|
||||||
|
description: Host ssh public key (ecdsa)
|
||||||
|
value: 'ecdsa'
|
||||||
|
rsa:
|
||||||
|
description: Host ssh public key (rsa)
|
||||||
|
value: 'rsa'
|
||||||
|
ed25519:
|
||||||
|
description: Host ssh public key (ed25519)
|
||||||
|
value: 'ed25519'
|
||||||
|
update_managed_packages:
|
||||||
|
description: boolean value indicating whether to upgrade managed packages
|
||||||
|
value: false
|
||||||
|
hostname:
|
||||||
|
description: hostname
|
||||||
|
value: ''
|
87
config-download-structured.yaml
Normal file
87
config-download-structured.yaml
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
actions:
|
||||||
|
type: comma_delimited_list
|
||||||
|
default: ['CREATE', 'UPDATE']
|
||||||
|
|
||||||
|
server:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
config:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
input_values:
|
||||||
|
type: json
|
||||||
|
description: input values for the software deployments
|
||||||
|
default: {}
|
||||||
|
|
||||||
|
input_key:
|
||||||
|
type: string
|
||||||
|
default: 'get_input'
|
||||||
|
|
||||||
|
signal_transport:
|
||||||
|
type: string
|
||||||
|
default: 'CFN_SIGNAL'
|
||||||
|
|
||||||
|
input_values_validate:
|
||||||
|
type: string
|
||||||
|
default: 'LAX'
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
TripleODeployment:
|
||||||
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
name: {get_param: name}
|
||||||
|
server: {get_param: server}
|
||||||
|
config: {get_param: config}
|
||||||
|
input_values: {get_param: input_values}
|
||||||
|
deployment: {get_resource: TripleOSoftwareDeployment}
|
||||||
|
|
||||||
|
TripleOSoftwareDeployment:
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
name: deployment_resource
|
||||||
|
config: {get_param: config}
|
||||||
|
server: {get_resource: TripleOServer}
|
||||||
|
input_values: {get_param: input_values}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
actions: {get_param: actions}
|
||||||
|
|
||||||
|
TripleOServer:
|
||||||
|
type: OS::Heat::DeployedServer
|
||||||
|
properties:
|
||||||
|
name: server_resource
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
|
||||||
|
deploy_status_code:
|
||||||
|
value: 0
|
||||||
|
deploy_stderr:
|
||||||
|
value: ''
|
||||||
|
deploy_stdout:
|
||||||
|
value: ''
|
||||||
|
show:
|
||||||
|
value: ''
|
||||||
|
|
||||||
|
ecdsa:
|
||||||
|
description: Host ssh public key (ecdsa)
|
||||||
|
value: 'ecdsa'
|
||||||
|
rsa:
|
||||||
|
description: Host ssh public key (rsa)
|
||||||
|
value: 'rsa'
|
||||||
|
ed25519:
|
||||||
|
description: Host ssh public key (ed25519)
|
||||||
|
value: 'ed25519'
|
||||||
|
update_managed_packages:
|
||||||
|
description: boolean value indicating whether to upgrade managed packages
|
||||||
|
value: false
|
||||||
|
hostname:
|
||||||
|
description: hostname
|
||||||
|
value: ''
|
@ -125,7 +125,11 @@ resources:
|
|||||||
name:
|
name:
|
||||||
list_join:
|
list_join:
|
||||||
- '-'
|
- '-'
|
||||||
- - {get_attr: [HostsEntryDeployment, hostname]}
|
- - yaql:
|
||||||
|
expression: switch(not $.data.hostname.isEmpty() => $.data.hostname, $.data.name=>$.data.name)
|
||||||
|
data:
|
||||||
|
hostname: {get_attr: [HostsEntryDeployment, hostname]}
|
||||||
|
name: {get_param: name}
|
||||||
- ctlplane
|
- ctlplane
|
||||||
replacement_policy: AUTO
|
replacement_policy: AUTO
|
||||||
|
|
||||||
@ -137,6 +141,11 @@ outputs:
|
|||||||
ctlplane:
|
ctlplane:
|
||||||
- {get_attr: [ControlPlanePort, fixed_ips, 0, ip_address]}
|
- {get_attr: [ControlPlanePort, fixed_ips, 0, ip_address]}
|
||||||
name:
|
name:
|
||||||
value: {get_attr: [HostsEntryDeployment, hostname]}
|
value:
|
||||||
|
yaql:
|
||||||
|
expression: switch(not $.data.hostname.isEmpty() => $.data.hostname, $.data.name=>$.data.name)
|
||||||
|
data:
|
||||||
|
hostname: {get_attr: [HostsEntryDeployment, hostname]}
|
||||||
|
name: {get_param: name}
|
||||||
os_collect_config:
|
os_collect_config:
|
||||||
value: {get_attr: [deployed-server, os_collect_config]}
|
value: {get_attr: [deployed-server, os_collect_config]}
|
||||||
|
8
environments/config-download-environment.yaml
Normal file
8
environments/config-download-environment.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
resource_registry:
|
||||||
|
OS::TripleO::SoftwareDeployment: ../config-download-structured.yaml
|
||||||
|
OS::TripleO::StructuredDeployment: ../config-download-structured.yaml
|
||||||
|
|
||||||
|
OS::Heat::SoftwareDeployment: ../config-download-software.yaml
|
||||||
|
OS::Heat::StructuredDeployment: ../config-download-structured.yaml
|
||||||
|
|
||||||
|
OS::TripleO::DeploymentSteps: OS::Heat::None
|
@ -20,6 +20,7 @@ resources:
|
|||||||
ControllerPrePuppetMaintenanceModeDeployment:
|
ControllerPrePuppetMaintenanceModeDeployment:
|
||||||
type: OS::Heat::SoftwareDeployments
|
type: OS::Heat::SoftwareDeployments
|
||||||
properties:
|
properties:
|
||||||
|
name: ControllerPrePuppetMaintenanceModeDeployment
|
||||||
servers: {get_param: servers}
|
servers: {get_param: servers}
|
||||||
config: {get_resource: ControllerPrePuppetMaintenanceModeConfig}
|
config: {get_resource: ControllerPrePuppetMaintenanceModeConfig}
|
||||||
input_values: {get_param: input_values}
|
input_values: {get_param: input_values}
|
||||||
|
@ -121,7 +121,8 @@ PARAMETER_DEFINITION_EXCLUSIONS = {'ManagementNetCidr': ['default'],
|
|||||||
'ControllerExtraConfig': ['description'],
|
'ControllerExtraConfig': ['description'],
|
||||||
'NovaComputeExtraConfig': ['description'],
|
'NovaComputeExtraConfig': ['description'],
|
||||||
'controllerExtraConfig': ['description'],
|
'controllerExtraConfig': ['description'],
|
||||||
'DockerSwiftConfigImage': ['default']
|
'DockerSwiftConfigImage': ['default'],
|
||||||
|
'input_values': ['default']
|
||||||
}
|
}
|
||||||
|
|
||||||
PREFERRED_CAMEL_CASE = {
|
PREFERRED_CAMEL_CASE = {
|
||||||
|
Loading…
Reference in New Issue
Block a user