diff --git a/deployment/aodh/aodh-api-container-puppet.yaml b/deployment/aodh/aodh-api-container-puppet.yaml index 8a5fdbeecf..366d3a9c0c 100644 --- a/deployment/aodh/aodh-api-container-puppet.yaml +++ b/deployment/aodh/aodh-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerAodhApiImage: description: image type: string + tags: + - role_specific ContainerAodhConfigImage: description: The container image to use for the aodh config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -133,6 +137,20 @@ resources: RoleParameters: {get_param: RoleParameters} EnableInternalTLS: {get_param: EnableInternalTLS} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerAodhApiImage: ContainerAodhApiImage + ContainerAodhConfigImage: ContainerAodhConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerAodhApiImage: {get_param: ContainerAodhApiImage} + ContainerAodhConfigImage: {get_param: ContainerAodhConfigImage} + outputs: role_data: description: Role data for the aodh API role. @@ -214,7 +232,7 @@ outputs: - "\n" - - "include tripleo::profile::base::aodh::api" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerAodhConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerAodhConfigImage]} kolla_config: /var/lib/kolla/config_files/aodh_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -254,7 +272,7 @@ outputs: # db sync runs before permissions set by kolla_config step_2: aodh_init_log: - image: &aodh_api_image {get_param: ContainerAodhApiImage} + image: &aodh_api_image {get_attr: [RoleParametersValue, value, ContainerAodhApiImage]} net: none user: root volumes: diff --git a/deployment/aodh/aodh-evaluator-container-puppet.yaml b/deployment/aodh/aodh-evaluator-container-puppet.yaml index b2f9aec13a..0893f22517 100644 --- a/deployment/aodh/aodh-evaluator-container-puppet.yaml +++ b/deployment/aodh/aodh-evaluator-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerAodhEvaluatorImage: description: image type: string + tags: + - role_specific ContainerAodhConfigImage: description: The container image to use for the aodh config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -54,6 +58,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerAodhEvaluatorImage: ContainerAodhEvaluatorImage + ContainerAodhConfigImage: ContainerAodhConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerAodhEvaluatorImage: {get_param: ContainerAodhEvaluatorImage} + ContainerAodhConfigImage: {get_param: ContainerAodhConfigImage} + outputs: role_data: description: Role data for the Aodh API role. @@ -72,7 +90,7 @@ outputs: - "\n" - - "include tripleo::profile::base::aodh::evaluator" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerAodhConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerAodhConfigImage]} kolla_config: /var/lib/kolla/config_files/aodh_evaluator.json: command: /usr/bin/aodh-evaluator @@ -88,7 +106,7 @@ outputs: docker_config: step_4: aodh_evaluator: - image: {get_param: ContainerAodhEvaluatorImage} + image: {get_attr: [RoleParametersValue, value, ContainerAodhEvaluatorImage]} net: host privileged: false restart: always diff --git a/deployment/aodh/aodh-listener-container-puppet.yaml b/deployment/aodh/aodh-listener-container-puppet.yaml index 5c326a5e76..9fbe1ae04e 100644 --- a/deployment/aodh/aodh-listener-container-puppet.yaml +++ b/deployment/aodh/aodh-listener-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerAodhListenerImage: description: image type: string + tags: + - role_specific ContainerAodhConfigImage: description: The container image to use for the aodh config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -54,6 +58,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerAodhListenerImage: ContainerAodhListenerImage + ContainerAodhConfigImage: ContainerAodhConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerAodhListenerImage: {get_param: ContainerAodhListenerImage} + ContainerAodhConfigImage: {get_param: ContainerAodhConfigImage} + outputs: role_data: description: Role data for the Aodh API role. @@ -73,7 +91,7 @@ outputs: - "\n" - - "include tripleo::profile::base::aodh::listener" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerAodhConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerAodhConfigImage]} kolla_config: /var/lib/kolla/config_files/aodh_listener.json: command: /usr/bin/aodh-listener @@ -89,7 +107,7 @@ outputs: docker_config: step_4: aodh_listener: - image: {get_param: ContainerAodhListenerImage} + image: {get_attr: [RoleParametersValue, value, ContainerAodhListenerImage]} net: host privileged: false restart: always diff --git a/deployment/aodh/aodh-notifier-container-puppet.yaml b/deployment/aodh/aodh-notifier-container-puppet.yaml index 87f6181209..6217c935b8 100644 --- a/deployment/aodh/aodh-notifier-container-puppet.yaml +++ b/deployment/aodh/aodh-notifier-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerAodhNotifierImage: description: image type: string + tags: + - role_specific ContainerAodhConfigImage: description: The container image to use for the aodh config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -54,6 +58,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerAodhNotifierImage: ContainerAodhNotifierImage + ContainerAodhConfigImage: ContainerAodhConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerAodhNotifierImage: {get_param: ContainerAodhNotifierImage} + ContainerAodhConfigImage: {get_param: ContainerAodhConfigImage} + outputs: role_data: description: Role data for the Aodh API role. @@ -73,7 +91,7 @@ outputs: - "\n" - - "include tripleo::profile::base::aodh::notifier" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerAodhConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerAodhConfigImage]} kolla_config: /var/lib/kolla/config_files/aodh_notifier.json: command: /usr/bin/aodh-notifier @@ -89,7 +107,7 @@ outputs: docker_config: step_4: aodh_notifier: - image: {get_param: ContainerAodhNotifierImage} + image: {get_attr: [RoleParametersValue, value, ContainerAodhNotifierImage]} net: host privileged: false restart: always diff --git a/deployment/barbican/barbican-api-container-puppet.yaml b/deployment/barbican/barbican-api-container-puppet.yaml index 186d7e85b1..f9d8623b5c 100644 --- a/deployment/barbican/barbican-api-container-puppet.yaml +++ b/deployment/barbican/barbican-api-container-puppet.yaml @@ -7,15 +7,23 @@ parameters: ContainerBarbicanApiImage: description: image type: string + tags: + - role_specific ContainerBarbicanConfigImage: description: The container image to use for the barbican config_volume type: string + tags: + - role_specific ContainerBarbicanKeystoneListenerImage: description: image type: string + tags: + - role_specific ContainerBarbicanWorkerImage: description: image type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -193,6 +201,24 @@ resources: properties: EndpointMap: {get_param: EndpointMap} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerBarbicanApiImage: ContainerBarbicanApiImage + ContainerBarbicanConfigImage: ContainerBarbicanConfigImage + ContainerBarbicanKeystoneListenerImage: ContainerBarbicanKeystoneListenerImage + ContainerBarbicanWorkerImage: ContainerBarbicanWorkerImage + - values: {get_param: [RoleParameters]} + - values: + ContainerBarbicanApiImage: {get_param: ContainerBarbicanApiImage} + ContainerBarbicanConfigImage: {get_param: ContainerBarbicanConfigImage} + ContainerBarbicanKeystoneListenerImage: {get_param: ContainerBarbicanKeystoneListenerImage} + ContainerBarbicanWorkerImage: {get_param: ContainerBarbicanWorkerImage} + outputs: role_data: description: Role data for the Barbican API role. @@ -300,7 +326,7 @@ outputs: - "\n" - - "include tripleo::profile::base::barbican::api" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerBarbicanConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerBarbicanConfigImage]} kolla_config: /var/lib/kolla/config_files/barbican_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -553,7 +579,7 @@ outputs: - if: - {get_param: BarbicanPkcs11CryptoATOSEnabled} - barbican_init_atos_directory: - image: &barbican_api_image {get_param: ContainerBarbicanApiImage} + image: &barbican_api_image {get_attr: [RoleParametersValue, value, ContainerBarbicanApiImage]} net: host user: root volumes: @@ -727,7 +753,7 @@ outputs: KOLLA_CONFIG_STRATEGY: COPY_ALWAYS - barbican_keystone_listener: start_order: 6 - image: {get_param: ContainerBarbicanKeystoneListenerImage} + image: {get_attr: [RoleParametersValue, value, ContainerBarbicanKeystoneListenerImage]} net: host privileged: false restart: always @@ -743,7 +769,7 @@ outputs: environment: *kolla_env - barbican_worker: start_order: 7 - image: {get_param: ContainerBarbicanWorkerImage} + image: {get_attr: [RoleParametersValue, value, ContainerBarbicanWorkerImage]} net: host privileged: false restart: always diff --git a/deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml b/deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml index 4f60e81e69..18b0a37f92 100644 --- a/deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml +++ b/deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCeilometerCentralImage: description: image type: string + tags: + - role_specific ContainerCeilometerConfigImage: description: The container image to use for the ceilometer config_volume type: string + tags: + - role_specific CeilometerAgentCentralLoggingSource: type: json default: @@ -67,6 +71,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCeilometerCentralImage: ContainerCeilometerCentralImage + ContainerCeilometerConfigImage: ContainerCeilometerConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCeilometerCentralImage: {get_param: ContainerCeilometerCentralImage} + ContainerCeilometerConfigImage: {get_param: ContainerCeilometerConfigImage} + outputs: role_data: description: Role data for the Ceilometer Agent Central role. @@ -98,7 +116,7 @@ outputs: puppet_tags: ceilometer_config step_config: | include tripleo::profile::base::ceilometer::agent::polling - config_image: {get_param: ContainerCeilometerConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCeilometerConfigImage]} kolla_config: /var/lib/kolla/config_files/ceilometer_agent_central.json: command: /usr/bin/ceilometer-polling --polling-namespaces central --logfile /var/log/ceilometer/central.log @@ -114,7 +132,7 @@ outputs: step_3: ceilometer_init_log: start_order: 0 - image: &ceilometer_agent_central_image {get_param: ContainerCeilometerCentralImage} + image: &ceilometer_agent_central_image {get_attr: [RoleParametersValue, value, ContainerCeilometerCentralImage]} net: none user: root command: ['/bin/bash', '-c', 'chown -R ceilometer:ceilometer /var/log/ceilometer'] diff --git a/deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml b/deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml index 2b60634d1b..618689b2d2 100644 --- a/deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml +++ b/deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCeilometerComputeImage: description: image type: string + tags: + - role_specific ContainerCeilometerConfigImage: description: The container image to use for the ceilometer config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -60,6 +64,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCeilometerComputeImage: ContainerCeilometerComputeImage + ContainerCeilometerConfigImage: ContainerCeilometerConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCeilometerComputeImage: {get_param: ContainerCeilometerComputeImage} + ContainerCeilometerConfigImage: {get_param: ContainerCeilometerConfigImage} + outputs: role_data: description: Role data for the Ceilometer Agent Compute role. @@ -80,7 +98,7 @@ outputs: puppet_tags: ceilometer_config step_config: include tripleo::profile::base::ceilometer::agent::polling - config_image: {get_param: ContainerCeilometerConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCeilometerConfigImage]} kolla_config: /var/lib/kolla/config_files/ceilometer_agent_compute.json: command: /usr/bin/ceilometer-polling --polling-namespaces compute --logfile /var/log/ceilometer/compute.log @@ -92,7 +110,7 @@ outputs: docker_config: step_4: ceilometer_agent_compute: - image: {get_param: ContainerCeilometerComputeImage} + image: {get_attr: [RoleParametersValue, value, ContainerCeilometerComputeImage]} net: host privileged: false restart: always diff --git a/deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml b/deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml index 5e742ef75a..355f72f666 100644 --- a/deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml +++ b/deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCeilometerIpmiImage: description: image type: string + tags: + - role_specific ContainerCeilometerConfigImage: description: The container image to use for the ceilometer config_volume type: string + tags: + - role_specific CeilometerAgentIpmiLoggingSource: type: json default: @@ -68,6 +72,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCeilometerIpmiImage: ContainerCeilometerIpmiImage + ContainerCeilometerConfigImage: ContainerCeilometerConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCeilometerIpmiImage: {get_param: ContainerCeilometerIpmiImage} + ContainerCeilometerConfigImage: {get_param: ContainerCeilometerConfigImage} + outputs: role_data: description: Role data for the Ceilometer Agent Ipmi role. @@ -89,7 +107,7 @@ outputs: puppet_tags: ceilometer_config step_config: | include tripleo::profile::base::ceilometer::agent::polling - config_image: {get_param: ContainerCeilometerConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCeilometerConfigImage]} kolla_config: /var/lib/kolla/config_files/ceilometer-agent-ipmi.json: command: /usr/bin/ceilometer-polling --polling-namespaces ipmi @@ -102,7 +120,7 @@ outputs: step_3: ceilometer_init_log: start_order: 0 - image: &ceilometer_agent_ipmi_image {get_param: ContainerCeilometerIpmiImage} + image: &ceilometer_agent_ipmi_image {get_attr: [RoleParametersValue, value, ContainerCeilometerIpmiImage]} net: none user: root command: ['/bin/bash', '-c', 'chown -R ceilometer:ceilometer /var/log/ceilometer'] diff --git a/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml b/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml index befdd4e235..7cdc3c007b 100644 --- a/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml +++ b/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCeilometerNotificationImage: description: image type: string + tags: + - role_specific ContainerCeilometerConfigImage: description: The container image to use for the ceilometer config_volume type: string + tags: + - role_specific CeilometerAgentNotificationLoggingSource: type: json default: @@ -102,6 +106,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCeilometerNotificationImage: ContainerCeilometerNotificationImage + ContainerCeilometerConfigImage: ContainerCeilometerConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCeilometerNotificationImage: {get_param: ContainerCeilometerNotificationImage} + ContainerCeilometerConfigImage: {get_param: ContainerCeilometerConfigImage} + conditions: ceilometer_qdr_publish: or: @@ -152,7 +170,7 @@ outputs: puppet_tags: ceilometer_config step_config: | include tripleo::profile::base::ceilometer::agent::notification - config_image: {get_param: ContainerCeilometerConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCeilometerConfigImage]} kolla_config: /var/lib/kolla/config_files/ceilometer_agent_notification.json: command: /usr/bin/ceilometer-agent-notification --logfile /var/log/ceilometer/agent-notification.log @@ -167,7 +185,7 @@ outputs: step_3: ceilometer_init_log: start_order: 0 - image: &ceilometer_agent_notification_image {get_param: ContainerCeilometerNotificationImage} + image: &ceilometer_agent_notification_image {get_attr: [RoleParametersValue, value, ContainerCeilometerNotificationImage]} net: none user: root command: ['/bin/bash', '-c', 'chown -R ceilometer:ceilometer /var/log/ceilometer'] diff --git a/deployment/cinder/cinder-api-container-puppet.yaml b/deployment/cinder/cinder-api-container-puppet.yaml index df701c0470..5785f75d05 100644 --- a/deployment/cinder/cinder-api-container-puppet.yaml +++ b/deployment/cinder/cinder-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCinderApiImage: description: image type: string + tags: + - role_specific ContainerCinderConfigImage: description: The container image to use for the cinder config_volume type: string + tags: + - role_specific CinderApiLoggingSource: type: json default: @@ -128,6 +132,20 @@ resources: RoleParameters: {get_param: RoleParameters} EnableInternalTLS: {get_param: EnableInternalTLS} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCinderApiImage: ContainerCinderApiImage + ContainerCinderConfigImage: ContainerCinderConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCinderApiImage: {get_param: ContainerCinderApiImage} + ContainerCinderConfigImage: {get_param: ContainerCinderConfigImage} + outputs: role_data: description: Role data for the Cinder API role. @@ -230,7 +248,7 @@ outputs: - "\n" - - "include tripleo::profile::base::cinder::api" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerCinderConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCinderConfigImage]} kolla_config: /var/lib/kolla/config_files/cinder_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -278,7 +296,7 @@ outputs: docker_config: step_2: cinder_api_init_logs: - image: &cinder_api_image {get_param: ContainerCinderApiImage} + image: &cinder_api_image {get_attr: [RoleParametersValue, value, ContainerCinderApiImage]} net: none privileged: false user: root diff --git a/deployment/cinder/cinder-backup-container-puppet.yaml b/deployment/cinder/cinder-backup-container-puppet.yaml index 5b6487d9bf..e45075a261 100644 --- a/deployment/cinder/cinder-backup-container-puppet.yaml +++ b/deployment/cinder/cinder-backup-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCinderBackupImage: description: image type: string + tags: + - role_specific ContainerCinderConfigImage: description: The container image to use for the cinder config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -152,6 +156,20 @@ resources: CinderCommon: type: ./cinder-common-container-puppet.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCinderBackupImage: ContainerCinderBackupImage + ContainerCinderConfigImage: ContainerCinderConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCinderBackupImage: {get_param: ContainerCinderBackupImage} + ContainerCinderConfigImage: {get_param: ContainerCinderConfigImage} + outputs: role_data: description: Role data for the Cinder Backup role. @@ -229,7 +247,7 @@ outputs: params: DRIVER: {get_param: CinderBackupBackend} - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerCinderConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCinderConfigImage]} kolla_config: /var/lib/kolla/config_files/cinder_backup.json: command: /usr/bin/cinder-backup --config-file /etc/cinder/cinder.conf @@ -239,7 +257,7 @@ outputs: step_3: cinder_backup_init_logs: start_order: 0 - image: &cinder_backup_image {get_param: ContainerCinderBackupImage} + image: &cinder_backup_image {get_attr: [RoleParametersValue, value, ContainerCinderBackupImage]} net: none privileged: false user: root diff --git a/deployment/cinder/cinder-backup-pacemaker-puppet.yaml b/deployment/cinder/cinder-backup-pacemaker-puppet.yaml index f4c64ad3b9..7106060753 100644 --- a/deployment/cinder/cinder-backup-pacemaker-puppet.yaml +++ b/deployment/cinder/cinder-backup-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCinderBackupImage: description: image type: string + tags: + - role_specific ContainerCinderConfigImage: description: The container image to use for the cinder config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -108,6 +112,20 @@ resources: CinderCommon: type: ./cinder-common-container-puppet.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCinderBackupImage: ContainerCinderBackupImage + ContainerCinderConfigImage: ContainerCinderConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCinderBackupImage: {get_param: ContainerCinderBackupImage} + ContainerCinderConfigImage: {get_param: ContainerCinderConfigImage} + outputs: role_data: description: Role data for the Cinder Backup role. @@ -126,9 +144,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerCinderBackupImage} + data: {get_attr: [RoleParametersValue, value, ContainerCinderBackupImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerCinderBackupImage} + - {get_attr: [RoleParametersValue, value, ContainerCinderBackupImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::cinder::backup_bundle::docker_volumes: {get_attr: [CinderCommon, cinder_backup_volumes]} tripleo::profile::pacemaker::cinder::backup_bundle::docker_environment: {get_attr: [CinderCommon, cinder_backup_environment]} @@ -147,7 +165,7 @@ outputs: - "\n" - - {get_attr: [CinderBackupBase, role_data, puppet_config, step_config]} - "include tripleo::profile::pacemaker::cinder::backup_bundle" - config_image: {get_param: ContainerCinderConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCinderConfigImage]} kolla_config: /var/lib/kolla/config_files/cinder_backup.json: command: /usr/bin/cinder-backup --config-file /etc/cinder/cinder.conf @@ -158,7 +176,7 @@ outputs: step_3: cinder_backup_init_logs: start_order: 0 - image: {get_param: ContainerCinderBackupImage} + image: {get_attr: [RoleParametersValue, value, ContainerCinderBackupImage]} net: none privileged: false user: root @@ -172,7 +190,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerCinderBackupImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerCinderBackupImage]} container_image_latest: *cinder_backup_image_pcmklatest - name: Cinder Backup HA Wrappers Step when: step|int == 5 @@ -196,7 +214,7 @@ outputs: block: &cinder_backup_fetch_retag_container_tasks - name: Get container cinder_backup image set_fact: - cinder_backup_image: {get_param: ContainerCinderBackupImage} + cinder_backup_image: {get_attr: [RoleParametersValue, value, ContainerCinderBackupImage]} cinder_backup_image_latest: *cinder_backup_image_pcmklatest - name: Pull latest cinder_backup images command: "{{container_cli}} pull {{cinder_backup_image}}" diff --git a/deployment/cinder/cinder-scheduler-container-puppet.yaml b/deployment/cinder/cinder-scheduler-container-puppet.yaml index fab09a6a52..c8d8e5f688 100644 --- a/deployment/cinder/cinder-scheduler-container-puppet.yaml +++ b/deployment/cinder/cinder-scheduler-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCinderSchedulerImage: description: image type: string + tags: + - role_specific ContainerCinderConfigImage: description: The container image to use for the cinder config_volume type: string + tags: + - role_specific CinderSchedulerLoggingSource: type: json default: @@ -61,6 +65,20 @@ resources: CinderCommon: type: ./cinder-common-container-puppet.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCinderSchedulerImage: ContainerCinderSchedulerImage + ContainerCinderConfigImage: ContainerCinderConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCinderSchedulerImage: {get_param: ContainerCinderSchedulerImage} + ContainerCinderConfigImage: {get_param: ContainerCinderConfigImage} + outputs: role_data: description: Role data for the Cinder Scheduler role. @@ -85,7 +103,7 @@ outputs: - - "include tripleo::profile::base::cinder::scheduler" - - {get_attr: [CinderBase, role_data, step_config]} - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerCinderConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCinderConfigImage]} kolla_config: /var/lib/kolla/config_files/cinder_scheduler.json: command: /usr/bin/cinder-scheduler --config-file /etc/cinder/cinder.conf @@ -110,7 +128,7 @@ outputs: docker_config: step_2: cinder_scheduler_init_logs: - image: &cinder_scheduler_image {get_param: ContainerCinderSchedulerImage} + image: &cinder_scheduler_image {get_attr: [RoleParametersValue, value, ContainerCinderSchedulerImage]} net: none privileged: false user: root diff --git a/deployment/cinder/cinder-volume-container-puppet.yaml b/deployment/cinder/cinder-volume-container-puppet.yaml index 791d8917da..69660df76f 100644 --- a/deployment/cinder/cinder-volume-container-puppet.yaml +++ b/deployment/cinder/cinder-volume-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCinderVolumeImage: description: image type: string + tags: + - role_specific ContainerCinderConfigImage: description: The container image to use for the cinder config_volume type: string + tags: + - role_specific DockerCinderVolumeUlimit: default: ['nofile=131072'] description: ulimit for Cinder Volume Container @@ -218,6 +222,20 @@ resources: CinderCommon: type: ./cinder-common-container-puppet.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCinderVolumeImage: ContainerCinderVolumeImage + ContainerCinderConfigImage: ContainerCinderConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCinderVolumeImage: {get_param: ContainerCinderVolumeImage} + ContainerCinderConfigImage: {get_param: ContainerCinderConfigImage} + outputs: role_data: description: Role data for the Cinder Volume role. @@ -298,7 +316,7 @@ outputs: - - "include tripleo::profile::base::lvm" - "include tripleo::profile::base::cinder::volume" - get_attr: [MySQLClient, role_data, step_config] - config_image: {get_param: ContainerCinderConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCinderConfigImage]} kolla_config: /var/lib/kolla/config_files/cinder_volume.json: command: /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf @@ -308,7 +326,7 @@ outputs: step_3: cinder_volume_init_logs: start_order: 0 - image: &cinder_volume_image {get_param: ContainerCinderVolumeImage} + image: &cinder_volume_image {get_attr: [RoleParametersValue, value, ContainerCinderVolumeImage]} net: none privileged: false user: root diff --git a/deployment/cinder/cinder-volume-pacemaker-puppet.yaml b/deployment/cinder/cinder-volume-pacemaker-puppet.yaml index bc3ba5dec5..9100cced73 100644 --- a/deployment/cinder/cinder-volume-pacemaker-puppet.yaml +++ b/deployment/cinder/cinder-volume-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCinderVolumeImage: description: image type: string + tags: + - role_specific ContainerCinderConfigImage: description: The container image to use for the cinder config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -93,6 +97,20 @@ resources: CinderCommon: type: ./cinder-common-container-puppet.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCinderVolumeImage: ContainerCinderVolumeImage + ContainerCinderConfigImage: ContainerCinderConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCinderVolumeImage: {get_param: ContainerCinderVolumeImage} + ContainerCinderConfigImage: {get_param: ContainerCinderConfigImage} + outputs: role_data: description: Role data for the Cinder Volume role. @@ -113,9 +131,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerCinderVolumeImage} + data: {get_attr: [RoleParametersValue, value, ContainerCinderVolumeImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerCinderVolumeImage} + - {get_attr: [RoleParametersValue, value, ContainerCinderVolumeImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::cinder::volume_bundle::docker_volumes: {get_attr: [CinderCommon, cinder_volume_volumes]} tripleo::profile::pacemaker::cinder::volume_bundle::docker_environment: {get_attr: [CinderCommon, cinder_volume_environment]} @@ -136,7 +154,7 @@ outputs: - - "include tripleo::profile::base::lvm" - - "include tripleo::profile::pacemaker::cinder::volume_bundle" - get_attr: [MySQLClient, role_data, step_config] - config_image: {get_param: ContainerCinderConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCinderConfigImage]} kolla_config: /var/lib/kolla/config_files/cinder_volume.json: command: /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf @@ -147,7 +165,7 @@ outputs: step_3: cinder_volume_init_logs: start_order: 0 - image: {get_param: ContainerCinderVolumeImage} + image: {get_attr: [RoleParametersValue, value, ContainerCinderVolumeImage]} net: none privileged: false user: root @@ -161,7 +179,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerCinderVolumeImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerCinderVolumeImage]} container_image_latest: *cinder_volume_image_pcmklatest - name: Cinder Volume HA Wrappers Step when: step|int == 5 @@ -185,7 +203,7 @@ outputs: block: &cinder_volume_fetch_retag_container_tasks - name: Get container cinder_volume image set_fact: - cinder_volume_image: {get_param: ContainerCinderVolumeImage} + cinder_volume_image: {get_attr: [RoleParametersValue, value, ContainerCinderVolumeImage]} cinder_volume_image_latest: *cinder_volume_image_pcmklatest - name: Pull latest cinder_volume images command: "{{container_cli}} pull {{cinder_volume_image}}" diff --git a/deployment/database/mysql-container-puppet.yaml b/deployment/database/mysql-container-puppet.yaml index 5b7eab5a6d..d4feb714f3 100644 --- a/deployment/database/mysql-container-puppet.yaml +++ b/deployment/database/mysql-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerMysqlImage: description: image type: string + tags: + - role_specific ContainerMysqlConfigImage: description: The container image to use for the mysql config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -62,6 +66,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMysqlImage: ContainerMysqlImage + ContainerMysqlConfigImage: ContainerMysqlConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMysqlImage: {get_param: ContainerMysqlImage} + ContainerMysqlConfigImage: {get_param: ContainerMysqlConfigImage} + outputs: role_data: description: Containerized service MySQL using composable services. @@ -98,7 +116,7 @@ outputs: - "\n" - - "['Mysql_datadir', 'Mysql_user', 'Mysql_database', 'Mysql_grant', 'Mysql_plugin'].each |String $val| { noop_resource($val) }" - {get_attr: [MysqlBase, role_data, step_config]} - config_image: &mysql_config_image {get_param: ContainerMysqlConfigImage} + config_image: &mysql_config_image {get_attr: [RoleParametersValue, value, ContainerMysqlConfigImage]} kolla_config: /var/lib/kolla/config_files/mysql.json: command: /usr/libexec/mysqld --user=mysql @@ -130,7 +148,7 @@ outputs: # Kolla_bootstrap runs before permissions set by kolla_config step_1: mysql_init_logs: - image: &mysql_image {get_param: ContainerMysqlImage} + image: &mysql_image {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} net: none privileged: false user: root @@ -281,7 +299,7 @@ outputs: pre_upgrade_mysql_image: "{{ mysql_infos.containers.0.ImageName }}" - name: Set fact for Mysql container image after upgrade set_fact: - post_upgrade_mysql_image: {get_param: ContainerMysqlImage} + post_upgrade_mysql_image: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} - name: Redo log clean-up script set_fact: # The purpose of this script is to start mysql so that it diff --git a/deployment/database/mysql-pacemaker-puppet.yaml b/deployment/database/mysql-pacemaker-puppet.yaml index b8c4f77ecb..908790eca9 100644 --- a/deployment/database/mysql-pacemaker-puppet.yaml +++ b/deployment/database/mysql-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerMysqlImage: description: image type: string + tags: + - role_specific ContainerMysqlConfigImage: description: The container image to use for the mysql config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -98,6 +102,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMysqlImage: ContainerMysqlImage + ContainerMysqlConfigImage: ContainerMysqlConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMysqlImage: {get_param: ContainerMysqlImage} + ContainerMysqlConfigImage: {get_param: ContainerMysqlConfigImage} + conditions: docker_enabled: {equals: [{get_param: ContainerCli}, 'docker']} @@ -148,9 +166,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerMysqlImage} + data: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerMysqlImage} + - {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::database::mysql_bundle::control_port: 3123 tripleo::profile::pacemaker::database::mysql_bundle::container_backend: {get_param: ContainerCli} @@ -174,7 +192,7 @@ outputs: - - "['Mysql_datadir', 'Mysql_user', 'Mysql_database', 'Mysql_grant', 'Mysql_plugin'].each |String $val| { noop_resource($val) }" - "exec {'wait-for-settle': command => '/bin/true' }" - "include tripleo::profile::pacemaker::database::mysql_bundle" - config_image: {get_param: ContainerMysqlConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerMysqlConfigImage]} kolla_config: /var/lib/kolla/config_files/mysql.json: command: /usr/sbin/pacemaker_remoted @@ -210,7 +228,7 @@ outputs: mysql_data_ownership: start_order: 0 detach: false - image: {get_param: ContainerMysqlImage} + image: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} net: host user: root # Kolla does only non-recursive chown @@ -220,7 +238,7 @@ outputs: mysql_bootstrap: start_order: 1 detach: false - image: {get_param: ContainerMysqlImage} + image: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} net: host user: root # Kolla bootstraps aren't idempotent, explicitly checking if bootstrap was done @@ -270,7 +288,7 @@ outputs: - if: - {get_param: ConfigDebug} - - '--debug' - image: {get_param: ContainerMysqlImage} + image: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -304,7 +322,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerMysqlImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} container_image_latest: *mysql_image_pcmklatest - name: MySQL HA Wrappers Step when: step|int == 2 @@ -328,7 +346,7 @@ outputs: block: &mysql_fetch_retag_container_tasks - name: Get container galera image set_fact: - galera_image: {get_param: ContainerMysqlImage} + galera_image: {get_attr: [RoleParametersValue, value, ContainerMysqlImage]} galera_image_latest: *mysql_image_pcmklatest - name: Pull latest galera images command: "{{container_cli}} pull {{galera_image}}" diff --git a/deployment/database/redis-container-puppet.yaml b/deployment/database/redis-container-puppet.yaml index fe443cba14..684f7f3ed4 100644 --- a/deployment/database/redis-container-puppet.yaml +++ b/deployment/database/redis-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRedisImage: description: image type: string + tags: + - role_specific ContainerRedisConfigImage: description: The container image to use for the redis config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -62,6 +66,20 @@ resources: ServiceData: {get_param: ServiceData} ServiceNetMap: {get_param: ServiceNetMap} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRedisImage: ContainerRedisImage + ContainerRedisConfigImage: ContainerRedisConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRedisImage: {get_param: ContainerRedisImage} + ContainerRedisConfigImage: {get_param: ContainerRedisConfigImage} + outputs: role_data: description: Role data for the Redis API role. @@ -110,7 +128,7 @@ outputs: - "\n" - - include tripleo::profile::base::database::redis - {get_attr: [RedisBase, role_data, step_config]} - config_image: {get_param: ContainerRedisConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerRedisConfigImage]} kolla_config: /var/lib/kolla/config_files/redis.json: command: /usr/bin/redis-server /etc/redis.conf @@ -136,7 +154,7 @@ outputs: - redis_init_logs: start_order: 0 detach: false - image: &redis_image {get_param: ContainerRedisImage} + image: &redis_image {get_attr: [RoleParametersValue, value, ContainerRedisImage]} net: none privileged: false user: root diff --git a/deployment/database/redis-pacemaker-puppet.yaml b/deployment/database/redis-pacemaker-puppet.yaml index eae43117e3..eb8f7fde85 100644 --- a/deployment/database/redis-pacemaker-puppet.yaml +++ b/deployment/database/redis-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRedisImage: description: image type: string + tags: + - role_specific ContainerRedisConfigImage: description: The container image to use for the redis config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -100,6 +104,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRedisImage: ContainerRedisImage + ContainerRedisConfigImage: ContainerRedisConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRedisImage: {get_param: ContainerRedisImage} + ContainerRedisConfigImage: {get_param: ContainerRedisConfigImage} + outputs: role_data: description: Role data for the Redis API role. @@ -126,9 +144,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerRedisImage} + data: {get_attr: [RoleParametersValue, value, ContainerRedisImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerRedisImage} + - {get_attr: [RoleParametersValue, value, ContainerRedisImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::database::redis_bundle::redis_docker_control_port: 3124 tripleo::profile::pacemaker::database::redis_bundle::container_backend: {get_param: ContainerCli} @@ -180,7 +198,7 @@ outputs: puppet_tags: 'exec' step_config: | include tripleo::profile::pacemaker::database::redis_bundle - config_image: &redis_config_image {get_param: ContainerRedisConfigImage} + config_image: &redis_config_image {get_attr: [RoleParametersValue, value, ContainerRedisConfigImage]} kolla_config: /var/lib/kolla/config_files/redis.json: command: /usr/sbin/pacemaker_remoted @@ -239,7 +257,7 @@ outputs: - {get_param: EnableInternalTLS} - redis_tls_proxy: start_order: 0 - image: {get_param: ContainerRedisImage} + image: {get_attr: [RoleParametersValue, value, ContainerRedisImage]} net: host user: root restart: always @@ -281,7 +299,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerRedisImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerRedisImage]} container_image_latest: *redis_image_pcmklatest - name: Redis HA Wrappers Step when: step|int == 2 @@ -311,7 +329,7 @@ outputs: block: &redis_fetch_retag_container_tasks - name: Get container redis image set_fact: - redis_image: {get_param: ContainerRedisImage} + redis_image: {get_attr: [RoleParametersValue, value, ContainerRedisImage]} redis_image_latest: *redis_image_pcmklatest - name: Pull latest redis images command: "{{container_cli}} pull {{redis_image}}" diff --git a/deployment/deprecated/multipathd-container.yaml b/deployment/deprecated/multipathd-container.yaml index 56367b0792..2e52573275 100644 --- a/deployment/deprecated/multipathd-container.yaml +++ b/deployment/deprecated/multipathd-container.yaml @@ -7,9 +7,13 @@ parameters: ContainerMultipathdImage: description: image type: string + tags: + - role_specific ContainerMultipathdConfigImage: description: The container image to use for the multipathd config_volume type: string + tags: + - role_specific MultipathdEnable: default: false description: Whether to enable the multipath daemon @@ -57,6 +61,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMultipathdImage: ContainerMultipathdImage + ContainerMultipathdConfigImage: ContainerMultipathdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMultipathdImage: {get_param: ContainerMultipathdImage} + ContainerMultipathdConfigImage: {get_param: ContainerMultipathdConfigImage} + outputs: role_data: description: Role data for the Multipathd API role. @@ -90,7 +108,7 @@ outputs: - find_multipaths_enabled - 'y' - 'n' - config_image: {get_param: ContainerMultipathdConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerMultipathdConfigImage]} volumes: - /etc/multipath.conf:/etc/multipath.conf:z kolla_config: @@ -109,7 +127,7 @@ outputs: step_3: multipathd: start_order: 1 - image: {get_param: ContainerMultipathdImage} + image: {get_attr: [RoleParametersValue, value, ContainerMultipathdImage]} net: host privileged: true restart: always diff --git a/deployment/deprecated/nova/nova-libvirt-container-puppet.yaml b/deployment/deprecated/nova/nova-libvirt-container-puppet.yaml index 1194c07001..51f88ab9f2 100644 --- a/deployment/deprecated/nova/nova-libvirt-container-puppet.yaml +++ b/deployment/deprecated/nova/nova-libvirt-container-puppet.yaml @@ -7,11 +7,15 @@ parameters: ContainerNovaLibvirtImage: description: image type: string + tags: + - role_specific # we configure libvirt via the nova-compute container due to coupling # in the puppet modules ContainerNovaLibvirtConfigImage: description: The container image to use for the nova_libvirt config_volume type: string + tags: + - role_specific ContainerNovaLibvirtUlimit: default: ['nofile=131072', 'nproc=126960'] description: ulimit for Nova Libvirt Container @@ -323,11 +327,15 @@ resources: - vhostuser_socket_group: VhostuserSocketGroup nova::compute::libvirt::qemu::memory_backing_dir: QemuMemoryBackingDir nova_libvirt_opt_volumes: NovaLibvirtOptVolumes + ContainerNovaLibvirtImage: ContainerNovaLibvirtImage + ContainerNovaLibvirtConfigImage: ContainerNovaLibvirtConfigImage - values: {get_param: [RoleParameters]} - values: VhostuserSocketGroup: {get_param: VhostuserSocketGroup} QemuMemoryBackingDir: {get_param: QemuMemoryBackingDir} NovaLibvirtOptVolumes: {get_param: NovaLibvirtOptVolumes} + ContainerNovaLibvirtImage: {get_param: ContainerNovaLibvirtImage} + ContainerNovaLibvirtConfigImage: {get_param: ContainerNovaLibvirtConfigImage} ContainersCommon: type: ../../containers-common.yaml @@ -367,7 +375,7 @@ outputs: tripleo::profile::base::nova::virtlogd_wrapper::enable_wrapper: {get_param: NovaEnableVirtlogdContainerWrapper} # don't think this is a good place as /var/lib/nova can also be shared storage tripleo::profile::base::nova::virtlogd_wrapper::virtlogd_process_wrapper: '/var/lib/container-config-scripts/virtlogd_wrapper' - tripleo::profile::base::nova::virtlogd_wrapper::virtlogd_image: {get_param: ContainerNovaLibvirtImage} + tripleo::profile::base::nova::virtlogd_wrapper::virtlogd_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} tripleo::profile::base::nova::virtlogd_wrapper::debug: if: - {get_param: VirtlogdWrapperDebug} @@ -453,7 +461,7 @@ outputs: puppet_tags: libvirtd_config,virtlogd_config,nova_config,file,libvirt_tls_password step_config: | include tripleo::profile::base::nova::libvirt - config_image: {get_param: ContainerNovaLibvirtConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_libvirt.json: command: /nova_libvirt_launcher.sh @@ -536,7 +544,7 @@ outputs: - '4' - 'file' - 'include ::tripleo::profile::base::nova::virtlogd_wrapper' - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -551,7 +559,7 @@ outputs: - {get_param: NovaEnableVirtlogdContainerWrapper} - nova_virtlogd_wrapper: &virtlog_container_config start_order: 0 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -584,7 +592,7 @@ outputs: - nova_virtlogd: *virtlog_container_config - nova_libvirt: start_order: 1 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -648,7 +656,7 @@ outputs: - need_libvirt_secret - nova_libvirt_init_secret: detach: false - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} security_opt: - label=disable privileged: false diff --git a/deployment/deprecated/novajoin/novajoin-container-puppet.yaml b/deployment/deprecated/novajoin/novajoin-container-puppet.yaml index 414d6dc247..fc8ecc0298 100644 --- a/deployment/deprecated/novajoin/novajoin-container-puppet.yaml +++ b/deployment/deprecated/novajoin/novajoin-container-puppet.yaml @@ -7,12 +7,18 @@ parameters: ContainerNovajoinServerImage: description: image type: string + tags: + - role_specific ContainerNovajoinNotifierImage: description: image type: string + tags: + - role_specific ContainerNovajoinConfigImage: description: image type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -91,6 +97,22 @@ resources: ContainersCommon: type: ../../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovajoinServerImage: ContainerNovajoinServerImage + ContainerNovajoinNotifierImage: ContainerNovajoinNotifierImage + ContainerNovajoinConfigImage: ContainerNovajoinConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovajoinServerImage: {get_param: ContainerNovajoinServerImage} + ContainerNovajoinNotifierImage: {get_param: ContainerNovajoinNotifierImage} + ContainerNovajoinConfigImage: {get_param: ContainerNovajoinConfigImage} + outputs: role_data: description: Role data for the novajoin API role. @@ -181,7 +203,7 @@ outputs: config_volume: novajoin puppet_tags: novajoin_config step_config: include tripleo::profile::base::novajoin - config_image: {get_param: ContainerNovajoinConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovajoinConfigImage]} kolla_config: /var/lib/kolla/config_files/novajoin_server.json: command: novajoin-server --config-file /etc/novajoin/join.conf @@ -201,7 +223,7 @@ outputs: step_4: novajoin_server: start_order: 0 - image: {get_param: ContainerNovajoinServerImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovajoinServerImage]} net: host privileged: false restart: always @@ -219,7 +241,7 @@ outputs: KRB5_CONFIG: /etc/novajoin/krb5.conf novajoin_notifier: start_order: 1 - image: {get_param: ContainerNovajoinNotifierImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovajoinNotifierImage]} net: host privileged: false restart: always diff --git a/deployment/designate/designate-api-container-puppet.yaml b/deployment/designate/designate-api-container-puppet.yaml index 91f254cecb..2ef868dae3 100644 --- a/deployment/designate/designate-api-container-puppet.yaml +++ b/deployment/designate/designate-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateApiImage: description: image type: string + tags: + - role_specific ContainerDesignateApiConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific DesignateApiLoggingSource: type: json default: @@ -83,6 +87,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateApiImage: ContainerDesignateApiImage + ContainerDesignateApiConfigImage: ContainerDesignateApiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateApiImage: {get_param: ContainerDesignateApiImage} + ContainerDesignateApiConfigImage: {get_param: ContainerDesignateApiConfigImage} + outputs: role_data: description: Role data for the Designate API role. @@ -155,7 +173,7 @@ outputs: puppet_tags: designate_config,designate_api_paste_ini step_config: | include tripleo::profile::base::designate::api - config_image: {get_param: ContainerDesignateApiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateApiConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -180,7 +198,7 @@ outputs: step_4: designate_api: start_order: 15 - image: &designate_api_image {get_param: ContainerDesignateApiImage} + image: &designate_api_image {get_attr: [RoleParametersValue, value, ContainerDesignateApiImage]} net: host stop_grace_period: 300 privileged: false diff --git a/deployment/designate/designate-bind-container.yaml b/deployment/designate/designate-bind-container.yaml index 6d681d4912..6c5deb4283 100644 --- a/deployment/designate/designate-bind-container.yaml +++ b/deployment/designate/designate-bind-container.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateBackendBIND9Image: description: image type: string + tags: + - role_specific ContainerDesignateConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -59,6 +63,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateBackendBIND9Image: ContainerDesignateBackendBIND9Image + ContainerDesignateConfigImage: ContainerDesignateConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateBackendBIND9Image: {get_param: ContainerDesignateBackendBIND9Image} + ContainerDesignateConfigImage: {get_param: ContainerDesignateConfigImage} + outputs: role_data: description: Role data for the Designate Bind instance. @@ -84,7 +102,7 @@ outputs: config_volume: designate puppet_tags: designate_config step_config: {get_attr: [DesignateBase, role_data, step_config]} - config_image: {get_param: ContainerDesignateConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_backend_bind9.json: command: /usr/sbin/named -u named -c /etc/named.conf -f @@ -133,7 +151,7 @@ outputs: docker_config: step_4: designate_backend_bind9: - image: {get_param: ContainerDesignateBackendBIND9Image} + image: {get_attr: [RoleParametersValue, value, ContainerDesignateBackendBIND9Image]} net: host privileged: true stop_grace_period: 300 diff --git a/deployment/designate/designate-central-container-puppet.yaml b/deployment/designate/designate-central-container-puppet.yaml index 81d78d1807..114d5d1973 100644 --- a/deployment/designate/designate-central-container-puppet.yaml +++ b/deployment/designate/designate-central-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateCentralImage: description: image type: string + tags: + - role_specific ContainerDesignateConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -93,6 +97,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateCentralImage: ContainerDesignateCentralImage + ContainerDesignateConfigImage: ContainerDesignateConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateCentralImage: {get_param: ContainerDesignateCentralImage} + ContainerDesignateConfigImage: {get_param: ContainerDesignateConfigImage} + outputs: role_data: description: Role data for the Designate Central role. @@ -149,7 +167,7 @@ outputs: - - {get_attr: [DesignateBase, role_data, step_config]} - "include tripleo::profile::base::designate::central" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerDesignateConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_central.json: command: /usr/bin/designate-central --config-file=/etc/designate/designate.conf --log-file=/var/log/designate/central.log @@ -179,7 +197,7 @@ outputs: # db sync runs before permissions set by kolla_config step_2: designate_init_logs: - image: &designate_central_image {get_param: ContainerDesignateCentralImage} + image: &designate_central_image {get_attr: [RoleParametersValue, value, ContainerDesignateCentralImage]} net: none privileged: false user: root diff --git a/deployment/designate/designate-mdns-container-puppet.yaml b/deployment/designate/designate-mdns-container-puppet.yaml index c1d70a2b6a..329cda28d5 100644 --- a/deployment/designate/designate-mdns-container-puppet.yaml +++ b/deployment/designate/designate-mdns-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateMDNSImage: description: image type: string + tags: + - role_specific ContainerDesignateConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -71,6 +75,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateMDNSImage: ContainerDesignateMDNSImage + ContainerDesignateConfigImage: ContainerDesignateConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateMDNSImage: {get_param: ContainerDesignateMDNSImage} + ContainerDesignateConfigImage: {get_param: ContainerDesignateConfigImage} + outputs: role_data: description: Role data for the Designate MDNS role. @@ -132,7 +150,7 @@ outputs: - - {get_attr: [DesignateBase, role_data, step_config]} - "include tripleo::profile::base::designate::mdns" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerDesignateConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_mdns.json: command: /usr/bin/designate-mdns --config-file=/etc/designate/designate.conf --log-file=/var/log/designate/mdns.log @@ -148,7 +166,7 @@ outputs: docker_config: step_4: designate_mdns: - image: &designate_mdns_image {get_param: ContainerDesignateMDNSImage} + image: &designate_mdns_image {get_attr: [RoleParametersValue, value, ContainerDesignateMDNSImage]} net: host privileged: false restart: always diff --git a/deployment/designate/designate-producer-container-puppet.yaml b/deployment/designate/designate-producer-container-puppet.yaml index a3adc1723d..c644d0cc99 100644 --- a/deployment/designate/designate-producer-container-puppet.yaml +++ b/deployment/designate/designate-producer-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateProducerImage: description: image type: string + tags: + - role_specific ContainerDesignateConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific DesignateProducerLoggingSource: type: json default: @@ -67,6 +71,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateProducerImage: ContainerDesignateProducerImage + ContainerDesignateConfigImage: ContainerDesignateConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateProducerImage: {get_param: ContainerDesignateProducerImage} + ContainerDesignateConfigImage: {get_param: ContainerDesignateConfigImage} + outputs: role_data: description: Role data for the Designate Producer role. @@ -95,7 +113,7 @@ outputs: - "\n" - - {get_attr: [DesignateBase, role_data, step_config]} - "include tripleo::profile::base::designate::producer" - config_image: {get_param: ContainerDesignateConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_producer.json: command: /usr/bin/designate-producer --config-file=/etc/designate/designate.conf --log-file=/var/log/designate/producer.log @@ -111,7 +129,7 @@ outputs: docker_config: step_4: designate_producer: - image: &designate_producer_image {get_param: ContainerDesignateProducerImage} + image: &designate_producer_image {get_attr: [RoleParametersValue, value, ContainerDesignateProducerImage]} net: host privileged: false restart: always diff --git a/deployment/designate/designate-sink-container-puppet.yaml b/deployment/designate/designate-sink-container-puppet.yaml index 12bd61d064..8bbb23f706 100644 --- a/deployment/designate/designate-sink-container-puppet.yaml +++ b/deployment/designate/designate-sink-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateSinkImage: description: image type: string + tags: + - role_specific ContainerDesignateConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -58,6 +62,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateSinkImage: ContainerDesignateSinkImage + ContainerDesignateConfigImage: ContainerDesignateConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateSinkImage: {get_param: ContainerDesignateSinkImage} + ContainerDesignateConfigImage: {get_param: ContainerDesignateConfigImage} + outputs: role_data: description: Role data for the Designate Sink role. @@ -82,7 +100,7 @@ outputs: - "\n" - - {get_attr: [DesignateBase, role_data, step_config]} - "include tripleo::profile::base::designate::sink" - config_image: {get_param: ContainerDesignateConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_sink.json: command: /usr/bin/designate-sink --config-file=/etc/designate/designate.conf --log-file=/var/log/designate/sink.log @@ -98,7 +116,7 @@ outputs: docker_config: step_4: designate_sink: - image: &designate_sink_image {get_param: ContainerDesignateSinkImage} + image: &designate_sink_image {get_attr: [RoleParametersValue, value, ContainerDesignateSinkImage]} net: host privileged: false restart: always diff --git a/deployment/designate/designate-worker-container-puppet.yaml b/deployment/designate/designate-worker-container-puppet.yaml index 195904c231..75cb808d60 100644 --- a/deployment/designate/designate-worker-container-puppet.yaml +++ b/deployment/designate/designate-worker-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerDesignateWorkerImage: description: image type: string + tags: + - role_specific ContainerDesignateConfigImage: description: The container image to use for the designate config_volume type: string + tags: + - role_specific DesignateWorkerLoggingSource: type: json default: @@ -67,6 +71,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerDesignateWorkerImage: ContainerDesignateWorkerImage + ContainerDesignateConfigImage: ContainerDesignateConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerDesignateWorkerImage: {get_param: ContainerDesignateWorkerImage} + ContainerDesignateConfigImage: {get_param: ContainerDesignateConfigImage} + outputs: role_data: description: Role data for the Designate Worker role. @@ -106,7 +124,7 @@ outputs: - - {get_attr: [DesignateBase, role_data, step_config]} - "include tripleo::profile::base::designate::worker" - "include tripleo::profile::base::designate::backend" - config_image: {get_param: ContainerDesignateConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerDesignateConfigImage]} kolla_config: /var/lib/kolla/config_files/designate_worker.json: command: /usr/bin/designate-worker --config-file=/etc/designate/designate.conf --log-file=/var/log/designate/worker.log @@ -129,7 +147,7 @@ outputs: docker_config: step_4: designate_worker: - image: &designate_worker_image {get_param: ContainerDesignateWorkerImage} + image: &designate_worker_image {get_attr: [RoleParametersValue, value, ContainerDesignateWorkerImage]} net: host privileged: false stop_grace_period: 300 diff --git a/deployment/etcd/etcd-container-puppet.yaml b/deployment/etcd/etcd-container-puppet.yaml index c76c5b1c2f..ea9e6d1dd1 100644 --- a/deployment/etcd/etcd-container-puppet.yaml +++ b/deployment/etcd/etcd-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerEtcdImage: description: image type: string + tags: + - role_specific ContainerEtcdConfigImage: description: The container image to use for the etcd config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -91,6 +95,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerEtcdImage: ContainerEtcdImage + ContainerEtcdConfigImage: ContainerEtcdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerEtcdImage: {get_param: ContainerEtcdImage} + ContainerEtcdConfigImage: {get_param: ContainerEtcdConfigImage} + outputs: role_data: description: Role data for the etcd role. @@ -135,7 +153,7 @@ outputs: # BEGIN DOCKER SETTINGS puppet_config: config_volume: etcd - config_image: &etcd_config_image {get_param: ContainerEtcdConfigImage} + config_image: &etcd_config_image {get_attr: [RoleParametersValue, value, ContainerEtcdConfigImage]} step_config: list_join: - "\n" @@ -165,7 +183,7 @@ outputs: docker_config: step_2: etcd: - image: {get_param: ContainerEtcdImage} + image: {get_attr: [RoleParametersValue, value, ContainerEtcdImage]} net: host privileged: false restart: always diff --git a/deployment/frr/frr-container-ansible.yaml b/deployment/frr/frr-container-ansible.yaml index d8c6a9e5e0..3004ce392e 100644 --- a/deployment/frr/frr-container-ansible.yaml +++ b/deployment/frr/frr-container-ansible.yaml @@ -7,6 +7,8 @@ parameters: ContainerFrrImage: description: The container image for Frr type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -137,6 +139,19 @@ parameters: constraints: - allowed_values: ['internal', 'external'] +resources: + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerFrrImage: ContainerFrrImage + - values: {get_param: [RoleParameters]} + - values: + ContainerFrrImage: {get_param: ContainerFrrImage} + outputs: role_data: description: Role data for the FRR service @@ -189,7 +204,7 @@ outputs: step_0: frr: start_order: 0 - image: {get_param: ContainerFrrImage} + image: {get_attr: [RoleParametersValue, value, ContainerFrrImage]} net: host restart: always healthcheck: diff --git a/deployment/glance/glance-api-container-puppet.yaml b/deployment/glance/glance-api-container-puppet.yaml index 88b236517a..e3f76e51e5 100644 --- a/deployment/glance/glance-api-container-puppet.yaml +++ b/deployment/glance/glance-api-container-puppet.yaml @@ -317,9 +317,13 @@ parameters: ContainerGlanceApiImage: description: image type: string + tags: + - role_specific ContainerGlanceApiConfigImage: description: The container image to use for the glance_api config_volume type: string + tags: + - role_specific GlanceCronDbPurgeMinute: type: string description: > @@ -435,6 +439,20 @@ resources: RoleParameters: {get_param: RoleParameters} EnableInternalTLS: {get_param: EnableInternalTLS} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerGlanceApiImage: ContainerGlanceApiImage + ContainerGlanceApiConfigImage: ContainerGlanceApiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerGlanceApiImage: {get_param: ContainerGlanceApiImage} + ContainerGlanceApiConfigImage: {get_param: ContainerGlanceApiConfigImage} + outputs: role_data: description: Role data for the Glance API role. @@ -647,7 +665,7 @@ outputs: - {get_param: GlanceNetappNfsEnabled} - include tripleo::profile::base::glance::netapp - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerGlanceApiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerGlanceApiConfigImage]} kolla_config: /var/lib/kolla/config_files/glance_api.json: command: /usr/bin/glance-api --config-file /etc/glance/glance-api.conf --config-file /etc/glance/glance-image-import.conf @@ -720,7 +738,7 @@ outputs: get_attr: [GlanceLogging, docker_config, step_2] step_3: glance_api_db_sync: - image: &glance_api_image {get_param: ContainerGlanceApiImage} + image: &glance_api_image {get_attr: [RoleParametersValue, value, ContainerGlanceApiImage]} net: host privileged: false detach: false diff --git a/deployment/gnocchi/gnocchi-api-container-puppet.yaml b/deployment/gnocchi/gnocchi-api-container-puppet.yaml index b4c0debe22..e2a121cad5 100644 --- a/deployment/gnocchi/gnocchi-api-container-puppet.yaml +++ b/deployment/gnocchi/gnocchi-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerGnocchiApiImage: description: image type: string + tags: + - role_specific ContainerGnocchiConfigImage: description: The container image to use for the gnocchi config_volume type: string + tags: + - role_specific GnocchiApiLoggingSource: type: json default: @@ -159,6 +163,20 @@ resources: RoleParameters: {get_param: RoleParameters} EnableInternalTLS: {get_param: EnableInternalTLS} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerGnocchiApiImage: ContainerGnocchiApiImage + ContainerGnocchiConfigImage: ContainerGnocchiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerGnocchiApiImage: {get_param: ContainerGnocchiApiImage} + ContainerGnocchiConfigImage: {get_param: ContainerGnocchiConfigImage} + outputs: role_data: description: Role data for the gnocchi API role. @@ -255,7 +273,7 @@ outputs: - "\n" - - "include tripleo::profile::base::gnocchi::api" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerGnocchiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerGnocchiConfigImage]} kolla_config: /var/lib/kolla/config_files/gnocchi_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -308,7 +326,7 @@ outputs: # db sync runs before permissions set by kolla_config step_2: gnocchi_init_log: - image: &gnocchi_api_image {get_param: ContainerGnocchiApiImage} + image: &gnocchi_api_image {get_attr: [RoleParametersValue, value, ContainerGnocchiApiImage]} net: none user: root volumes: diff --git a/deployment/gnocchi/gnocchi-metricd-container-puppet.yaml b/deployment/gnocchi/gnocchi-metricd-container-puppet.yaml index a1d67b7b07..992e4145eb 100644 --- a/deployment/gnocchi/gnocchi-metricd-container-puppet.yaml +++ b/deployment/gnocchi/gnocchi-metricd-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerGnocchiMetricdImage: description: image type: string + tags: + - role_specific ContainerGnocchiConfigImage: description: The container image to use for the gnocchi config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -92,6 +96,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerGnocchiMetricdImage: ContainerGnocchiMetricdImage + ContainerGnocchiConfigImage: ContainerGnocchiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerGnocchiMetricdImage: {get_param: ContainerGnocchiMetricdImage} + ContainerGnocchiConfigImage: {get_param: ContainerGnocchiConfigImage} + outputs: role_data: description: Role data for the Gnocchi API role. @@ -113,7 +131,7 @@ outputs: - "\n" - - "include tripleo::profile::base::gnocchi::metricd" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerGnocchiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerGnocchiConfigImage]} kolla_config: /var/lib/kolla/config_files/gnocchi_metricd.json: command: /usr/bin/gnocchi-metricd @@ -142,7 +160,7 @@ outputs: step_5: gnocchi_metricd: start_order: 1 - image: {get_param: ContainerGnocchiMetricdImage} + image: {get_attr: [RoleParametersValue, value, ContainerGnocchiMetricdImage]} net: host privileged: false restart: always diff --git a/deployment/gnocchi/gnocchi-statsd-container-puppet.yaml b/deployment/gnocchi/gnocchi-statsd-container-puppet.yaml index c40b260a65..c5a6b40757 100644 --- a/deployment/gnocchi/gnocchi-statsd-container-puppet.yaml +++ b/deployment/gnocchi/gnocchi-statsd-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerGnocchiStatsdImage: description: image type: string + tags: + - role_specific ContainerGnocchiConfigImage: description: The container image to use for the gnocchi config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -84,6 +88,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerGnocchiStatsdImage: ContainerGnocchiStatsdImage + ContainerGnocchiConfigImage: ContainerGnocchiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerGnocchiStatsdImage: {get_param: ContainerGnocchiStatsdImage} + ContainerGnocchiConfigImage: {get_param: ContainerGnocchiConfigImage} + outputs: role_data: description: Role data for the Gnocchi API role. @@ -105,7 +123,7 @@ outputs: - "\n" - - "include tripleo::profile::base::gnocchi::statsd" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerGnocchiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerGnocchiConfigImage]} kolla_config: /var/lib/kolla/config_files/gnocchi_statsd.json: command: /usr/bin/gnocchi-statsd @@ -134,7 +152,7 @@ outputs: step_5: gnocchi_statsd: start_order: 1 - image: {get_param: ContainerGnocchiStatsdImage} + image: {get_attr: [RoleParametersValue, value, ContainerGnocchiStatsdImage]} net: host privileged: false restart: always diff --git a/deployment/haproxy/haproxy-container-puppet.yaml b/deployment/haproxy/haproxy-container-puppet.yaml index a19d5855b1..96e3ae031b 100644 --- a/deployment/haproxy/haproxy-container-puppet.yaml +++ b/deployment/haproxy/haproxy-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerHAProxyImage: description: image type: string + tags: + - role_specific ContainerHAProxyConfigImage: description: The container image to use for the haproxy config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -153,6 +157,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHAProxyImage: ContainerHAProxyImage + ContainerHAProxyConfigImage: ContainerHAProxyConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHAProxyImage: {get_param: ContainerHAProxyImage} + ContainerHAProxyConfigImage: {get_param: ContainerHAProxyConfigImage} + outputs: role_data: description: Role data for the HAproxy role. @@ -205,7 +223,7 @@ outputs: puppet_tags: haproxy_config step_config: | class {'tripleo::profile::base::haproxy': manage_firewall => false} - config_image: {get_param: ContainerHAProxyConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerHAProxyConfigImage]} volumes: list_concat: - if: @@ -260,7 +278,7 @@ outputs: - get_attr: [HAProxyLogging, docker_config, step_1] - haproxy: start_order: 1 - image: {get_param: ContainerHAProxyImage} + image: {get_attr: [RoleParametersValue, value, ContainerHAProxyImage]} net: host restart: always security_opt: diff --git a/deployment/haproxy/haproxy-pacemaker-puppet.yaml b/deployment/haproxy/haproxy-pacemaker-puppet.yaml index 656b5e95e5..fffa3bf65d 100644 --- a/deployment/haproxy/haproxy-pacemaker-puppet.yaml +++ b/deployment/haproxy/haproxy-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerHAProxyImage: description: image type: string + tags: + - role_specific ContainerHAProxyConfigImage: description: The container image to use for the haproxy config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -154,6 +158,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHAProxyImage: ContainerHAProxyImage + ContainerHAProxyConfigImage: ContainerHAProxyConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHAProxyImage: {get_param: ContainerHAProxyImage} + ContainerHAProxyConfigImage: {get_param: ContainerHAProxyConfigImage} + outputs: role_data: description: Role data for the HAproxy role. @@ -207,9 +225,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerHAProxyImage} + data: {get_attr: [RoleParametersValue, value, ContainerHAProxyImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerHAProxyImage} + - {get_attr: [RoleParametersValue, value, ContainerHAProxyImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") service_config_settings: rsyslog: @@ -226,7 +244,7 @@ outputs: - "class tripleo::firewall(){}; define tripleo::firewall::rule( $port = undef, $dport = undef, $sport = undef, $proto = undef, $action = undef, $state = undef, $source = undef, $iniface = undef, $chain = undef, $destination = undef, $extras = undef){}" - "['pcmk_bundle', 'pcmk_resource', 'pcmk_property', 'pcmk_constraint', 'pcmk_resource_default'].each |String $val| { noop_resource($val) }" - 'include tripleo::profile::pacemaker::haproxy_bundle' - config_image: {get_param: ContainerHAProxyConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerHAProxyConfigImage]} volumes: &deployed_cert_mount yaql: expression: $.data.select($+":"+$+":ro") @@ -326,7 +344,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerHAProxyImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerHAProxyImage]} container_image_latest: *haproxy_image_pcmklatest - name: HAproxy HA Wrappers Step when: step|int == 2 @@ -399,7 +417,7 @@ outputs: block: &haproxy_fetch_retag_container_tasks - name: Get container haproxy image set_fact: - haproxy_image: {get_param: ContainerHAProxyImage} + haproxy_image: {get_attr: [RoleParametersValue, value, ContainerHAProxyImage]} haproxy_image_latest: *haproxy_image_pcmklatest - name: Pull latest haproxy images command: "{{container_cli}} pull {{haproxy_image}}" diff --git a/deployment/heat/heat-api-cfn-container-puppet.yaml b/deployment/heat/heat-api-cfn-container-puppet.yaml index b7d1c60fea..46d4338266 100644 --- a/deployment/heat/heat-api-cfn-container-puppet.yaml +++ b/deployment/heat/heat-api-cfn-container-puppet.yaml @@ -7,10 +7,14 @@ parameters: ContainerHeatApiCfnImage: description: image type: string + tags: + - role_specific # puppet needs the heat-wsgi-api-cfn binary from centos-binary-heat-api-cfn ContainerHeatApiCfnConfigImage: description: The container image to use for the heat_api_cfn config_volume type: string + tags: + - role_specific HeatApiCfnLoggingSource: type: json default: @@ -89,6 +93,20 @@ resources: HeatApiCfnLogging: type: OS::TripleO::Services::Logging::HeatApiCfn + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatApiCfnImage: ContainerHeatApiCfnImage + ContainerHeatApiCfnConfigImage: ContainerHeatApiCfnConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatApiCfnImage: {get_param: ContainerHeatApiCfnImage} + ContainerHeatApiCfnConfigImage: {get_param: ContainerHeatApiCfnConfigImage} + outputs: role_data: description: Role data for the Heat API CFN role. @@ -157,7 +175,7 @@ outputs: puppet_tags: heat_config,file,concat,file_line step_config: | include tripleo::profile::base::heat::api_cfn - config_image: {get_param: ContainerHeatApiCfnConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerHeatApiCfnConfigImage]} kolla_config: /var/lib/kolla/config_files/heat_api_cfn.json: command: /usr/sbin/httpd -DFOREGROUND @@ -183,7 +201,7 @@ outputs: get_attr: [HeatApiCfnLogging, docker_config, step_2] step_4: heat_api_cfn: - image: {get_param: ContainerHeatApiCfnImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiCfnImage]} net: host privileged: false restart: always diff --git a/deployment/heat/heat-api-container-puppet.yaml b/deployment/heat/heat-api-container-puppet.yaml index 5e348be515..74cb5704d8 100644 --- a/deployment/heat/heat-api-container-puppet.yaml +++ b/deployment/heat/heat-api-container-puppet.yaml @@ -7,10 +7,14 @@ parameters: ContainerHeatApiImage: description: image type: string + tags: + - role_specific # puppet needs the heat-wsgi-api binary from centos-binary-heat-api ContainerHeatApiConfigImage: description: The container image to use for the heat_api config_volume type: string + tags: + - role_specific HeatApiLoggingSource: type: json default: @@ -107,6 +111,20 @@ resources: HeatApiLogging: type: OS::TripleO::Services::Logging::HeatApi + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatApiImage: ContainerHeatApiImage + ContainerHeatApiConfigImage: ContainerHeatApiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatApiImage: {get_param: ContainerHeatApiImage} + ContainerHeatApiConfigImage: {get_param: ContainerHeatApiConfigImage} + outputs: role_data: description: Role data for the Heat API role. @@ -187,7 +205,7 @@ outputs: puppet_tags: heat_config,file,concat,file_line,heat_api_paste_ini step_config: | include tripleo::profile::base::heat::api - config_image: {get_param: ContainerHeatApiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerHeatApiConfigImage]} kolla_config: /var/lib/kolla/config_files/heat_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -224,7 +242,7 @@ outputs: get_attr: [HeatApiLogging, docker_config, step_2] step_4: heat_api: - image: {get_param: ContainerHeatApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiImage]} net: host privileged: false restart: always @@ -249,7 +267,7 @@ outputs: - {get_param: HeatApiOptEnvVars} - KOLLA_CONFIG_STRATEGY: COPY_ALWAYS heat_api_cron: - image: {get_param: ContainerHeatApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiImage]} net: host user: root privileged: false diff --git a/deployment/heat/heat-engine-container-puppet.yaml b/deployment/heat/heat-engine-container-puppet.yaml index 695eb887d1..dc42b9b160 100644 --- a/deployment/heat/heat-engine-container-puppet.yaml +++ b/deployment/heat/heat-engine-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerHeatEngineImage: description: image type: string + tags: + - role_specific ContainerHeatConfigImage: description: The container image to use for the heat config_volume type: string + tags: + - role_specific HeatEngineLoggingSource: type: json default: @@ -138,6 +142,20 @@ resources: HeatEngineLogging: type: OS::TripleO::Services::Logging::HeatEngine + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatEngineImage: ContainerHeatEngineImage + ContainerHeatConfigImage: ContainerHeatConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatEngineImage: {get_param: ContainerHeatEngineImage} + ContainerHeatConfigImage: {get_param: ContainerHeatConfigImage} + outputs: role_data: description: Role data for the Heat Engine role. @@ -214,7 +232,7 @@ outputs: - "\n" - - include tripleo::profile::base::heat::engine - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerHeatConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerHeatConfigImage]} kolla_config: /var/lib/kolla/config_files/heat_engine.json: command: @@ -241,7 +259,7 @@ outputs: get_attr: [HeatEngineLogging, docker_config, step_2] step_3: heat_engine_db_sync: - image: &heat_engine_image {get_param: ContainerHeatEngineImage} + image: &heat_engine_image {get_attr: [RoleParametersValue, value, ContainerHeatEngineImage]} net: host privileged: false detach: false diff --git a/deployment/heat/heat-ephemeral-container-ansible.yaml b/deployment/heat/heat-ephemeral-container-ansible.yaml index 3675598445..a2f060ebb1 100644 --- a/deployment/heat/heat-ephemeral-container-ansible.yaml +++ b/deployment/heat/heat-ephemeral-container-ansible.yaml @@ -7,18 +7,28 @@ parameters: ContainerHeatAllImage: description: The container image to use for heat-all type: string + tags: + - role_specific ContainerHeatEngineImage: description: image type: string + tags: + - role_specific ContainerHeatConfigImage: description: The container image to use for the heat config_volume type: string + tags: + - role_specific ContainerHeatApiImage: description: image type: string + tags: + - role_specific ContainerHeatApiConfigImage: description: The container image to use for the heat_api config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -50,6 +60,28 @@ parameters: For example: {'overcloud': '/home/stack/roles_data.yaml'} type: json +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatAllImage: ContainerHeatAllImage + ContainerHeatEngineImage: ContainerHeatEngineImage + ContainerHeatConfigImage: ContainerHeatConfigImage + ContainerHeatApiImage: ContainerHeatApiImage + ContainerHeatApiConfigImage: ContainerHeatApiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatAllImage: {get_param: ContainerHeatAllImage} + ContainerHeatEngineImage: {get_param: ContainerHeatEngineImage} + ContainerHeatConfigImage: {get_param: ContainerHeatConfigImage} + ContainerHeatApiImage: {get_param: ContainerHeatApiImage} + ContainerHeatApiConfigImage: {get_param: ContainerHeatApiConfigImage} + outputs: role_data: description: Role data for the Heat Ephemeral @@ -64,19 +96,19 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerHeatAllImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerHeatAllImage]} container_image_latest: "localhost/tripleo/openstack-heat-all:ephemeral" - name: Tag Heat Engine image import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerHeatEngineImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerHeatEngineImage]} container_image_latest: "localhost/tripleo/openstack-heat-engine:ephemeral" - name: Tag Heat Api image import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerHeatApiImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerHeatApiImage]} container_image_latest: "localhost/tripleo/openstack-heat-api:ephemeral" external_deploy_tasks: - name: Manage clouds.yaml file for ephemeral Heat diff --git a/deployment/horizon/horizon-container-puppet.yaml b/deployment/horizon/horizon-container-puppet.yaml index 923cfbfe42..84d4e16a4c 100644 --- a/deployment/horizon/horizon-container-puppet.yaml +++ b/deployment/horizon/horizon-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerHorizonImage: description: image type: string + tags: + - role_specific ContainerHorizonConfigImage: description: The container image to use for the horizon config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -170,6 +174,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHorizonImage: ContainerHorizonImage + ContainerHorizonConfigImage: ContainerHorizonConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHorizonImage: {get_param: ContainerHorizonImage} + ContainerHorizonConfigImage: {get_param: ContainerHorizonConfigImage} + outputs: role_data: description: Role data for the Horizon API role. @@ -258,7 +276,7 @@ outputs: puppet_tags: horizon_config step_config: | include tripleo::profile::base::horizon - config_image: {get_param: ContainerHorizonConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerHorizonConfigImage]} kolla_config: /var/lib/kolla/config_files/horizon.json: command: /usr/sbin/httpd -DFOREGROUND @@ -296,7 +314,7 @@ outputs: docker_config: step_2: horizon_fix_perms: - image: &horizon_image {get_param: ContainerHorizonImage} + image: &horizon_image {get_attr: [RoleParametersValue, value, ContainerHorizonImage]} net: none user: root # NOTE Set ownership for /var/log/horizon/horizon.log file here, diff --git a/deployment/ironic/ironic-api-container-puppet.yaml b/deployment/ironic/ironic-api-container-puppet.yaml index ae0039c3b9..73da94c593 100644 --- a/deployment/ironic/ironic-api-container-puppet.yaml +++ b/deployment/ironic/ironic-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerIronicApiImage: description: image type: string + tags: + - role_specific ContainerIronicApiConfigImage: description: The container image to use for the ironic_api config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -125,6 +129,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerIronicApiImage: ContainerIronicApiImage + ContainerIronicApiConfigImage: ContainerIronicApiConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerIronicApiImage: {get_param: ContainerIronicApiImage} + ContainerIronicApiConfigImage: {get_param: ContainerIronicApiConfigImage} + outputs: role_data: description: Role data for the Ironic API role. @@ -239,7 +257,7 @@ outputs: - "\n" - - include tripleo::profile::base::ironic::api - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerIronicApiConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerIronicApiConfigImage]} kolla_config: /var/lib/kolla/config_files/ironic_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -268,7 +286,7 @@ outputs: # db sync runs before permissions set by kolla_config step_2: ironic_init_logs: - image: &ironic_api_image {get_param: ContainerIronicApiImage} + image: &ironic_api_image {get_attr: [RoleParametersValue, value, ContainerIronicApiImage]} net: none privileged: false user: root diff --git a/deployment/ironic/ironic-conductor-container-puppet.yaml b/deployment/ironic/ironic-conductor-container-puppet.yaml index 25869c232a..f21eb8e2fd 100644 --- a/deployment/ironic/ironic-conductor-container-puppet.yaml +++ b/deployment/ironic/ironic-conductor-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerIronicConductorImage: description: image type: string + tags: + - role_specific ContainerIronicConfigImage: description: The container image to use for the ironic config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -353,12 +357,16 @@ resources: - ironic::conductor::cleaning_network: IronicCleaningNetwork ironic::conductor::provisioning_network: IronicProvisioningNetwork ironic::conductor::rescuing_network: IronicRescuingNetwork + ContainerIronicConductorImage: ContainerIronicConductorImage + ContainerIronicConfigImage: ContainerIronicConfigImage - values: {get_param: [RoleParameters]} - values: IronicConductorGroup: {get_param: IronicConductorGroup} IronicProvisioningNetwork: {get_param: IronicProvisioningNetwork} IronicCleaningNetwork: {get_param: IronicCleaningNetwork} IronicRescuingNetwork: {get_param: IronicRescuingNetwork} + ContainerIronicConductorImage: {get_param: ContainerIronicConductorImage} + ContainerIronicConfigImage: {get_param: ContainerIronicConfigImage} ContainersCommon: type: ../containers-common.yaml @@ -576,7 +584,7 @@ outputs: - "\n" - - include tripleo::profile::base::ironic::conductor - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerIronicConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerIronicConfigImage]} volumes: - /var/lib/ironic:/var/lib/ironic:z kolla_config: @@ -635,7 +643,7 @@ outputs: if: - {get_param: IronicConfigureSwiftTempUrlKey} - start_order: 70 - image: &ironic_conductor_image {get_param: ContainerIronicConductorImage} + image: &ironic_conductor_image {get_attr: [RoleParametersValue, value, ContainerIronicConductorImage]} net: host detach: false volumes: diff --git a/deployment/ironic/ironic-inspector-container-puppet.yaml b/deployment/ironic/ironic-inspector-container-puppet.yaml index a6789a7716..b43f3e227b 100644 --- a/deployment/ironic/ironic-inspector-container-puppet.yaml +++ b/deployment/ironic/ironic-inspector-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerIronicInspectorImage: description: image type: string + tags: + - role_specific ContainerIronicInspectorConfigImage: description: The container image to use for the ironic_inspector config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -225,6 +229,20 @@ resources: MySQLClient: type: ../database/mysql-client.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerIronicInspectorImage: ContainerIronicInspectorImage + ContainerIronicInspectorConfigImage: ContainerIronicInspectorConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerIronicInspectorImage: {get_param: ContainerIronicInspectorImage} + ContainerIronicInspectorConfigImage: {get_param: ContainerIronicInspectorConfigImage} + outputs: role_data: description: Role data for the Ironic Inspector role. @@ -398,7 +416,7 @@ outputs: - "\n" - - include tripleo::profile::base::ironic_inspector - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerIronicInspectorConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerIronicInspectorConfigImage]} volumes: - /var/lib/ironic:/var/lib/ironic:z - /var/lib/ironic-inspector/dhcp-hostsdir:/var/lib/ironic-inspector/dhcp-hostsdir:z @@ -443,7 +461,7 @@ outputs: ironic_inspector_init_log: start_order: 0 image: &ironic_inspector_image - get_param: ContainerIronicInspectorImage + get_attr: [RoleParametersValue, value, ContainerIronicInspectorImage] net: none user: root volumes: diff --git a/deployment/ironic/ironic-neutron-agent-container-puppet.yaml b/deployment/ironic/ironic-neutron-agent-container-puppet.yaml index 7c25dba77f..4e27982c9b 100644 --- a/deployment/ironic/ironic-neutron-agent-container-puppet.yaml +++ b/deployment/ironic/ironic-neutron-agent-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerIronicNeutronAgentImage: description: The container image to use for the ironic-neutron-agent type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -79,6 +83,20 @@ resources: properties: NeutronServiceName: ironic-neutron-agent + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerIronicNeutronAgentImage: ContainerIronicNeutronAgentImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerIronicNeutronAgentImage: {get_param: ContainerIronicNeutronAgentImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for ironic-neutron-agent service @@ -109,7 +127,7 @@ outputs: puppet_tags: neutron_config,ironic_neutron_agent_config step_config: include tripleo::profile::base::neutron::agents::networking_baremetal - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/ironic_neutron_agent.json: command: /usr/bin/ironic-neutron-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ironic_neutron_agent.ini --config-dir /etc/neutron/conf.d/common @@ -126,7 +144,7 @@ outputs: step_4: ironic_neutron_agent: start_order: 80 - image: {get_param: ContainerIronicNeutronAgentImage} + image: {get_attr: [RoleParametersValue, value, ContainerIronicNeutronAgentImage]} net: host pid: host privileged: true diff --git a/deployment/ironic/ironic-pxe-container-puppet.yaml b/deployment/ironic/ironic-pxe-container-puppet.yaml index 424cabbb33..f0dfc2ddb0 100644 --- a/deployment/ironic/ironic-pxe-container-puppet.yaml +++ b/deployment/ironic/ironic-pxe-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerIronicPxeImage: description: image type: string + tags: + - role_specific ContainerIronicConfigImage: description: The container image to use for the ironic config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -38,6 +42,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerIronicPxeImage: ContainerIronicPxeImage + ContainerIronicConfigImage: ContainerIronicConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerIronicPxeImage: {get_param: ContainerIronicPxeImage} + ContainerIronicConfigImage: {get_param: ContainerIronicConfigImage} + outputs: role_data: description: Role data for the Ironic PXE role. @@ -50,7 +68,7 @@ outputs: config_volume: ironic puppet_tags: ironic_config step_config: '' - config_image: {get_param: ContainerIronicConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerIronicConfigImage]} kolla_config: /var/lib/kolla/config_files/ironic_pxe_http.json: command: /usr/sbin/httpd -DFOREGROUND @@ -121,7 +139,7 @@ outputs: step_4: ironic_pxe_tftp: start_order: 90 - image: &ironic_pxe_image {get_param: ContainerIronicPxeImage} + image: &ironic_pxe_image {get_attr: [RoleParametersValue, value, ContainerIronicPxeImage]} command: ['/bin/bash', '-c', 'BIND_HOST=$(hiera ironic::pxe::tftp_bind_host -c /etc/puppet/hiera.yaml); /usr/sbin/dnsmasq --keep-in-foreground --log-facility=/var/log/ironic/dnsmasq.log --user=root --conf-file=/dev/null --listen-address=$BIND_HOST --port=0 --enable-tftp --tftp-root=/var/lib/ironic/tftpboot'] net: host cap_add: diff --git a/deployment/iscsid/iscsid-container-puppet.yaml b/deployment/iscsid/iscsid-container-puppet.yaml index 8f36beae5e..7c88b9f67e 100644 --- a/deployment/iscsid/iscsid-container-puppet.yaml +++ b/deployment/iscsid/iscsid-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerIscsidImage: description: image type: string + tags: + - role_specific ContainerIscsidConfigImage: description: The container image to use for the iscsid config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -81,11 +85,15 @@ resources: - tripleo_tripleo_lvmfilter_enabled: LVMFilterEnabled tripleo_tripleo_lvmfilter_devices_allowlist: LVMFilterAllowlist tripleo_tripleo_lvmfilter_devices_denylist: LVMFilterDenylist + ContainerIscsidImage: ContainerIscsidImage + ContainerIscsidConfigImage: ContainerIscsidConfigImage - values: {get_param: [RoleParameters]} - values: LVMFilterEnabled: {get_param: LVMFilterEnabled} LVMFilterAllowlist: {get_param: LVMFilterAllowlist} LVMFilterDenylist: {get_param: LVMFilterDenylist} + ContainerIscsidImage: {get_param: ContainerIscsidImage} + ContainerIscsidConfigImage: {get_param: ContainerIscsidConfigImage} outputs: role_data: @@ -108,7 +116,7 @@ outputs: puppet_tags: iscsid_config step_config: | include tripleo::profile::base::iscsid - config_image: {get_param: ContainerIscsidConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerIscsidConfigImage]} volumes: # NOTE(bogdando) Containerized or running on baremetal services # on a node must use the same iSCSI Qualified Name (IQN). @@ -132,7 +140,7 @@ outputs: step_3: iscsid: start_order: 2 - image: {get_param: ContainerIscsidImage} + image: {get_attr: [RoleParametersValue, value, ContainerIscsidImage]} net: host privileged: true restart: always diff --git a/deployment/keystone/keystone-container-puppet.yaml b/deployment/keystone/keystone-container-puppet.yaml index de02cd4e69..facea4a5b0 100644 --- a/deployment/keystone/keystone-container-puppet.yaml +++ b/deployment/keystone/keystone-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerKeystoneImage: description: image type: string + tags: + - role_specific ContainerKeystoneConfigImage: description: The container image to use for the keystone config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -433,6 +437,20 @@ resources: KeystoneLogging: type: OS::TripleO::Services::Logging::Keystone + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerKeystoneImage: ContainerKeystoneImage + ContainerKeystoneConfigImage: ContainerKeystoneConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerKeystoneImage: {get_param: ContainerKeystoneImage} + ContainerKeystoneConfigImage: {get_param: ContainerKeystoneConfigImage} + conditions: public_tls_enabled: and: @@ -693,7 +711,7 @@ outputs: - | include tripleo::profile::base::keystone - {get_attr: [MySQLClient, role_data, step_config]} - config_image: &keystone_config_image {get_param: ContainerKeystoneConfigImage} + config_image: &keystone_config_image {get_attr: [RoleParametersValue, value, ContainerKeystoneConfigImage]} kolla_config: /var/lib/kolla/config_files/keystone.json: command: /usr/sbin/httpd @@ -729,7 +747,7 @@ outputs: get_attr: [KeystoneLogging, docker_config, step_2] step_3: keystone_db_sync: - image: &keystone_image {get_param: ContainerKeystoneImage} + image: &keystone_image {get_attr: [RoleParametersValue, value, ContainerKeystoneImage]} net: host user: root privileged: false diff --git a/deployment/logging/files/barbican-api.yaml b/deployment/logging/files/barbican-api.yaml index 94b672e79c..5eb5df45e8 100644 --- a/deployment/logging/files/barbican-api.yaml +++ b/deployment/logging/files/barbican-api.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Barbican API service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerBarbicanApiImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerBarbicanApiImage: ContainerBarbicanApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerBarbicanApiImage: {get_param: ContainerBarbicanApiImage} outputs: cmd_extra_args: @@ -25,7 +45,7 @@ outputs: value: step_2: barbican_init_log: - image: {get_param: ContainerBarbicanApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerBarbicanApiImage]} net: none user: root volumes: *barbican_api_volumes diff --git a/deployment/logging/files/glance-api.yaml b/deployment/logging/files/glance-api.yaml index 2f0ab8a733..d74570f06e 100644 --- a/deployment/logging/files/glance-api.yaml +++ b/deployment/logging/files/glance-api.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Glance API service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerGlanceApiImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerGlanceApiImage: ContainerGlanceApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerGlanceApiImage: {get_param: ContainerGlanceApiImage} outputs: config_settings: @@ -23,7 +43,7 @@ outputs: # Kolla_bootstrap/db_sync runs before permissions set by kolla_config step_2: glance_init_logs: - image: {get_param: ContainerGlanceApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerGlanceApiImage]} net: none privileged: false user: root diff --git a/deployment/logging/files/heat-engine.yaml b/deployment/logging/files/heat-engine.yaml index 4a98bd8e62..1b1c4f8b70 100644 --- a/deployment/logging/files/heat-engine.yaml +++ b/deployment/logging/files/heat-engine.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Glance API service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerHeatEngineImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatEngineImage: ContainerHeatEngineImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatEngineImage: {get_param: ContainerHeatEngineImage} outputs: cmd_extra_args: @@ -21,7 +41,7 @@ outputs: # Kolla_bootstrap/db_sync runs before permissions set by kolla_config step_2: heat_init_log: - image: {get_param: ContainerHeatEngineImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatEngineImage]} net: none user: root volumes: diff --git a/deployment/logging/files/keystone.yaml b/deployment/logging/files/keystone.yaml index c623a27238..d7c522e2f9 100644 --- a/deployment/logging/files/keystone.yaml +++ b/deployment/logging/files/keystone.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Keystone service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerKeystoneImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerKeystoneImage: ContainerKeystoneImage + - values: {get_param: [RoleParameters]} + - values: + ContainerKeystoneImage: {get_param: ContainerKeystoneImage} outputs: config_settings: @@ -23,7 +43,7 @@ outputs: step_2: keystone_init_log: start_order: 1 - image: {get_param: ContainerKeystoneImage} + image: {get_attr: [RoleParametersValue, value, ContainerKeystoneImage]} net: none user: root command: ['/bin/bash', '-c', 'chown -R keystone:keystone /var/log/keystone'] diff --git a/deployment/logging/files/neutron-api.yaml b/deployment/logging/files/neutron-api.yaml index 76570c3a85..09b2e4660b 100644 --- a/deployment/logging/files/neutron-api.yaml +++ b/deployment/logging/files/neutron-api.yaml @@ -4,13 +4,33 @@ description: > OpenStack containerized Neutron API service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerNeutronApiImage: description: image type: string + tags: + - role_specific NeutronServiceName: description: service name type: string +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronApiImage: ContainerNeutronApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronApiImage: {get_param: ContainerNeutronApiImage} + outputs: cmd_extra_args: description: Extra command line arguments for running the service in the container. @@ -33,7 +53,7 @@ outputs: # db sync runs before permissions set by kolla_config step_2: neutron_init_logs: - image: {get_param: ContainerNeutronApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronApiImage]} net: none privileged: false user: root diff --git a/deployment/logging/files/nova-api.yaml b/deployment/logging/files/nova-api.yaml index d417fada83..453df116c1 100644 --- a/deployment/logging/files/nova-api.yaml +++ b/deployment/logging/files/nova-api.yaml @@ -4,9 +4,15 @@ description: > Template for nova-api's logging to files parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerNovaApiImage: description: image type: string + tags: + - role_specific DeployIdentifier: default: '' type: string @@ -14,6 +20,20 @@ parameters: Setting this to a unique value will re-run any deployment tasks which perform configuration on a Heat stack-update. +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaApiImage: ContainerNovaApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaApiImage: {get_param: ContainerNovaApiImage} + outputs: config_settings: description: Extra hieradata needed to log to files in the host. @@ -29,7 +49,7 @@ outputs: step_2: # db sync runs before permissions set by kolla_config nova_api_init_logs: - image: {get_param: ContainerNovaApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaApiImage]} net: none privileged: false user: root diff --git a/deployment/logging/files/nova-common.yaml b/deployment/logging/files/nova-common.yaml index 321376467c..85281b571e 100644 --- a/deployment/logging/files/nova-common.yaml +++ b/deployment/logging/files/nova-common.yaml @@ -4,9 +4,15 @@ description: > Template for nova's logging to files parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerNovaImage: description: image type: string + tags: + - role_specific NovaServiceName: description: service name type: string @@ -29,6 +35,17 @@ resources: params: SERVICE: {get_param: NovaServiceName} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaImage: ContainerNovaImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaImage: {get_param: ContainerNovaImage} outputs: cmd_extra_args: description: Extra command line arguments for running the service in the container. @@ -46,7 +63,7 @@ outputs: step_2: map_replace: - CONTAINERNAME: - image: {get_param: ContainerNovaImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaImage]} net: none privileged: false user: root diff --git a/deployment/logging/files/nova-metadata.yaml b/deployment/logging/files/nova-metadata.yaml index 71095359e8..f08f79c222 100644 --- a/deployment/logging/files/nova-metadata.yaml +++ b/deployment/logging/files/nova-metadata.yaml @@ -4,9 +4,29 @@ description: > Template for nova-metadata's logging to files parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerNovaMetadataImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaMetadataImage: ContainerNovaMetadataImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaMetadataImage: {get_param: ContainerNovaMetadataImage} outputs: config_settings: @@ -22,7 +42,7 @@ outputs: value: step_2: nova_metadata_init_logs: - image: {get_param: ContainerNovaMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaMetadataImage]} net: none privileged: false user: root diff --git a/deployment/logging/files/placement-api.yaml b/deployment/logging/files/placement-api.yaml index 780296c886..f3f6e737e9 100644 --- a/deployment/logging/files/placement-api.yaml +++ b/deployment/logging/files/placement-api.yaml @@ -4,9 +4,29 @@ description: > Template for placement's logging to files parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerPlacementImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerPlacementImage: ContainerPlacementImage + - values: {get_param: [RoleParameters]} + - values: + ContainerPlacementImage: {get_param: ContainerPlacementImage} outputs: config_settings: @@ -23,7 +43,7 @@ outputs: step_2: placement_init_log: start_order: 1 - image: {get_param: ContainerPlacementImage} + image: {get_attr: [RoleParametersValue, value, ContainerPlacementImage]} net: none user: root command: ['/bin/bash', '-c', 'chown -R placement:placement /var/log/placement'] diff --git a/deployment/logging/rsyslog-container-puppet.yaml b/deployment/logging/rsyslog-container-puppet.yaml index b79037a3c5..a8c254e162 100644 --- a/deployment/logging/rsyslog-container-puppet.yaml +++ b/deployment/logging/rsyslog-container-puppet.yaml @@ -8,9 +8,13 @@ parameters: ContainerRsyslogImage: description: The container image to use for container type: string + tags: + - role_specific ContainerRsyslogConfigImage: description: The container image to use for the rsyslog config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -80,6 +84,19 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRsyslogImage: ContainerRsyslogImage + ContainerRsyslogConfigImage: ContainerRsyslogConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRsyslogImage: {get_param: ContainerRsyslogImage} + ContainerRsyslogConfigImage: {get_param: ContainerRsyslogConfigImage} conditions: use_tls: not: @@ -251,7 +268,7 @@ outputs: config_volume: rsyslog puppet_tags: 'rsyslog::generate_concat,concat::fragment' step_config: include tripleo::profile::base::logging::rsyslog - config_image: {get_param: ContainerRsyslogConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerRsyslogConfigImage]} kolla_config: /var/lib/kolla/config_files/rsyslog.json: command: /usr/sbin/rsyslogd -n @@ -270,7 +287,7 @@ outputs: docker_config: step_3: rsyslog: - image: {get_param: ContainerRsyslogImage} + image: {get_attr: [RoleParametersValue, value, ContainerRsyslogImage]} net: host privileged: true user: root diff --git a/deployment/logging/rsyslog-sidecar-container-puppet.yaml b/deployment/logging/rsyslog-sidecar-container-puppet.yaml index ebe3714c42..d18ea4607f 100644 --- a/deployment/logging/rsyslog-sidecar-container-puppet.yaml +++ b/deployment/logging/rsyslog-sidecar-container-puppet.yaml @@ -7,6 +7,8 @@ parameters: ContainerRsyslogSidecarConfigImage: description: The container image to use for the rsyslog-sidecar config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -35,6 +37,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRsyslogSidecarImage: ContainerRsyslogSidecarImage + ContainerRsyslogSidecarConfigImage: ContainerRsyslogSidecarConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRsyslogSidecarImage: {get_param: ContainerRsyslogSidecarImage} + ContainerRsyslogSidecarConfigImage: {get_param: ContainerRsyslogSidecarConfigImage} + outputs: role_data: description: Role data for the rsyslog-sidecar role. @@ -47,7 +63,7 @@ outputs: puppet_tags: file step_config: | include tripleo::profile::base::rsyslog::sidecar - config_image: {get_param: ContainerRsyslogSidecarConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerRsyslogSidecarConfigImage]} kolla_config: /var/lib/kolla/config_files/rsyslog_sidecar.json: command: /usr/sbin/rsyslogd -n diff --git a/deployment/logging/stdout/barbican-api.yaml b/deployment/logging/stdout/barbican-api.yaml index c8097dd0fe..8133a0af70 100644 --- a/deployment/logging/stdout/barbican-api.yaml +++ b/deployment/logging/stdout/barbican-api.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Barbican service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerBarbicanApiImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerBarbicanApiImage: ContainerBarbicanApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerBarbicanApiImage: {get_param: ContainerBarbicanApiImage} outputs: cmd_extra_args: @@ -23,7 +43,7 @@ outputs: step_2: barbican_api_apache_error_logs: start_order: 1 - image: {get_param: ContainerBarbicanApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerBarbicanApiImage]} user: root privileged: false restart: always @@ -34,7 +54,7 @@ outputs: - BarbicanApiLogs:/var/log/ barbican_api_apache_access_logs: start_order: 1 - image: {get_param: ContainerBarbicanApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerBarbicanApiImage]} user: root privileged: false restart: always @@ -45,7 +65,7 @@ outputs: - BarbicanApiLogs:/var/log/ barbican_api_logs: start_order: 2 - image: {get_param: ContainerBarbicanApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerBarbicanApiImage]} user: barbican privileged: false restart: always diff --git a/deployment/logging/stdout/haproxy.yaml b/deployment/logging/stdout/haproxy.yaml index 529562446b..206f297680 100644 --- a/deployment/logging/stdout/haproxy.yaml +++ b/deployment/logging/stdout/haproxy.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized HAProxy API service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerRsyslogSidecarImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRsyslogSidecarImage: ContainerRsyslogSidecarImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRsyslogSidecarImage: {get_param: ContainerRsyslogSidecarImage} outputs: config_settings: @@ -19,7 +39,7 @@ outputs: step_1: haproxy_logs: start_order: 0 - image: {get_param: ContainerRsyslogSidecarImage} + image: {get_attr: [RoleParametersValue, value, ContainerRsyslogSidecarImage]} user: root restart: always volumes: diff --git a/deployment/logging/stdout/heat-api-cfn.yaml b/deployment/logging/stdout/heat-api-cfn.yaml index 40ac69d2da..44755d48e4 100644 --- a/deployment/logging/stdout/heat-api-cfn.yaml +++ b/deployment/logging/stdout/heat-api-cfn.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Heat API CFN service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerHeatApiCfnImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatApiCfnImage: ContainerHeatApiCfnImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatApiCfnImage: {get_param: ContainerHeatApiCfnImage} outputs: config_settings: @@ -20,7 +40,7 @@ outputs: step_2: heat_api_cfn_apache_error_logs: start_order: 1 - image: {get_param: ContainerHeatApiCfnImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiCfnImage]} user: root privileged: false restart: always @@ -31,7 +51,7 @@ outputs: - HeatApiCfnLogs:/var/log/ heat_api_cfn_apache_access_logs: start_order: 1 - image: {get_param: ContainerHeatApiCfnImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiCfnImage]} user: root privileged: false restart: always @@ -42,7 +62,7 @@ outputs: - HeatApiCfnLogs:/var/log/ heat_api_cfn_logs: start_order: 2 - image: {get_param: ContainerHeatApiCfnImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiCfnImage]} user: heat privileged: false restart: always diff --git a/deployment/logging/stdout/heat-api.yaml b/deployment/logging/stdout/heat-api.yaml index d6a779e6d7..8d2506706a 100644 --- a/deployment/logging/stdout/heat-api.yaml +++ b/deployment/logging/stdout/heat-api.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Heat API service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerHeatApiImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerHeatApiImage: ContainerHeatApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerHeatApiImage: {get_param: ContainerHeatApiImage} outputs: config_settings: @@ -20,7 +40,7 @@ outputs: step_2: heat_api_apache_error_logs: start_order: 1 - image: {get_param: ContainerHeatApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiImage]} user: root privileged: false restart: always @@ -31,7 +51,7 @@ outputs: - HeatApiLogs:/var/log/ heat_api_apache_access_logs: start_order: 1 - image: {get_param: ContainerHeatApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiImage]} user: root privileged: false restart: always @@ -42,7 +62,7 @@ outputs: - HeatApiLogs:/var/log/ heat_api_logs: start_order: 2 - image: {get_param: ContainerHeatApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerHeatApiImage]} user: heat privileged: false restart: always diff --git a/deployment/logging/stdout/keystone.yaml b/deployment/logging/stdout/keystone.yaml index d1dd335b77..84c6d4c306 100644 --- a/deployment/logging/stdout/keystone.yaml +++ b/deployment/logging/stdout/keystone.yaml @@ -4,9 +4,29 @@ description: > OpenStack containerized Keystone service parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerKeystoneImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerKeystoneImage: ContainerKeystoneImage + - values: {get_param: [RoleParameters]} + - values: + ContainerKeystoneImage: {get_param: ContainerKeystoneImage} outputs: config_settings: @@ -20,7 +40,7 @@ outputs: step_2: keystone_apache_error_logs: start_order: 1 - image: {get_param: ContainerKeystoneImage} + image: {get_attr: [RoleParametersValue, value, ContainerKeystoneImage]} user: root privileged: false restart: always @@ -31,7 +51,7 @@ outputs: - KeystoneLogs:/var/log/ keystone_apache_access_logs: start_order: 1 - image: {get_param: ContainerKeystoneImage} + image: {get_attr: [RoleParametersValue, value, ContainerKeystoneImage]} user: root privileged: false restart: always @@ -42,7 +62,7 @@ outputs: - KeystoneLogs:/var/log/ keystone_logs: start_order: 2 - image: {get_param: ContainerKeystoneImage} + image: {get_attr: [RoleParametersValue, value, ContainerKeystoneImage]} user: keystone privileged: false restart: always diff --git a/deployment/logging/stdout/nova-api.yaml b/deployment/logging/stdout/nova-api.yaml index 74f8a4c42a..46ef7db77f 100644 --- a/deployment/logging/stdout/nova-api.yaml +++ b/deployment/logging/stdout/nova-api.yaml @@ -4,9 +4,29 @@ description: > Template for nova-api's logging to stdout parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerNovaApiImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaApiImage: ContainerNovaApiImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaApiImage: {get_param: ContainerNovaApiImage} outputs: config_settings: @@ -24,7 +44,7 @@ outputs: step_2: nova_api_apache_error_logs: start_order: 1 - image: {get_param: ContainerNovaApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaApiImage]} user: root privileged: false restart: always @@ -35,7 +55,7 @@ outputs: - NovaApiLogs:/var/log/ nova_api_apache_access_logs: start_order: 1 - image: {get_param: ContainerNovaApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaApiImage]} user: root privileged: false restart: always @@ -46,7 +66,7 @@ outputs: - NovaApiLogs:/var/log/ nova_api_logs: start_order: 2 - image: {get_param: ContainerNovaApiImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaApiImage]} user: nova privileged: false restart: always diff --git a/deployment/logging/stdout/nova-common.yaml b/deployment/logging/stdout/nova-common.yaml index 652cfcd662..27ce08cf21 100644 --- a/deployment/logging/stdout/nova-common.yaml +++ b/deployment/logging/stdout/nova-common.yaml @@ -7,6 +7,8 @@ parameters: ContainerNovaImage: description: image type: string + tags: + - role_specific NovaServiceName: description: service name type: string diff --git a/deployment/logging/stdout/nova-metadata.yaml b/deployment/logging/stdout/nova-metadata.yaml index 10375a7038..57a02c804a 100644 --- a/deployment/logging/stdout/nova-metadata.yaml +++ b/deployment/logging/stdout/nova-metadata.yaml @@ -4,9 +4,29 @@ description: > Template for nova-metadata's logging to stdout parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerNovaMetadataImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaMetadataImage: ContainerNovaMetadataImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaMetadataImage: {get_param: ContainerNovaMetadataImage} outputs: config_settings: @@ -24,7 +44,7 @@ outputs: step_2: nova_metadata_apache_error_logs: start_order: 1 - image: {get_param: ContainerNovaMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaMetadataImage]} user: root privileged: false restart: always @@ -35,7 +55,7 @@ outputs: - NovaMetadataLogs:/var/log/ nova_metadata_apache_access_logs: start_order: 1 - image: {get_param: ContainerNovaMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaMetadataImage]} user: root privileged: false restart: always @@ -46,7 +66,7 @@ outputs: - NovaMetadataLogs:/var/log/ nova_metadata_logs: start_order: 2 - image: {get_param: ContainerNovaMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaMetadataImage]} user: nova privileged: false restart: always diff --git a/deployment/logging/stdout/placement-api.yaml b/deployment/logging/stdout/placement-api.yaml index a8f6b05fab..aec2c58ecf 100644 --- a/deployment/logging/stdout/placement-api.yaml +++ b/deployment/logging/stdout/placement-api.yaml @@ -4,9 +4,29 @@ description: > Template for placement's logging to stdout parameters: + RoleParameters: + default: {} + description: Parameters specific to the role + type: json ContainerPlacementImage: description: image type: string + tags: + - role_specific + +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerPlacementImage: ContainerPlacementImage + - values: {get_param: [RoleParameters]} + - values: + ContainerPlacementImage: {get_param: ContainerPlacementImage} outputs: config_settings: @@ -24,7 +44,7 @@ outputs: step_2: placement_apache_error_logs: start_order: 1 - image: {get_param: ContainerPlacementImage} + image: {get_attr: [RoleParametersValue, value, ContainerPlacementImage]} user: root privileged: false restart: always @@ -35,7 +55,7 @@ outputs: - PlacementLogs:/var/log/ placement_apache_access_logs: start_order: 1 - image: {get_param: ContainerPlacementImage} + image: {get_attr: [RoleParametersValue, value, ContainerPlacementImage]} user: root privileged: false restart: always @@ -46,7 +66,7 @@ outputs: - PlacementLogs:/var/log/ placement_logs: start_order: 2 - image: {get_param: ContainerPlacementImage} + image: {get_attr: [RoleParametersValue, value, ContainerPlacementImage]} user: placement privileged: false restart: always diff --git a/deployment/logrotate/logrotate-crond-container-puppet.yaml b/deployment/logrotate/logrotate-crond-container-puppet.yaml index 4db7e9363f..2a595d3f18 100644 --- a/deployment/logrotate/logrotate-crond-container-puppet.yaml +++ b/deployment/logrotate/logrotate-crond-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCrondImage: description: image type: string + tags: + - role_specific ContainerCrondConfigImage: description: The container image to use for the crond config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -73,6 +77,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCrondImage: ContainerCrondImage + ContainerCrondConfigImage: ContainerCrondConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCrondImage: {get_param: ContainerCrondImage} + ContainerCrondConfigImage: {get_param: ContainerCrondConfigImage} + outputs: role_data: description: Role data for the crond role. @@ -132,7 +150,7 @@ outputs: puppet_config: config_volume: crond step_config: 'include tripleo::profile::base::logging::logrotate' - config_image: {get_param: ContainerCrondConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCrondConfigImage]} kolla_config: /var/lib/kolla/config_files/logrotate-crond.json: command: /usr/sbin/crond -s -n @@ -144,7 +162,7 @@ outputs: docker_config: step_4: logrotate_crond: - image: {get_param: ContainerCrondImage} + image: {get_attr: [RoleParametersValue, value, ContainerCrondImage]} net: none pid: host privileged: true diff --git a/deployment/manila/manila-api-container-puppet.yaml b/deployment/manila/manila-api-container-puppet.yaml index e0e97cfcd3..180b12f41a 100644 --- a/deployment/manila/manila-api-container-puppet.yaml +++ b/deployment/manila/manila-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerManilaApiImage: description: image type: string + tags: + - role_specific ContainerManilaConfigImage: description: The container image to use for the manila config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -134,6 +138,20 @@ resources: RoleParameters: {get_param: RoleParameters} EnableInternalTLS: {get_param: EnableInternalTLS} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerManilaApiImage: ContainerManilaApiImage + ContainerManilaConfigImage: ContainerManilaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerManilaApiImage: {get_param: ContainerManilaApiImage} + ContainerManilaConfigImage: {get_param: ContainerManilaConfigImage} + outputs: role_data: description: Role data for the Manila API role. @@ -234,7 +252,7 @@ outputs: - "\n" - - "include tripleo::profile::base::manila::api" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerManilaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerManilaConfigImage]} kolla_config: /var/lib/kolla/config_files/manila_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -273,7 +291,7 @@ outputs: docker_config: step_2: manila_init_logs: - image: &manila_api_image {get_param: ContainerManilaApiImage} + image: &manila_api_image {get_attr: [RoleParametersValue, value, ContainerManilaApiImage]} net: none user: root volumes: diff --git a/deployment/manila/manila-scheduler-container-puppet.yaml b/deployment/manila/manila-scheduler-container-puppet.yaml index c20e0773c4..29c92c7976 100644 --- a/deployment/manila/manila-scheduler-container-puppet.yaml +++ b/deployment/manila/manila-scheduler-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerManilaSchedulerImage: description: image type: string + tags: + - role_specific ContainerManilaConfigImage: description: The container image to use for the manila config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -51,6 +55,20 @@ resources: ServiceData: {get_param: ServiceData} ServiceNetMap: {get_param: ServiceNetMap} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerManilaSchedulerImage: ContainerManilaSchedulerImage + ContainerManilaConfigImage: ContainerManilaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerManilaSchedulerImage: {get_param: ContainerManilaSchedulerImage} + ContainerManilaConfigImage: {get_param: ContainerManilaConfigImage} + outputs: role_data: description: Role data for the Manila Scheduler role. @@ -68,7 +86,7 @@ outputs: - "\n" - - "include tripleo::profile::base::manila::scheduler" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerManilaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerManilaConfigImage]} kolla_config: /var/lib/kolla/config_files/manila_scheduler.json: command: /usr/bin/manila-scheduler --config-file /etc/manila/manila.conf @@ -84,7 +102,7 @@ outputs: docker_config: step_4: manila_scheduler: - image: {get_param: ContainerManilaSchedulerImage} + image: {get_attr: [RoleParametersValue, value, ContainerManilaSchedulerImage]} net: host restart: always healthcheck: {get_attr: [ContainersCommon, healthcheck_rpc_port]} diff --git a/deployment/manila/manila-share-container-puppet.yaml b/deployment/manila/manila-share-container-puppet.yaml index 0a929d0288..515a6b5280 100644 --- a/deployment/manila/manila-share-container-puppet.yaml +++ b/deployment/manila/manila-share-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerManilaShareImage: description: image type: string + tags: + - role_specific ContainerManilaConfigImage: description: image type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -81,6 +85,20 @@ resources: ManilaShareCommon: type: ./manila-share-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerManilaShareImage: ContainerManilaShareImage + ContainerManilaConfigImage: ContainerManilaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerManilaShareImage: {get_param: ContainerManilaShareImage} + ContainerManilaConfigImage: {get_param: ContainerManilaConfigImage} + outputs: role_data: description: Role data for the Manila Share role. @@ -140,7 +158,7 @@ outputs: - "\n" - - "include tripleo::profile::base::manila::share" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerManilaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerManilaConfigImage]} kolla_config: /var/lib/kolla/config_files/manila_share.json: command: /usr/bin/manila-share --config-file /etc/manila/manila.conf @@ -171,7 +189,7 @@ outputs: docker_config: step_4: manila_share: - image: &manila_share_image {get_param: ContainerManilaShareImage} + image: &manila_share_image {get_attr: [RoleParametersValue, value, ContainerManilaShareImage]} net: host ipc: host user: root diff --git a/deployment/manila/manila-share-pacemaker-puppet.yaml b/deployment/manila/manila-share-pacemaker-puppet.yaml index cd15d9839e..beb59d8303 100644 --- a/deployment/manila/manila-share-pacemaker-puppet.yaml +++ b/deployment/manila/manila-share-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerManilaShareImage: description: image type: string + tags: + - role_specific ContainerManilaConfigImage: description: image type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -88,6 +92,20 @@ resources: ManilaCommon: type: ./manila-share-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerManilaShareImage: ContainerManilaShareImage + ContainerManilaConfigImage: ContainerManilaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerManilaShareImage: {get_param: ContainerManilaShareImage} + ContainerManilaConfigImage: {get_param: ContainerManilaConfigImage} + outputs: role_data: description: Role data for the Manila Share role. @@ -105,9 +123,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerManilaShareImage} + data: {get_attr: [RoleParametersValue, value, ContainerManilaShareImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerManilaShareImage} + - {get_attr: [RoleParametersValue, value, ContainerManilaShareImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::manila::share_bundle::docker_volumes: {get_attr: [ManilaCommon, manila_share_volumes]} tripleo::profile::pacemaker::manila::share_bundle::docker_environment: {get_attr: [ManilaCommon, manila_share_environment]} @@ -126,7 +144,7 @@ outputs: - "\n" - - "include tripleo::profile::pacemaker::manila::share_bundle" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerManilaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerManilaConfigImage]} kolla_config: /var/lib/kolla/config_files/manila_share.json: command: /usr/bin/manila-share --config-file /etc/manila/manila.conf @@ -148,7 +166,7 @@ outputs: step_3: manila_share_init_logs: start_order: 0 - image: {get_param: ContainerManilaShareImage} + image: {get_attr: [RoleParametersValue, value, ContainerManilaShareImage]} net: none privileged: false user: root @@ -175,7 +193,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerManilaShareImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerManilaShareImage]} container_image_latest: *manila_share_image_pcmklatest - name: Manila-Share HA Wrappers Step when: step|int == 5 @@ -199,7 +217,7 @@ outputs: block: &manila_share_fetch_retag_container_tasks - name: Get container manila_share image set_fact: - manila_share_image: {get_param: ContainerManilaShareImage} + manila_share_image: {get_attr: [RoleParametersValue, value, ContainerManilaShareImage]} manila_share_image_latest: *manila_share_image_pcmklatest - name: Pull latest manila_share images command: "{{container_cli}} pull {{manila_share_image}}" diff --git a/deployment/memcached/memcached-container-puppet.yaml b/deployment/memcached/memcached-container-puppet.yaml index c45d8232a0..3732985277 100644 --- a/deployment/memcached/memcached-container-puppet.yaml +++ b/deployment/memcached/memcached-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerMemcachedImage: description: image type: string + tags: + - role_specific ContainerMemcachedConfigImage: description: The container image to use for the memcached config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -111,6 +115,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMemcachedImage: ContainerMemcachedImage + ContainerMemcachedConfigImage: ContainerMemcachedConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMemcachedImage: {get_param: ContainerMemcachedImage} + ContainerMemcachedConfigImage: {get_param: ContainerMemcachedConfigImage} + outputs: role_data: description: Role data for the Memcached API role. @@ -256,7 +274,7 @@ outputs: puppet_tags: 'file' step_config: | include tripleo::profile::base::memcached - config_image: {get_param: ContainerMemcachedConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerMemcachedConfigImage]} kolla_config: /var/lib/kolla/config_files/memcached.json: command: bash -c $* -- eval source /etc/sysconfig/memcached; exec /usr/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} $OPTIONS >> /var/log/memcached/memcached.log 2>&1 @@ -284,7 +302,7 @@ outputs: step_1: memcached: start_order: 0 - image: {get_param: ContainerMemcachedImage} + image: {get_attr: [RoleParametersValue, value, ContainerMemcachedImage]} net: host privileged: false restart: always diff --git a/deployment/messaging/rpc-qdrouterd-container-puppet.yaml b/deployment/messaging/rpc-qdrouterd-container-puppet.yaml index b72f255c80..49123b6d6a 100644 --- a/deployment/messaging/rpc-qdrouterd-container-puppet.yaml +++ b/deployment/messaging/rpc-qdrouterd-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerQdrouterdImage: description: image type: string + tags: + - role_specific ContainerQdrouterdConfigImage: description: The container image to use for the qdrouterd config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -85,6 +89,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerQdrouterdImage: ContainerQdrouterdImage + ContainerQdrouterdConfigImage: ContainerQdrouterdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerQdrouterdImage: {get_param: ContainerQdrouterdImage} + ContainerQdrouterdConfigImage: {get_param: ContainerQdrouterdConfigImage} + outputs: role_data: description: Role data for the qdrouterd service. @@ -130,7 +148,7 @@ outputs: config_volume: qdrouterd step_config: | include tripleo::profile::base::qdr - config_image: {get_param: ContainerQdrouterdConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerQdrouterdConfigImage]} kolla_config: /var/lib/kolla/config_files/qdrouterd.json: command: /usr/sbin/qdrouterd -c /etc/qpid-dispatch/qdrouterd.conf @@ -160,7 +178,7 @@ outputs: qdrouterd_init_logs: start_order: 0 detach: false - image: &qdrouterd_image {get_param: ContainerQdrouterdImage} + image: &qdrouterd_image {get_attr: [RoleParametersValue, value, ContainerQdrouterdImage]} net: none privileged: false user: root diff --git a/deployment/metrics/collectd-container-ansible.yaml b/deployment/metrics/collectd-container-ansible.yaml index eac9633e09..fdf59b7658 100644 --- a/deployment/metrics/collectd-container-ansible.yaml +++ b/deployment/metrics/collectd-container-ansible.yaml @@ -6,9 +6,13 @@ parameters: ContainerCollectdImage: description: image type: string + tags: + - role_specific ContainerCollectdConfigImage: description: The container image to use for the collectd config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -356,6 +360,20 @@ resources: - {get_param: [RoleParameters, CollectdVars]} - {} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCollectdImage: ContainerCollectdImage + ContainerCollectdConfigImage: ContainerCollectdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCollectdImage: {get_param: ContainerCollectdImage} + ContainerCollectdConfigImage: {get_param: ContainerCollectdConfigImage} + outputs: role_data: description: Role data for the Collectd service @@ -389,7 +407,7 @@ outputs: docker_config: step_5: collectd: - image: {get_param: ContainerCollectdImage} + image: {get_attr: [RoleParametersValue, value, ContainerCollectdImage]} net: host pid: host user: root diff --git a/deployment/metrics/collectd-container-puppet.yaml b/deployment/metrics/collectd-container-puppet.yaml index a04c395392..c77e53ecb6 100644 --- a/deployment/metrics/collectd-container-puppet.yaml +++ b/deployment/metrics/collectd-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerCollectdImage: description: image type: string + tags: + - role_specific ContainerCollectdConfigImage: description: The container image to use for the collectd config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -436,6 +440,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerCollectdImage: ContainerCollectdImage + ContainerCollectdConfigImage: ContainerCollectdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerCollectdImage: {get_param: ContainerCollectdImage} + ContainerCollectdConfigImage: {get_param: ContainerCollectdConfigImage} + outputs: role_data: description: Role data for the collectd role. @@ -694,7 +712,7 @@ outputs: config_volume: collectd puppet_tags: collectd_client_config,exec step_config: include tripleo::profile::base::metrics::collectd - config_image: {get_param: ContainerCollectdConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerCollectdConfigImage]} kolla_config: /var/lib/kolla/config_files/collectd.json: command: /usr/sbin/collectd -f @@ -720,7 +738,7 @@ outputs: docker_config: step_5: collectd: - image: {get_param: ContainerCollectdImage} + image: {get_attr: [RoleParametersValue, value, ContainerCollectdImage]} net: host pid: host user: root diff --git a/deployment/metrics/qdr-container-ansible.yaml b/deployment/metrics/qdr-container-ansible.yaml index 2c72ac46b2..23b4907231 100644 --- a/deployment/metrics/qdr-container-ansible.yaml +++ b/deployment/metrics/qdr-container-ansible.yaml @@ -7,6 +7,8 @@ parameters: ContainerMetricsQdrImage: description: image type: string + tags: + - role_specific EnableInternalTLS: default: false type: boolean @@ -207,6 +209,17 @@ resources: - {get_param: [RoleParameters, MetricsQdrVars]} - {} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMetricsQdrImage: ContainerMetricsQdrImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMetricsQdrImage: {get_param: ContainerMetricsQdrImage} outputs: role_data: description: Role data for the metrics Qdr role. @@ -315,7 +328,7 @@ outputs: healthcheck: test: /openstack/healthcheck image: - get_param: ContainerMetricsQdrImage + get_attr: [RoleParametersValue, value, ContainerMetricsQdrImage] net: host privileged: false restart: always diff --git a/deployment/metrics/qdr-container-puppet.yaml b/deployment/metrics/qdr-container-puppet.yaml index 3e94d39e6c..86d41c062f 100644 --- a/deployment/metrics/qdr-container-puppet.yaml +++ b/deployment/metrics/qdr-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerMetricsQdrImage: description: image type: string + tags: + - role_specific ContainerMetricsQdrConfigImage: description: The container image to use for the qdrouterd config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -160,6 +164,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMetricsQdrImage: ContainerMetricsQdrImage + ContainerMetricsQdrConfigImage: ContainerMetricsQdrConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMetricsQdrImage: {get_param: ContainerMetricsQdrImage} + ContainerMetricsQdrConfigImage: {get_param: ContainerMetricsQdrConfigImage} + outputs: role_data: description: Role data for the metrics Qdr role. @@ -249,7 +267,7 @@ outputs: config_volume: metrics_qdr step_config: | include tripleo::profile::base::metrics::qdr - config_image: {get_param: ContainerMetricsQdrConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerMetricsQdrConfigImage]} kolla_config: /var/lib/kolla/config_files/metrics_qdr.json: command: /usr/sbin/qdrouterd -c /etc/qpid-dispatch/qdrouterd.conf @@ -278,7 +296,7 @@ outputs: metrics_qdr_init_logs: start_order: 0 detach: false - image: &qdrouterd_image {get_param: ContainerMetricsQdrImage} + image: &qdrouterd_image {get_attr: [RoleParametersValue, value, ContainerMetricsQdrImage]} net: none privileged: false user: root diff --git a/deployment/multipathd/multipathd-container-ansible.yaml b/deployment/multipathd/multipathd-container-ansible.yaml index fa2d82e094..fa87ce8aa9 100644 --- a/deployment/multipathd/multipathd-container-ansible.yaml +++ b/deployment/multipathd/multipathd-container-ansible.yaml @@ -7,9 +7,13 @@ parameters: ContainerMultipathdImage: description: image type: string + tags: + - role_specific ContainerMultipathdConfigImage: description: The container image to use for the multipathd config_volume type: string + tags: + - role_specific MultipathdEnable: default: false description: Whether to enable the multipath daemon @@ -66,6 +70,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerMultipathdImage: ContainerMultipathdImage + ContainerMultipathdConfigImage: ContainerMultipathdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerMultipathdImage: {get_param: ContainerMultipathdImage} + ContainerMultipathdConfigImage: {get_param: ContainerMultipathdConfigImage} + outputs: role_data: description: Role data for the Multipathd API role. @@ -85,7 +103,7 @@ outputs: step_3: multipathd: start_order: 1 - image: {get_param: ContainerMultipathdImage} + image: {get_attr: [RoleParametersValue, value, ContainerMultipathdImage]} net: host privileged: true restart: always diff --git a/deployment/neutron/neutron-agents-ib-config-container-puppet.yaml b/deployment/neutron/neutron-agents-ib-config-container-puppet.yaml index f67918d48d..a363fc44b4 100644 --- a/deployment/neutron/neutron-agents-ib-config-container-puppet.yaml +++ b/deployment/neutron/neutron-agents-ib-config-container-puppet.yaml @@ -7,6 +7,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -69,11 +71,12 @@ resources: - map_replace: - neutron::agents::ml2::mlnx::multi_interface_driver_mappings: MultiInterfaceDriverMappings neutron::agents::ml2::mlnx::ipoib_physical_interface : IPoIBPhysicalInterface + ContainerNeutronConfigImage: ContainerNeutronConfigImage - values: {get_param: [RoleParameters]} - values: MultiInterfaceDriverMappings: {get_param: MultiInterfaceDriverMappings} IPoIBPhysicalInterface: {get_param: IPoIBPhysicalInterface} - + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} outputs: role_data: description: Role data for Neutron agents IB config @@ -93,7 +96,7 @@ outputs: step_3: neutron_agents_ib_config: detach: false - image: {get_param: ContainerNeutronConfigImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} net: host pid: host user: root diff --git a/deployment/neutron/neutron-api-container-puppet.yaml b/deployment/neutron/neutron-api-container-puppet.yaml index 00d812d52f..3533237d36 100644 --- a/deployment/neutron/neutron-api-container-puppet.yaml +++ b/deployment/neutron/neutron-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNeutronApiImage: description: image type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific NeutronApiLoggingSource: type: json default: @@ -282,6 +286,20 @@ resources: properties: NeutronServiceName: server + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronApiImage: ContainerNeutronApiImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronApiImage: {get_param: ContainerNeutronApiImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the Neutron API role. @@ -459,7 +477,7 @@ outputs: - "\n" - - include tripleo::profile::base::neutron::server - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/neutron_api.json: command: @@ -516,7 +534,7 @@ outputs: get_attr: [NeutronLogging, docker_config, step_2] step_3: neutron_db_sync: - image: &neutron_api_image {get_param: ContainerNeutronApiImage} + image: &neutron_api_image {get_attr: [RoleParametersValue, value, ContainerNeutronApiImage]} net: host privileged: false detach: false diff --git a/deployment/neutron/neutron-bgpvpn-api-container-puppet.yaml b/deployment/neutron/neutron-bgpvpn-api-container-puppet.yaml index cda6c45a03..05ff481698 100644 --- a/deployment/neutron/neutron-bgpvpn-api-container-puppet.yaml +++ b/deployment/neutron/neutron-bgpvpn-api-container-puppet.yaml @@ -30,6 +30,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific BgpvpnServiceProvider: default: 'BGPVPN:Dummy:networking_bgpvpn.neutron.services.service_drivers.driver_api.BGPVPNDriver:default' description: Backend to use as a service provider for BGPVPN @@ -39,6 +41,18 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the BGPVPN role. @@ -52,6 +66,6 @@ outputs: puppet_tags: neutron_bgpvpn_service_config step_config: | include tripleo::profile::base::neutron::bgpvpn - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-dhcp-container-puppet.yaml b/deployment/neutron/neutron-dhcp-container-puppet.yaml index f42b878e48..3b38b53efb 100644 --- a/deployment/neutron/neutron-dhcp-container-puppet.yaml +++ b/deployment/neutron/neutron-dhcp-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNeutronDHCPImage: description: image type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific DockerNeutronDHCPAgentUlimit: default: ['nofile=16384'] description: ulimit for Neutron DHCP Agent Container @@ -169,6 +173,20 @@ resources: properties: NeutronServiceName: dhcp-agent + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronDHCPImage: ContainerNeutronDHCPImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronDHCPImage: {get_param: ContainerNeutronDHCPImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the Neutron DHCP role. @@ -205,10 +223,10 @@ outputs: - get_attr: [NeutronLogging, config_settings] - tripleo::profile::base::neutron::dhcp_agent_wrappers::enable_dnsmasq_wrapper: {get_param: NeutronEnableDnsmasqDockerWrapper} tripleo::profile::base::neutron::dhcp_agent_wrappers::dnsmasq_process_wrapper: '/var/lib/neutron/dnsmasq_wrapper' - tripleo::profile::base::neutron::dhcp_agent_wrappers::dnsmasq_image: {get_param: ContainerNeutronDHCPImage} + tripleo::profile::base::neutron::dhcp_agent_wrappers::dnsmasq_image: {get_attr: [RoleParametersValue, value, ContainerNeutronDHCPImage]} tripleo::profile::base::neutron::dhcp_agent_wrappers::enable_haproxy_wrapper: {get_param: NeutronEnableHaproxyDockerWrapper} tripleo::profile::base::neutron::dhcp_agent_wrappers::haproxy_process_wrapper: '/var/lib/neutron/dhcp_haproxy_wrapper' - tripleo::profile::base::neutron::dhcp_agent_wrappers::haproxy_image: {get_param: ContainerNeutronDHCPImage} + tripleo::profile::base::neutron::dhcp_agent_wrappers::haproxy_image: {get_attr: [RoleParametersValue, value, ContainerNeutronDHCPImage]} tripleo::profile::base::neutron::dhcp_agent_wrappers::debug: if: - {get_param: NeutronWrapperDebug} @@ -251,7 +269,7 @@ outputs: puppet_tags: neutron_config,neutron_dhcp_agent_config step_config: | include tripleo::profile::base::neutron::dhcp - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/neutron_dhcp.json: command: @@ -296,7 +314,7 @@ outputs: - '4' - 'file' - 'include ::tripleo::profile::base::neutron::dhcp_agent_wrappers' - image: {get_param: ContainerNeutronDHCPImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronDHCPImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -306,7 +324,7 @@ outputs: step_4: neutron_dhcp: start_order: 10 - image: {get_param: ContainerNeutronDHCPImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronDHCPImage]} net: host pid: host cgroupns: host diff --git a/deployment/neutron/neutron-l2gw-api-container-puppet.yaml b/deployment/neutron/neutron-l2gw-api-container-puppet.yaml index 9b2cec937e..424c4d7094 100644 --- a/deployment/neutron/neutron-l2gw-api-container-puppet.yaml +++ b/deployment/neutron/neutron-l2gw-api-container-puppet.yaml @@ -30,6 +30,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific L2gwServiceDefaultInterfaceName: default: 'FortyGigE1/0/1' description: default interface name of the L2 gateway @@ -51,6 +53,20 @@ parameters: description: Backend to use as a service provider for L2 Gateway type: comma_delimited_list +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the L2 Gateway role. @@ -68,6 +84,6 @@ outputs: puppet_tags: neutron_l2gw_service_config step_config: | include tripleo::profile::base::neutron::l2gw - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-l3-container-puppet.yaml b/deployment/neutron/neutron-l3-container-puppet.yaml index 49f860a7b1..e07ecf3f1c 100644 --- a/deployment/neutron/neutron-l3-container-puppet.yaml +++ b/deployment/neutron/neutron-l3-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNeutronL3AgentImage: description: image type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific DockerNeutronL3AgentUlimit: default: ['nofile=16384'] description: ulimit for Neutron L3 Agent Container @@ -172,9 +176,13 @@ resources: map_replace: - map_replace: - neutron::agents::l3::agent_mode: NeutronL3AgentMode + ContainerNeutronL3AgentImage: ContainerNeutronL3AgentImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage - values: {get_param: [RoleParameters]} - values: NeutronL3AgentMode: {get_param: NeutronL3AgentMode} + ContainerNeutronL3AgentImage: {get_param: ContainerNeutronL3AgentImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} NeutronLogging: type: OS::TripleO::Services::Logging::NeutronCommon @@ -199,16 +207,16 @@ outputs: tripleo::profile::base::neutron::l3_agent_wrappers::keepalived_process_wrapper: '/var/lib/neutron/keepalived_wrapper' # TODO(beagles): this can be removed after a cleanup of the related puppet-tripleo code. tripleo::profile::base::neutron::l3_agent_wrappers::keepalived_state_change_wrapper: '/var/lib/neutron/keepalived_state_change_wrapper' - tripleo::profile::base::neutron::l3_agent_wrappers::keepalived_image: {get_param: ContainerNeutronL3AgentImage} + tripleo::profile::base::neutron::l3_agent_wrappers::keepalived_image: {get_attr: [RoleParametersValue, value, ContainerNeutronL3AgentImage]} tripleo::profile::base::neutron::l3_agent_wrappers::enable_haproxy_wrapper: {get_param: NeutronEnableHaproxyDockerWrapper} tripleo::profile::base::neutron::l3_agent_wrappers::haproxy_process_wrapper: '/var/lib/neutron/l3_haproxy_wrapper' - tripleo::profile::base::neutron::l3_agent_wrappers::haproxy_image: {get_param: ContainerNeutronL3AgentImage} + tripleo::profile::base::neutron::l3_agent_wrappers::haproxy_image: {get_attr: [RoleParametersValue, value, ContainerNeutronL3AgentImage]} tripleo::profile::base::neutron::l3_agent_wrappers::enable_dibbler_wrapper: {get_param: NeutronEnableDibblerDockerWrapper} tripleo::profile::base::neutron::l3_agent_wrappers::dibbler_process_wrapper: '/var/lib/neutron/dibbler_wrapper' - tripleo::profile::base::neutron::l3_agent_wrappers::dibbler_image: {get_param: ContainerNeutronL3AgentImage} + tripleo::profile::base::neutron::l3_agent_wrappers::dibbler_image: {get_attr: [RoleParametersValue, value, ContainerNeutronL3AgentImage]} tripleo::profile::base::neutron::l3_agent_wrappers::enable_radvd_wrapper: {get_param: NeutronEnableRadvdDockerWrapper} tripleo::profile::base::neutron::l3_agent_wrappers::radvd_process_wrapper: '/var/lib/neutron/radvd_wrapper' - tripleo::profile::base::neutron::l3_agent_wrappers::radvd_image: {get_param: ContainerNeutronL3AgentImage} + tripleo::profile::base::neutron::l3_agent_wrappers::radvd_image: {get_attr: [RoleParametersValue, value, ContainerNeutronL3AgentImage]} tripleo::profile::base::neutron::l3_agent_wrappers::debug: if: - {get_param: NeutronWrapperDebug} @@ -243,7 +251,7 @@ outputs: config_volume: neutron step_config: | include tripleo::profile::base::neutron::l3 - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/neutron_l3_agent.json: command: @@ -278,7 +286,7 @@ outputs: - '4' - 'file' - 'include ::tripleo::profile::base::neutron::l3_agent_wrappers' - image: {get_param: ContainerNeutronL3AgentImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronL3AgentImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -287,7 +295,7 @@ outputs: step_4: neutron_l3_agent: start_order: 10 - image: {get_param: ContainerNeutronL3AgentImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronL3AgentImage]} net: host pid: host privileged: true diff --git a/deployment/neutron/neutron-metadata-container-puppet.yaml b/deployment/neutron/neutron-metadata-container-puppet.yaml index 430cb1ead1..4b5b1a0574 100644 --- a/deployment/neutron/neutron-metadata-container-puppet.yaml +++ b/deployment/neutron/neutron-metadata-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNeutronMetadataImage: description: image type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific NeutronMetadataAgentLoggingSource: type: json default: @@ -92,6 +96,20 @@ resources: properties: NeutronServiceName: metadata-agent + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronMetadataImage: ContainerNeutronMetadataImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronMetadataImage: {get_param: ContainerNeutronMetadataImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for Neutron Metadata agent @@ -137,7 +155,7 @@ outputs: config_volume: neutron step_config: | include tripleo::profile::base::neutron::metadata - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/neutron_metadata_agent.json: command: @@ -161,7 +179,7 @@ outputs: step_4: neutron_metadata_agent: start_order: 10 - image: {get_param: ContainerNeutronMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronMetadataImage]} net: host pid: host privileged: true diff --git a/deployment/neutron/neutron-mlnx-agent-container-puppet.yaml b/deployment/neutron/neutron-mlnx-agent-container-puppet.yaml index a1b35d4d56..7547722dd5 100644 --- a/deployment/neutron/neutron-mlnx-agent-container-puppet.yaml +++ b/deployment/neutron/neutron-mlnx-agent-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNeutronMlnxImage: description: The container image to use for the Neutron MLNX agent type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -70,10 +74,14 @@ resources: - map_replace: - neutron::agents::ml2::mlnx::physical_interface_mappings: NeutronPhysicalDevMappings neutron::agents::ml2::mlnx::polling_interval: MlnxAgentPollingInterval + ContainerNeutronMlnxImage: ContainerNeutronMlnxImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage - values: {get_param: [RoleParameters]} - values: NeutronPhysicalDevMappings: {get_param: NeutronPhysicalDevMappings} MlnxAgentPollingInterval: {get_param: MlnxAgentPollingInterval} + ContainerNeutronMlnxImage: {get_param: ContainerNeutronMlnxImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} ContainersCommon: type: ../containers-common.yaml @@ -112,7 +120,7 @@ outputs: puppet_tags: neutron_plugin_ml2 step_config: | include tripleo::profile::base::neutron::plugins::ml2 - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/neutron_mlnx_agent.json: command: @@ -148,7 +156,7 @@ outputs: step_3: neutron_mlnx_agent_config: detach: false - image: {get_param: ContainerNeutronConfigImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} net: host pid: host user: root @@ -177,7 +185,7 @@ outputs: step_4: neutron_mlnx_agent: start_order: 10 - image: {get_param: ContainerNeutronMlnxImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronMlnxImage]} net: host pid: host privileged: true @@ -196,7 +204,7 @@ outputs: KOLLA_CONFIG_STRATEGY: COPY_ALWAYS eswitchd: start_order: 10 - image: {get_param: ContainerNeutronMlnxImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronMlnxImage]} net: host pid: host privileged: true diff --git a/deployment/neutron/neutron-ovs-agent-container-puppet.yaml b/deployment/neutron/neutron-ovs-agent-container-puppet.yaml index f12a16c02b..9f81efc614 100644 --- a/deployment/neutron/neutron-ovs-agent-container-puppet.yaml +++ b/deployment/neutron/neutron-ovs-agent-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerOpenvswitchImage: description: image type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific DockerOpenvswitchUlimit: default: ['nofile=16384'] description: ulimit for Openvswitch Container @@ -184,12 +188,16 @@ resources: vswitch::ovs::enable_hw_offload: OvsHwOffload vswitch::ovs::disable_emc: OvsDisableEMC neutron::agents::ml2::ovs::resource_provider_bandwidths: NeutronOvsResourceProviderBandwidths + ContainerOpenvswitchImage: ContainerOpenvswitchImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage - values: {get_param: [RoleParameters]} - values: NeutronBridgeMappings: {get_param: NeutronBridgeMappings} OvsHwOffload: {get_param: OvsHwOffload} OvsDisableEMC: {get_param: OvsDisableEMC} NeutronOvsResourceProviderBandwidths: {get_param: NeutronOvsResourceProviderBandwidths} + ContainerOpenvswitchImage: {get_param: ContainerOpenvswitchImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} NeutronBase: type: ./neutron-base.yaml @@ -276,7 +284,7 @@ outputs: puppet_tags: neutron_config,neutron_agent_ovs,neutron_plugin_ml2 step_config: | include tripleo::profile::base::neutron::ovs - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} # We need to mount /run for puppet_config step. This is because # puppet-vswitch runs the commands "ovs-vsctl list open_vswitch ." # when running vswitch::ovs::enable_hw_offload: true @@ -323,7 +331,7 @@ outputs: step_3: neutron_ovs_bridge: detach: false - image: {get_param: ContainerNeutronConfigImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} net: host pid: host user: root @@ -356,7 +364,7 @@ outputs: step_4: neutron_ovs_agent: start_order: 10 - image: {get_param: ContainerOpenvswitchImage} + image: {get_attr: [RoleParametersValue, value, ContainerOpenvswitchImage]} net: host pid: host privileged: true diff --git a/deployment/neutron/neutron-ovs-dpdk-agent-container-puppet.yaml b/deployment/neutron/neutron-ovs-dpdk-agent-container-puppet.yaml index a8dcaf23a2..f2fe2f7cd3 100644 --- a/deployment/neutron/neutron-ovs-dpdk-agent-container-puppet.yaml +++ b/deployment/neutron/neutron-ovs-dpdk-agent-container-puppet.yaml @@ -7,6 +7,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -96,12 +98,14 @@ resources: neutron::agents::ml2::ovs::vhostuser_socket_dir: NeutronVhostuserSocketDir vhostuser_socket_group: VhostuserSocketGroup vhostuser_socket_user: VhostuserSocketUser + ContainerNeutronConfigImage: ContainerNeutronConfigImage - values: {get_param: [RoleParameters]} - values: NeutronDatapathType: {get_param: NeutronDatapathType} NeutronVhostuserSocketDir: {get_param: NeutronVhostuserSocketDir} VhostuserSocketGroup: {get_param: VhostuserSocketGroup} VhostuserSocketUser: {get_param: VhostuserSocketUser} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} outputs: role_data: @@ -127,7 +131,7 @@ outputs: puppet_tags: neutron_config,neutron_agent_ovs,neutron_plugin_ml2 step_config: get_attr: [NeutronOvsAgent, role_data, puppet_config, step_config] - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} # We need to mount /run for puppet_config step. This is because # puppet-vswitch runs the commands "ovs-vsctl list open_vswitch ." # when running vswitch::ovs::enable_hw_offload: true diff --git a/deployment/neutron/neutron-plugin-ml2-ansible-container-puppet.yaml b/deployment/neutron/neutron-plugin-ml2-ansible-container-puppet.yaml index cac80e2df1..99df58ee83 100644 --- a/deployment/neutron/neutron-plugin-ml2-ansible-container-puppet.yaml +++ b/deployment/neutron/neutron-plugin-ml2-ansible-container-puppet.yaml @@ -22,6 +22,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific RoleName: default: '' description: Role name on which the service is applied @@ -49,6 +51,18 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the Neutron ML2 ansible Plugin role. @@ -68,6 +82,6 @@ outputs: puppet_tags: neutron_plugin_ml2 step_config: | include tripleo::profile::base::neutron::plugins::ml2 - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-plugin-ml2-cisco-vts-container-puppet.yaml b/deployment/neutron/neutron-plugin-ml2-cisco-vts-container-puppet.yaml index 738e6d20fe..6c504ac186 100644 --- a/deployment/neutron/neutron-plugin-ml2-cisco-vts-container-puppet.yaml +++ b/deployment/neutron/neutron-plugin-ml2-cisco-vts-container-puppet.yaml @@ -22,6 +22,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific RoleName: default: '' description: Role name on which the service is applied @@ -67,6 +69,18 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the Neutron ML2 Cisco VTS Plugin role. @@ -91,6 +105,6 @@ outputs: puppet_tags: neutron_plugin_ml2 step_config: | include tripleo::profile::base::neutron::plugins::ml2 - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-plugin-ml2-container-puppet.yaml b/deployment/neutron/neutron-plugin-ml2-container-puppet.yaml index 3cb2e5237d..3173f664ef 100644 --- a/deployment/neutron/neutron-plugin-ml2-container-puppet.yaml +++ b/deployment/neutron/neutron-plugin-ml2-container-puppet.yaml @@ -22,6 +22,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific RoleName: default: '' description: Role name on which the service is applied @@ -45,6 +47,18 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the Neutron ML2 Plugin role. @@ -62,7 +76,7 @@ outputs: puppet_tags: {get_param: NeutronPluginMl2PuppetTags} step_config: get_attr: [NeutronBase, role_data, step_config] - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} host_prep_tasks: [] diff --git a/deployment/neutron/neutron-plugin-ml2-mlnx-sdn-assist-container-puppet.yaml b/deployment/neutron/neutron-plugin-ml2-mlnx-sdn-assist-container-puppet.yaml index fde5f44ef2..27ef095443 100644 --- a/deployment/neutron/neutron-plugin-ml2-mlnx-sdn-assist-container-puppet.yaml +++ b/deployment/neutron/neutron-plugin-ml2-mlnx-sdn-assist-container-puppet.yaml @@ -31,6 +31,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific MlnxSDNUsername: description: DEPRECATED, The username for the SDN server. type: string @@ -80,6 +82,18 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the MLNX SDN ML2 Plugin. @@ -103,6 +117,6 @@ outputs: puppet_tags: neutron_plugin_ml2 step_config: | include tripleo::profile::base::neutron::plugins::ml2 - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-plugin-nsx-container-puppet.yaml b/deployment/neutron/neutron-plugin-nsx-container-puppet.yaml index 6aa070db04..8d9340f6b5 100644 --- a/deployment/neutron/neutron-plugin-nsx-container-puppet.yaml +++ b/deployment/neutron/neutron-plugin-nsx-container-puppet.yaml @@ -22,6 +22,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific RoleName: default: '' description: Role name on which the service is applied @@ -78,6 +80,20 @@ parameters: be used to enable DHCP relay on router ports. type: string +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the Neutron NSX Plugin role. @@ -104,6 +120,6 @@ outputs: step_config: get_attr: | include tripleo::profile::base::neutron::plugins::nsx - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-sfc-api-container-puppet.yaml b/deployment/neutron/neutron-sfc-api-container-puppet.yaml index 8c136799db..85adc6becc 100644 --- a/deployment/neutron/neutron-sfc-api-container-puppet.yaml +++ b/deployment/neutron/neutron-sfc-api-container-puppet.yaml @@ -30,6 +30,8 @@ parameters: ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific NeutronSfcDriver: default: 'dummy' description: Default driver for Service Function Chaining @@ -39,6 +41,20 @@ parameters: description: Default driver for Flow Classifier type: string +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for the SFC role. @@ -53,6 +69,6 @@ outputs: puppet_tags: neutron_sfc_service_config step_config: | include tripleo::profile::base::neutron::sfc - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: {} docker_config: {} diff --git a/deployment/neutron/neutron-sriov-agent-container-puppet.yaml b/deployment/neutron/neutron-sriov-agent-container-puppet.yaml index 979a42bf1a..707ce5eb1e 100644 --- a/deployment/neutron/neutron-sriov-agent-container-puppet.yaml +++ b/deployment/neutron/neutron-sriov-agent-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNeutronSriovImage: description: The container image to use for the Neutron SR-IOV agent type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific DockerSRIOVUlimit: default: ['nofile=16384'] description: ulimit for SR-IOV Container @@ -107,12 +111,16 @@ resources: neutron::agents::ml2::sriov::exclude_devices: NeutronExcludeDevices neutron::agents::ml2::sriov::extensions: NeutronSriovAgentExtensions neutron::agents::ml2::sriov::resource_provider_bandwidths: NeutronSriovResourceProviderBandwidths + ContainerNeutronSriovImage: ContainerNeutronSriovImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage - values: {get_param: [RoleParameters]} - values: NeutronPhysicalDevMappings: {get_param: NeutronPhysicalDevMappings} NeutronExcludeDevices: {get_param: NeutronExcludeDevices} NeutronSriovAgentExtensions: {get_param: NeutronSriovAgentExtensions} NeutronSriovResourceProviderBandwidths: {get_param: NeutronSriovResourceProviderBandwidths} + ContainerNeutronSriovImage: {get_param: ContainerNeutronSriovImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} ContainersCommon: type: ../containers-common.yaml @@ -147,7 +155,7 @@ outputs: puppet_tags: neutron_config,neutron_agent_sriov_numvfs,neutron_sriov_agent_config step_config: | include tripleo::profile::base::neutron::sriov - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} kolla_config: /var/lib/kolla/config_files/neutron_sriov_agent.json: command: @@ -168,7 +176,7 @@ outputs: step_4: neutron_sriov_agent: start_order: 10 - image: {get_param: ContainerNeutronSriovImage} + image: {get_attr: [RoleParametersValue, value, ContainerNeutronSriovImage]} net: host pid: host privileged: true diff --git a/deployment/nova/nova-api-container-puppet.yaml b/deployment/nova/nova-api-container-puppet.yaml index 30ec4aabaf..3b35a91032 100644 --- a/deployment/nova/nova-api-container-puppet.yaml +++ b/deployment/nova/nova-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaApiImage: description: image type: string + tags: + - role_specific ContainerNovaConfigImage: description: The container image to use for the nova config_volume type: string + tags: + - role_specific NovaApiLoggingSource: type: json default: @@ -296,6 +300,19 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaApiImage: ContainerNovaApiImage + ContainerNovaConfigImage: ContainerNovaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaApiImage: {get_param: ContainerNovaApiImage} + ContainerNovaConfigImage: {get_param: ContainerNovaConfigImage} outputs: role_data: @@ -426,7 +443,7 @@ outputs: - - "['Nova_cell_v2'].each |String $val| { noop_resource($val) }" - include tripleo::profile::base::nova::api - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerNovaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -552,7 +569,7 @@ outputs: step_3: nova_api_db_sync: start_order: 0 # Runs before nova-conductor dbsync - image: &nova_api_image {get_param: ContainerNovaApiImage} + image: &nova_api_image {get_attr: [RoleParametersValue, value, ContainerNovaApiImage]} net: host detach: false user: root diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index 899137f4c8..62a4f4e0ca 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaComputeImage: description: image type: string + tags: + - role_specific ContainerNovaLibvirtConfigImage: description: The container image to use for the nova_libvirt config_volume type: string + tags: + - role_specific DockerNovaComputeUlimit: default: ['nofile=131072', 'memlock=67108864'] description: ulimit for Nova Compute Container @@ -883,7 +887,7 @@ resources: NovaLogging: type: OS::TripleO::Services::Logging::NovaCommon properties: - ContainerNovaImage: {get_param: ContainerNovaComputeImage} + ContainerNovaImage: {get_attr: [RoleParametersValue, value, ContainerNovaComputeImage]} NovaServiceName: 'compute' NovaBase: @@ -960,6 +964,8 @@ resources: nova::compute::provider::custom_inventories: CustomProviderInventories nova::compute::rbd::libvirt_images_rbd_glance_copy_poll_interval: NovaGlanceRbdCopyPollInterval nova::compute::rbd::libvirt_images_rbd_glance_copy_timeout: NovaGlanceRbdCopyTimeout + ContainerNovaComputeImage: ContainerNovaComputeImage + ContainerNovaLibvirtConfigImage: ContainerNovaLibvirtConfigImage - values: {get_param: [RoleParameters]} - values: NovaVcpuPinSet: {get_param: NovaVcpuPinSet} @@ -1061,6 +1067,8 @@ resources: CustomProviderInventories: {get_param: CustomProviderInventories} NovaGlanceRbdCopyPollInterval: {get_param: NovaGlanceRbdCopyPollInterval} NovaGlanceRbdCopyTimeout: {get_param: NovaGlanceRbdCopyTimeout} + ContainerNovaComputeImage: {get_param: ContainerNovaComputeImage} + ContainerNovaLibvirtConfigImage: {get_param: ContainerNovaLibvirtConfigImage} outputs: role_data: @@ -1208,7 +1216,7 @@ outputs: # We'll probably treat it like we do with Neutron plugins. # Until then, just include it in the default nova-compute role. include tripleo::profile::base::nova::compute::libvirt - config_image: {get_param: ContainerNovaLibvirtConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_compute.json: command: @@ -1294,7 +1302,7 @@ outputs: get_attr: [NovaLogging, docker_config, step_2] step_3: nova_statedir_owner: - image: &nova_compute_image {get_param: ContainerNovaComputeImage} + image: &nova_compute_image {get_attr: [RoleParametersValue, value, ContainerNovaComputeImage]} net: none user: root security_opt: diff --git a/deployment/nova/nova-conductor-container-puppet.yaml b/deployment/nova/nova-conductor-container-puppet.yaml index 07be4f3bb1..b860e5a2e0 100644 --- a/deployment/nova/nova-conductor-container-puppet.yaml +++ b/deployment/nova/nova-conductor-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaConductorImage: description: image type: string + tags: + - role_specific ContainerNovaConfigImage: description: The container image to use for the nova config_volume type: string + tags: + - role_specific NovaConductorLoggingSource: type: json default: @@ -70,7 +74,7 @@ resources: NovaLogging: type: OS::TripleO::Services::Logging::NovaCommon properties: - ContainerNovaImage: {get_param: ContainerNovaConductorImage} + ContainerNovaImage: {get_attr: [RoleParametersValue, value, ContainerNovaConductorImage]} NovaServiceName: 'conductor' NovaBase: @@ -100,6 +104,19 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaConductorImage: ContainerNovaConductorImage + ContainerNovaConfigImage: ContainerNovaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaConductorImage: {get_param: ContainerNovaConductorImage} + ContainerNovaConfigImage: {get_param: ContainerNovaConfigImage} outputs: role_data: @@ -138,7 +155,7 @@ outputs: - "\n" - - include tripleo::profile::base::nova::conductor - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerNovaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_conductor.json: command: @@ -171,7 +188,7 @@ outputs: get_attr: [NovaLogging, docker_config, step_2] step_3: nova_db_sync: - image: &nova_conductor_image {get_param: ContainerNovaConductorImage} + image: &nova_conductor_image {get_attr: [RoleParametersValue, value, ContainerNovaConductorImage]} start_order: 3 # Runs after nova-api tasks if installed on this host net: host detach: false diff --git a/deployment/nova/nova-ironic-container-puppet.yaml b/deployment/nova/nova-ironic-container-puppet.yaml index d42cb0f9f6..1ad72b366e 100644 --- a/deployment/nova/nova-ironic-container-puppet.yaml +++ b/deployment/nova/nova-ironic-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaComputeIronicImage: description: image type: string + tags: + - role_specific ContainerNovaConfigImage: description: The container image to use for the nova config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -84,6 +88,19 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaComputeIronicImage: ContainerNovaComputeIronicImage + ContainerNovaConfigImage: ContainerNovaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaComputeIronicImage: {get_param: ContainerNovaComputeIronicImage} + ContainerNovaConfigImage: {get_param: ContainerNovaConfigImage} outputs: role_data: @@ -111,7 +128,7 @@ outputs: puppet_tags: nova_config step_config: | include tripleo::profile::base::nova::compute::ironic - config_image: {get_param: ContainerNovaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_ironic.json: command: /usr/bin/nova-compute @@ -143,7 +160,7 @@ outputs: docker_config: step_3: nova_statedir_owner: - image: &nova_ironic_image {get_param: ContainerNovaComputeIronicImage} + image: &nova_ironic_image {get_attr: [RoleParametersValue, value, ContainerNovaComputeIronicImage]} net: none user: root security_opt: diff --git a/deployment/nova/nova-libvirt-guests-container-puppet.yaml b/deployment/nova/nova-libvirt-guests-container-puppet.yaml index 2934f7dfbd..4639ada9a1 100644 --- a/deployment/nova/nova-libvirt-guests-container-puppet.yaml +++ b/deployment/nova/nova-libvirt-guests-container-puppet.yaml @@ -30,6 +30,8 @@ parameters: ContainerNovaLibvirtConfigImage: description: The container image to use for the nova_libvirt config_volume type: string + tags: + - role_specific NovaResumeGuestsStateOnHostBoot: default: false description: Whether to start running instance on compute host reboot @@ -56,10 +58,12 @@ resources: - map_replace: - tripleo::profile::base::nova::compute::libvirt_guests::enabled: NovaResumeGuestsStateOnHostBoot nova::compute::libvirt_guests::shutdown_timeout: NovaResumeGuestsShutdownTimeout + ContainerNovaLibvirtConfigImage: ContainerNovaLibvirtConfigImage - values: {get_param: [RoleParameters]} - values: NovaResumeGuestsStateOnHostBoot: {get_param: NovaResumeGuestsStateOnHostBoot} NovaResumeGuestsShutdownTimeout: {get_param: NovaResumeGuestsShutdownTimeout} + ContainerNovaLibvirtConfigImage: {get_param: ContainerNovaLibvirtConfigImage} outputs: role_data: @@ -72,4 +76,4 @@ outputs: puppet_tags: libvirtd_config,nova_config,file,libvirt_tls_password step_config: | include tripleo::profile::base::nova::compute::libvirt_guests - config_image: {get_param: ContainerNovaLibvirtConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtConfigImage]} diff --git a/deployment/nova/nova-manager-container-puppet.yaml b/deployment/nova/nova-manager-container-puppet.yaml index 5f3b2f47bb..46423938c6 100644 --- a/deployment/nova/nova-manager-container-puppet.yaml +++ b/deployment/nova/nova-manager-container-puppet.yaml @@ -7,6 +7,8 @@ parameters: ContainerNovaConductorImage: description: image type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -37,7 +39,7 @@ resources: NovaLogging: type: ../logging/files/nova-common.yaml properties: - ContainerNovaImage: &nova_conductor_image {get_param: ContainerNovaConductorImage} + ContainerNovaImage: &nova_conductor_image {get_attr: [RoleParametersValue, value, ContainerNovaConductorImage]} NovaServiceName: 'manager' ContainersCommon: @@ -53,6 +55,17 @@ resources: RoleParameters: {get_param: RoleParameters} NovaAdditionalCell: false # API DB access required + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaConductorImage: ContainerNovaConductorImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaConductorImage: {get_param: ContainerNovaConductorImage} outputs: role_data: diff --git a/deployment/nova/nova-metadata-container-puppet.yaml b/deployment/nova/nova-metadata-container-puppet.yaml index fc4525cbf1..dd2d106077 100644 --- a/deployment/nova/nova-metadata-container-puppet.yaml +++ b/deployment/nova/nova-metadata-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaMetadataImage: description: image type: string + tags: + - role_specific ContainerNovaMetadataConfigImage: description: The container image to use for the nova config_volume type: string + tags: + - role_specific NovaMetadataLoggingSource: type: json default: @@ -131,6 +135,19 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaMetadataImage: ContainerNovaMetadataImage + ContainerNovaMetadataConfigImage: ContainerNovaMetadataConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaMetadataImage: {get_param: ContainerNovaMetadataImage} + ContainerNovaMetadataConfigImage: {get_param: ContainerNovaMetadataConfigImage} outputs: role_data: @@ -208,7 +225,7 @@ outputs: - "\n" - - include tripleo::profile::base::nova::metadata - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerNovaMetadataConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaMetadataConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_metadata.json: command: /usr/sbin/httpd -DFOREGROUND @@ -235,7 +252,7 @@ outputs: step_4: nova_metadata: start_order: 2 - image: {get_param: ContainerNovaMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaMetadataImage]} net: host user: root restart: always diff --git a/deployment/nova/nova-migration-target-container-puppet.yaml b/deployment/nova/nova-migration-target-container-puppet.yaml index a08fc6d87b..082574413b 100644 --- a/deployment/nova/nova-migration-target-container-puppet.yaml +++ b/deployment/nova/nova-migration-target-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaComputeImage: description: image type: string + tags: + - role_specific ContainerNovaLibvirtConfigImage: description: The container image to use for the nova_libvirt config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -64,6 +68,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaComputeImage: ContainerNovaComputeImage + ContainerNovaLibvirtConfigImage: ContainerNovaLibvirtConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaComputeImage: {get_param: ContainerNovaComputeImage} + ContainerNovaLibvirtConfigImage: {get_param: ContainerNovaLibvirtConfigImage} + outputs: role_data: description: Role data for the Nova Migration Target service. @@ -126,7 +144,7 @@ outputs: - "\n" - - get_attr: [SshdBase, role_data, step_config] - include tripleo::profile::base::nova::migration::target - config_image: {get_param: ContainerNovaLibvirtConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtConfigImage]} kolla_config: /var/lib/kolla/config_files/nova-migration-target.json: command: @@ -161,7 +179,7 @@ outputs: docker_config: step_4: nova_migration_target: - image: {get_param: ContainerNovaComputeImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaComputeImage]} net: host privileged: true user: root diff --git a/deployment/nova/nova-modular-libvirt-container-puppet.yaml b/deployment/nova/nova-modular-libvirt-container-puppet.yaml index 7cb58ed9aa..53edb0ed97 100644 --- a/deployment/nova/nova-modular-libvirt-container-puppet.yaml +++ b/deployment/nova/nova-modular-libvirt-container-puppet.yaml @@ -7,11 +7,15 @@ parameters: ContainerNovaLibvirtImage: description: image type: string + tags: + - role_specific # we configure libvirt via the nova-compute container due to coupling # in the puppet modules ContainerNovaLibvirtConfigImage: description: The container image to use for the nova_libvirt config_volume type: string + tags: + - role_specific ContainerNovaLibvirtUlimit: default: ['nofile=131072', 'nproc=126960'] description: ulimit for Nova Libvirt Container @@ -347,10 +351,14 @@ resources: - map_replace: - vhostuser_socket_group: VhostuserSocketGroup nova_libvirt_opt_volumes: NovaLibvirtOptVolumes + ContainerNovaLibvirtImage: ContainerNovaLibvirtImage + ContainerNovaLibvirtConfigImage: ContainerNovaLibvirtConfigImage - values: {get_param: [RoleParameters]} - values: VhostuserSocketGroup: {get_param: VhostuserSocketGroup} NovaLibvirtOptVolumes: {get_param: NovaLibvirtOptVolumes} + ContainerNovaLibvirtImage: {get_param: ContainerNovaLibvirtImage} + ContainerNovaLibvirtConfigImage: {get_param: ContainerNovaLibvirtConfigImage} ContainersCommon: type: ../containers-common.yaml @@ -393,7 +401,7 @@ outputs: tripleo::profile::base::nova::virtlogd_wrapper::enable_wrapper: {get_param: NovaEnableVirtlogdContainerWrapper} # don't think this is a good place as /var/lib/nova can also be shared storage tripleo::profile::base::nova::virtlogd_wrapper::virtlogd_process_wrapper: '/var/lib/container-config-scripts/virtlogd_wrapper' - tripleo::profile::base::nova::virtlogd_wrapper::virtlogd_image: {get_param: ContainerNovaLibvirtImage} + tripleo::profile::base::nova::virtlogd_wrapper::virtlogd_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} tripleo::profile::base::nova::virtlogd_wrapper::debug: if: - {get_param: VirtlogdWrapperDebug} @@ -484,7 +492,7 @@ outputs: puppet_tags: libvirtd_config,virtlogd_config,virtproxyd_config,virtqemud_config,virtnodedevd_config,virtsecretd_config,virtstoraged_config,nova_config,file,libvirt_tls_password step_config: | include tripleo::profile::base::nova::libvirt - config_image: {get_param: ContainerNovaLibvirtConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_virtlogd.json: command: @@ -533,7 +541,7 @@ outputs: - '4' - 'file' - 'include ::tripleo::profile::base::nova::virtlogd_wrapper' - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -548,7 +556,7 @@ outputs: - {get_param: NovaEnableVirtlogdContainerWrapper} - nova_virtlogd_wrapper: &virtlog_container_config start_order: 0 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -571,7 +579,7 @@ outputs: - nova_virtlogd: *virtlog_container_config - nova_virtsecretd: start_order: 1 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -596,7 +604,7 @@ outputs: - - /var/lib/kolla/config_files/nova_virtsecretd.json:/var/lib/kolla/config_files/config.json:ro - nova_virtnodedevd: start_order: 2 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -621,7 +629,7 @@ outputs: - - /var/lib/kolla/config_files/nova_virtnodedevd.json:/var/lib/kolla/config_files/config.json:ro - nova_virtstoraged: start_order: 3 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -646,7 +654,7 @@ outputs: - - /var/lib/kolla/config_files/nova_virtstoraged.json:/var/lib/kolla/config_files/config.json:ro - nova_virtqemud: start_order: 4 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -671,7 +679,7 @@ outputs: - - /var/lib/kolla/config_files/nova_virtqemud.json:/var/lib/kolla/config_files/config.json:ro - nova_virtproxyd: start_order: 5 - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} ulimit: {get_param: ContainerNovaLibvirtUlimit} cgroupns: host net: host @@ -699,7 +707,7 @@ outputs: - need_libvirt_secret - nova_libvirt_init_secret: detach: false - image: {get_param: ContainerNovaLibvirtImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaLibvirtImage]} security_opt: - label=disable privileged: false diff --git a/deployment/nova/nova-scheduler-container-puppet.yaml b/deployment/nova/nova-scheduler-container-puppet.yaml index deac1aad94..1ba78ee002 100644 --- a/deployment/nova/nova-scheduler-container-puppet.yaml +++ b/deployment/nova/nova-scheduler-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaSchedulerImage: description: image type: string + tags: + - role_specific ContainerNovaConfigImage: description: The container image to use for the nova config_volume type: string + tags: + - role_specific NovaSchedulerLoggingSource: type: json default: @@ -168,7 +172,7 @@ resources: NovaLogging: type: OS::TripleO::Services::Logging::NovaCommon properties: - ContainerNovaImage: {get_param: ContainerNovaSchedulerImage} + ContainerNovaImage: {get_attr: [RoleParametersValue, value, ContainerNovaSchedulerImage]} NovaServiceName: 'scheduler' NovaBase: @@ -198,6 +202,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaSchedulerImage: ContainerNovaSchedulerImage + ContainerNovaConfigImage: ContainerNovaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaSchedulerImage: {get_param: ContainerNovaSchedulerImage} + ContainerNovaConfigImage: {get_param: ContainerNovaConfigImage} + outputs: role_data: description: Role data for the Nova Scheduler service. @@ -247,7 +265,7 @@ outputs: - "\n" - - include tripleo::profile::base::nova::scheduler - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerNovaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_scheduler.json: command: @@ -267,7 +285,7 @@ outputs: docker_config: step_4: nova_scheduler: - image: {get_param: ContainerNovaSchedulerImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaSchedulerImage]} net: host privileged: false restart: always diff --git a/deployment/nova/nova-vnc-proxy-container-puppet.yaml b/deployment/nova/nova-vnc-proxy-container-puppet.yaml index 216ce10b6d..0c6d567e18 100644 --- a/deployment/nova/nova-vnc-proxy-container-puppet.yaml +++ b/deployment/nova/nova-vnc-proxy-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerNovaVncProxyImage: description: image type: string + tags: + - role_specific ContainerNovaConfigImage: description: The container image to use for the nova config_volume type: string + tags: + - role_specific NovaVncproxyLoggingSource: type: json default: @@ -136,7 +140,7 @@ resources: NovaLogging: type: OS::TripleO::Services::Logging::NovaCommon properties: - ContainerNovaImage: {get_param: ContainerNovaVncProxyImage} + ContainerNovaImage: {get_attr: [RoleParametersValue, value, ContainerNovaVncProxyImage]} NovaServiceName: 'vncproxy' NovaBase: @@ -157,6 +161,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerNovaVncProxyImage: ContainerNovaVncProxyImage + ContainerNovaConfigImage: ContainerNovaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerNovaVncProxyImage: {get_param: ContainerNovaVncProxyImage} + ContainerNovaConfigImage: {get_param: ContainerNovaConfigImage} + outputs: role_data: description: Role data for the Nova Vncproxy service. @@ -219,7 +237,7 @@ outputs: - "\n" - - include tripleo::profile::base::nova::vncproxy - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerNovaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNovaConfigImage]} kolla_config: /var/lib/kolla/config_files/nova_vnc_proxy.json: command: @@ -250,7 +268,7 @@ outputs: docker_config: step_4: nova_vnc_proxy: - image: {get_param: ContainerNovaVncProxyImage} + image: {get_attr: [RoleParametersValue, value, ContainerNovaVncProxyImage]} net: host privileged: false restart: always diff --git a/deployment/octavia/octavia-api-container-puppet.yaml b/deployment/octavia/octavia-api-container-puppet.yaml index ee3fdcab07..34a8256ea0 100644 --- a/deployment/octavia/octavia-api-container-puppet.yaml +++ b/deployment/octavia/octavia-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerOctaviaApiImage: description: image type: string + tags: + - role_specific ContainerOctaviaConfigImage: description: The container image to use for the octavia config_volume type: string + tags: + - role_specific OctaviaApiLoggingSource: type: json default: @@ -124,6 +128,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOctaviaApiImage: ContainerOctaviaApiImage + ContainerOctaviaConfigImage: ContainerOctaviaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOctaviaApiImage: {get_param: ContainerOctaviaApiImage} + ContainerOctaviaConfigImage: {get_param: ContainerOctaviaConfigImage} + outputs: role_data: description: Role data for the Octavia API role. @@ -232,7 +250,7 @@ outputs: - - "include tripleo::profile::base::octavia::api" - {get_attr: [OctaviaProviderConfig, role_data, step_config]} - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerOctaviaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerOctaviaConfigImage]} kolla_config: /var/lib/kolla/config_files/octavia_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -288,7 +306,7 @@ outputs: step_2: octavia_api_init_dirs: start_order: 0 - image: &octavia_api_image {get_param: ContainerOctaviaApiImage} + image: &octavia_api_image {get_attr: [RoleParametersValue, value, ContainerOctaviaApiImage]} net: none user: root volumes: diff --git a/deployment/octavia/octavia-health-manager-container-puppet.yaml b/deployment/octavia/octavia-health-manager-container-puppet.yaml index dce9b5502a..225bf85332 100644 --- a/deployment/octavia/octavia-health-manager-container-puppet.yaml +++ b/deployment/octavia/octavia-health-manager-container-puppet.yaml @@ -7,12 +7,18 @@ parameters: ContainerOctaviaHealthManagerImage: description: image type: string + tags: + - role_specific ContainerOctaviaConfigImage: description: The container image to use for the octavia config_volume type: string + tags: + - role_specific ContainerOctaviaRsyslogImage: description: The container image to use for the rsyslog-sidecar type: string + tags: + - role_specific OctaviaHealthManagerLoggingSource: type: json default: @@ -77,6 +83,22 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOctaviaHealthManagerImage: ContainerOctaviaHealthManagerImage + ContainerOctaviaConfigImage: ContainerOctaviaConfigImage + ContainerOctaviaRsyslogImage: ContainerOctaviaRsyslogImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOctaviaHealthManagerImage: {get_param: ContainerOctaviaHealthManagerImage} + ContainerOctaviaConfigImage: {get_param: ContainerOctaviaConfigImage} + ContainerOctaviaRsyslogImage: {get_param: ContainerOctaviaConfigImage} + outputs: role_data: description: Role data for the Octavia health-manager role. @@ -109,7 +131,7 @@ outputs: - "\n" - - "include tripleo::profile::base::octavia::health_manager" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerOctaviaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerOctaviaConfigImage]} kolla_config: /var/lib/kolla/config_files/octavia_health_manager.json: command: /usr/bin/octavia-health-manager --config-file /etc/octavia/octavia.conf --config-file /etc/octavia/post-deploy.conf --log-file /var/log/octavia/health-manager.log --config-dir /etc/octavia/conf.d/octavia-health-manager @@ -137,7 +159,7 @@ outputs: step_2: octavia_health_manager_init_dirs: start_order: 0 - image: &octavia_health_manager_image {get_param: ContainerOctaviaHealthManagerImage} + image: &octavia_health_manager_image {get_attr: [RoleParametersValue, value, ContainerOctaviaHealthManagerImage]} user: root net: none volumes: @@ -171,7 +193,7 @@ outputs: - {get_param: OctaviaLogOffload} - octavia_rsyslog: start_order: 2 - image: {get_param: ContainerOctaviaRsyslogImage} + image: {get_attr: [RoleParametersValue, value, ContainerOctaviaRsyslogImage]} net: host privileged: false restart: always diff --git a/deployment/octavia/octavia-housekeeping-container-puppet.yaml b/deployment/octavia/octavia-housekeeping-container-puppet.yaml index 30e1569eb7..f003465226 100644 --- a/deployment/octavia/octavia-housekeeping-container-puppet.yaml +++ b/deployment/octavia/octavia-housekeeping-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerOctaviaHousekeepingImage: description: image type: string + tags: + - role_specific ContainerOctaviaConfigImage: description: The container image to use for the octavia config_volume type: string + tags: + - role_specific OctaviaHousekeepingLoggingSource: type: json default: @@ -69,6 +73,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOctaviaHousekeepingImage: ContainerOctaviaHousekeepingImage + ContainerOctaviaConfigImage: ContainerOctaviaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOctaviaHousekeepingImage: {get_param: ContainerOctaviaHousekeepingImage} + ContainerOctaviaConfigImage: {get_param: ContainerOctaviaConfigImage} + outputs: role_data: description: Role data for the Octavia housekeeping role. @@ -94,7 +112,7 @@ outputs: - "\n" - - "include tripleo::profile::base::octavia::housekeeping" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerOctaviaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerOctaviaConfigImage]} kolla_config: /var/lib/kolla/config_files/octavia_housekeeping.json: command: /usr/bin/octavia-housekeeping --config-file /etc/octavia/octavia.conf --config-file /etc/octavia/post-deploy.conf --log-file /var/log/octavia/housekeeping.log --config-dir /etc/octavia/conf.d/octavia-housekeeping @@ -111,7 +129,7 @@ outputs: step_2: octavia_housekeeping_init_dirs: start_order: 0 - image: &octavia_housekeeping_image {get_param: ContainerOctaviaHousekeepingImage} + image: &octavia_housekeeping_image {get_attr: [RoleParametersValue, value, ContainerOctaviaHousekeepingImage]} user: root net: none volumes: diff --git a/deployment/octavia/octavia-worker-container-puppet.yaml b/deployment/octavia/octavia-worker-container-puppet.yaml index 66686e89bf..b9afa3a332 100644 --- a/deployment/octavia/octavia-worker-container-puppet.yaml +++ b/deployment/octavia/octavia-worker-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerOctaviaWorkerImage: description: image type: string + tags: + - role_specific ContainerOctaviaConfigImage: description: The container image to use for the octavia config_volume type: string + tags: + - role_specific OctaviaWorkerLoggingSource: type: json default: @@ -62,6 +66,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOctaviaWorkerImage: ContainerOctaviaWorkerImage + ContainerOctaviaConfigImage: ContainerOctaviaConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOctaviaWorkerImage: {get_param: ContainerOctaviaWorkerImage} + ContainerOctaviaConfigImage: {get_param: ContainerOctaviaConfigImage} + outputs: role_data: description: Role data for the Octavia worker role. @@ -83,7 +101,7 @@ outputs: - - "['nova_flavor'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::base::octavia::worker" - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: ContainerOctaviaConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerOctaviaConfigImage]} kolla_config: /var/lib/kolla/config_files/octavia_worker.json: command: /usr/bin/octavia-worker --config-file /etc/octavia/octavia.conf --config-file /etc/octavia/post-deploy.conf --log-file /var/log/octavia/worker.log --config-dir /etc/octavia/conf.d/octavia-worker @@ -100,7 +118,7 @@ outputs: step_2: octavia_worker_init_dirs: start_order: 0 - image: &octavia_worker_image {get_param: ContainerOctaviaWorkerImage} + image: &octavia_worker_image {get_attr: [RoleParametersValue, value, ContainerOctaviaWorkerImage]} user: root net: none volumes: diff --git a/deployment/openvswitch/openvswitch-dpdk-netcontrold-container-ansible.yaml b/deployment/openvswitch/openvswitch-dpdk-netcontrold-container-ansible.yaml index ba6bfb107f..8009e75e17 100644 --- a/deployment/openvswitch/openvswitch-dpdk-netcontrold-container-ansible.yaml +++ b/deployment/openvswitch/openvswitch-dpdk-netcontrold-container-ansible.yaml @@ -30,6 +30,8 @@ parameters: ContainerOpenvswitchNetcontroldImage: description: netcontrold container image type: string + tags: + - role_specific DockerOpenvswitchUlimit: default: ['nofile=16384'] description: ulimit for Openvswitch Container @@ -39,6 +41,18 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOpenvswitchNetcontroldImage: ContainerOpenvswitchNetcontroldImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOpenvswitchNetcontroldImage: {get_param: ContainerOpenvswitchNetcontroldImage} + outputs: role_data: description: Role data for the netcontrold service @@ -50,7 +64,7 @@ outputs: docker_config: step_5: openvswitch_dpdk_netcontrold: - image: {get_param: ContainerOpenvswitchNetcontroldImage} + image: {get_attr: [RoleParametersValue, value, ContainerOpenvswitchNetcontroldImage]} net: host pid: host privileged: true diff --git a/deployment/ovn/ovn-controller-container-puppet.yaml b/deployment/ovn/ovn-controller-container-puppet.yaml index 6439ba89c6..d0eb1480f4 100644 --- a/deployment/ovn/ovn-controller-container-puppet.yaml +++ b/deployment/ovn/ovn-controller-container-puppet.yaml @@ -25,9 +25,13 @@ parameters: ContainerOvnControllerImage: description: image type: string + tags: + - role_specific ContainerOvnControllerConfigImage: description: The container image to use for the ovn_controller config_volume type: string + tags: + - role_specific RoleName: default: '' description: Role name on which the service is applied @@ -191,12 +195,16 @@ resources: - {get_param: OVNAvailabilityZone} vswitch::ovs::enable_hw_offload: OvsHwOffload container_cpuset_cpus: OVNContainerCpusetCpus + ContainerOvnControllerImage: ContainerOvnControllerImage + ContainerOvnControllerConfigImage: ContainerOvnControllerConfigImage - values: {get_param: [RoleParameters]} - values: NeutronBridgeMappings: {get_param: NeutronBridgeMappings} OVNCMSOptions: {get_param: OVNCMSOptions} OvsHwOffload: {get_param: OvsHwOffload} OVNContainerCpusetCpus: {get_param: OVNContainerCpusetCpus} + ContainerOvnControllerImage: {get_param: ContainerOvnControllerImage} + ContainerOvnControllerConfigImage: {get_param: ContainerOvnControllerConfigImage} OVNBridgeMappingsValue: type: OS::Heat::Value @@ -272,7 +280,7 @@ outputs: config_volume: ovn_controller step_config: | include tripleo::profile::base::neutron::agents::ovn - config_image: {get_param: ContainerOvnControllerConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerOvnControllerConfigImage]} # We need to mount /run for puppet_config step. This is because # puppet-vswitch runs the commands "ovs-vsctl set open_vswitch . external_ids:..." # to configure the required parameters in ovs db which will be read @@ -317,7 +325,7 @@ outputs: privileged: true user: root command: ['/bin/bash', '-c', 'CMS_OPTS=$(hiera ovn::controller::ovn_cms_options -c /etc/puppet/hiera.yaml); if [ X"$CMS_OPTS" != X ]; then ovs-vsctl set open . external_ids:ovn-cms-options=$CMS_OPTS;else ovs-vsctl remove open . external_ids ovn-cms-options; fi'] - image: &ovn_controller_image {get_param: ContainerOvnControllerImage} + image: &ovn_controller_image {get_attr: [RoleParametersValue, value, ContainerOvnControllerImage]} volumes: list_concat: - {get_attr: [ContainersCommon, volumes]} diff --git a/deployment/ovn/ovn-dbs-cluster-ansible.yaml b/deployment/ovn/ovn-dbs-cluster-ansible.yaml index b6bedb8d5d..4e8ed09a82 100644 --- a/deployment/ovn/ovn-dbs-cluster-ansible.yaml +++ b/deployment/ovn/ovn-dbs-cluster-ansible.yaml @@ -7,12 +7,18 @@ parameters: ContainerOvnNbDbImage: description: image type: string + tags: + - role_specific ContainerOvnSbDbImage: description: image type: string + tags: + - role_specific ContainerOvnNorthdImage: description: image type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -79,6 +85,22 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOvnNbDbImage: ContainerOvnNbDbImage + ContainerOvnSbDbImage: ContainerOvnSbDbImage + ContainerOvnNorthdImage: ContainerOvnNorthdImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOvnNbDbImage: {get_param: ContainerOvnNbDbImage} + ContainerOvnSbDbImage: {get_param: ContainerOvnSbDbImage} + ContainerOvnNorthdImage: {get_param: ContainerOvnNorthdImage} + outputs: role_data: description: Role data for the OVN multi-active cluster role. @@ -124,7 +146,7 @@ outputs: step_0: ovn_cluster_north_db_server: start_order: 0 - image: {get_param: ContainerOvnNbDbImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnNbDbImage]} net: host privileged: false restart: always @@ -153,7 +175,7 @@ outputs: KOLLA_CONFIG_STRATEGY: COPY_ALWAYS ovn_cluster_south_db_server: start_order: 0 - image: {get_param: ContainerOvnSbDbImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnSbDbImage]} net: host privileged: false restart: always @@ -182,7 +204,7 @@ outputs: KOLLA_CONFIG_STRATEGY: COPY_ALWAYS ovn_cluster_northd: start_order: 2 - image: {get_param: ContainerOvnNorthdImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnNorthdImage]} net: host privileged: false restart: always diff --git a/deployment/ovn/ovn-dbs-container-puppet.yaml b/deployment/ovn/ovn-dbs-container-puppet.yaml index e734e3c6fb..b9b7102544 100644 --- a/deployment/ovn/ovn-dbs-container-puppet.yaml +++ b/deployment/ovn/ovn-dbs-container-puppet.yaml @@ -10,12 +10,18 @@ parameters: ContainerOvnNbDbImage: description: image type: string + tags: + - role_specific ContainerOvnSbDbImage: description: image type: string + tags: + - role_specific ContainerOvnNorthdImage: description: image type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -76,6 +82,22 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOvnNbDbImage: ContainerOvnNbDbImage + ContainerOvnSbDbImage: ContainerOvnSbDbImage + ContainerOvnNorthdImage: ContainerOvnNorthdImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOvnNbDbImage: {get_param: ContainerOvnNbDbImage} + ContainerOvnSbDbImage: {get_param: ContainerOvnSbDbImage} + ContainerOvnNorthdImage: {get_param: ContainerOvnNorthdImage} + outputs: role_data: description: Role data for the OVN Dbs role. @@ -142,7 +164,7 @@ outputs: step_4: ovn_north_db_server: start_order: 0 - image: {get_param: ContainerOvnNbDbImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnNbDbImage]} net: host privileged: false restart: always @@ -163,7 +185,7 @@ outputs: KOLLA_CONFIG_STRATEGY: COPY_ALWAYS ovn_south_db_server: start_order: 0 - image: {get_param: ContainerOvnSbDbImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnSbDbImage]} net: host privileged: false restart: always @@ -206,7 +228,7 @@ outputs: - ['ptcp:$SB_DB_PORT:$DBS_LISTEN_IP'] ovn_northd: start_order: 2 - image: {get_param: ContainerOvnNorthdImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnNorthdImage]} net: host privileged: false restart: always diff --git a/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml b/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml index 0ec4ca6d06..0da72dea0e 100644 --- a/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml +++ b/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerOvnDbsImage: description: image type: string + tags: + - role_specific ContainerOvnDbsConfigImage: description: image type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -131,6 +135,20 @@ resources: OVNNorthboundServerPort: {get_param: OVNNorthboundServerPort} OVNSouthboundServerPort: {get_param: OVNSouthboundServerPort} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOvnDbsImage: ContainerOvnDbsImage + ContainerOvnDbsConfigImage: ContainerOvnDbsConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOvnDbsImage: {get_param: ContainerOvnDbsImage} + ContainerOvnDbsConfigImage: {get_param: ContainerOvnDbsConfigImage} + outputs: role_data: description: Role data for the OVN Dbs HA role. @@ -156,9 +174,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerOvnDbsImage} + data: {get_attr: [RoleParametersValue, value, ContainerOvnDbsImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerOvnDbsImage} + - {get_attr: [RoleParametersValue, value, ContainerOvnDbsImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::ovn_dbs_bundle::nb_db_port: {get_param: OVNNorthboundServerPort} tripleo::profile::pacemaker::ovn_dbs_bundle::sb_db_port: {get_param: OVNSouthboundServerPort} @@ -225,7 +243,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerOvnDbsImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerOvnDbsImage]} container_image_latest: *ovn_dbs_image_pcmklatest - name: OVNDbs HA Wrappers Step when: step|int == 3 @@ -295,7 +313,7 @@ outputs: when: - old_ovn_dbs_image_id.stdout != new_ovn_dbs_image_id.stdout vars: - ovn_dbs_image: {get_param: ContainerOvnDbsImage} + ovn_dbs_image: {get_attr: [RoleParametersValue, value, ContainerOvnDbsImage]} ovn_dbs_image_latest: *ovn_dbs_image_pcmklatest # When ovn-dbs-bundle support was added, we didn't tag the ovn-dbs image # with pcmklatest. So, when update is run for the first time we need to @@ -336,7 +354,7 @@ outputs: failed_when: false - name: ovn-dbs image facts set_fact: - ovn_dbs_image: {get_param: ContainerOvnDbsImage} + ovn_dbs_image: {get_attr: [RoleParametersValue, value, ContainerOvnDbsImage]} ovn_dbs_image_latest: *ovn_dbs_image_pcmklatest ovn_dbs_image_current: "{{ovn_dbs_image_current_res.stdout}}" - name: Temporarily tag the current ovn_dbs image id with the upgraded image name diff --git a/deployment/ovn/ovn-metadata-container-puppet.yaml b/deployment/ovn/ovn-metadata-container-puppet.yaml index f89737148d..5ae7a181de 100644 --- a/deployment/ovn/ovn-metadata-container-puppet.yaml +++ b/deployment/ovn/ovn-metadata-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerOvnMetadataImage: description: image type: string + tags: + - role_specific ContainerNeutronConfigImage: description: The container image to use for the neutron config_volume type: string + tags: + - role_specific OvnMetadataAgentLoggingSource: type: json default: @@ -144,6 +148,20 @@ resources: properties: NeutronServiceName: ovn-metadata-agent + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerOvnMetadataImage: ContainerOvnMetadataImage + ContainerNeutronConfigImage: ContainerNeutronConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerOvnMetadataImage: {get_param: ContainerOvnMetadataImage} + ContainerNeutronConfigImage: {get_param: ContainerNeutronConfigImage} + outputs: role_data: description: Role data for OVNMetadata agent @@ -156,7 +174,7 @@ outputs: - get_attr: [NeutronLogging, config_settings] - tripleo::profile::base::neutron::ovn_metadata_agent_wrappers::enable_haproxy_wrapper: {get_param: OVNEnableHaproxyDockerWrapper} tripleo::profile::base::neutron::ovn_metadata_agent_wrappers::haproxy_process_wrapper: '/var/lib/neutron/ovn_metadata_haproxy_wrapper' - tripleo::profile::base::neutron::ovn_metadata_agent_wrappers::haproxy_image: {get_param: ContainerOvnMetadataImage} + tripleo::profile::base::neutron::ovn_metadata_agent_wrappers::haproxy_image: {get_attr: [RoleParametersValue, value, ContainerOvnMetadataImage]} tripleo::profile::base::neutron::ovn_metadata_agent_wrappers::debug: if: - {get_param: OVNWrapperDebug} @@ -193,7 +211,7 @@ outputs: config_volume: neutron step_config: | include tripleo::profile::base::neutron::ovn_metadata - config_image: {get_param: ContainerNeutronConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerNeutronConfigImage]} volumes: - /lib/modules:/lib/modules:ro - /run/openvswitch:/run/openvswitch:shared,z @@ -239,7 +257,7 @@ outputs: - '4' - 'file' - 'include ::tripleo::profile::base::neutron::ovn_metadata_agent_wrappers' - image: {get_param: ContainerOvnMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnMetadataImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -258,7 +276,7 @@ outputs: - '4' - 'exec' - 'include tripleo::profile::base::neutron::ovn_metadata' - image: {get_param: ContainerOvnMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnMetadataImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -268,7 +286,7 @@ outputs: TRIPLEO_DEPLOY_IDENTIFIER: {get_param: DeployIdentifier} ovn_metadata_agent: start_order: 1 - image: {get_param: ContainerOvnMetadataImage} + image: {get_attr: [RoleParametersValue, value, ContainerOvnMetadataImage]} net: host pid: host cgroupns: host diff --git a/deployment/pacemaker/clustercheck-container-puppet.yaml b/deployment/pacemaker/clustercheck-container-puppet.yaml index cdd6e32110..5f61ccd5ae 100644 --- a/deployment/pacemaker/clustercheck-container-puppet.yaml +++ b/deployment/pacemaker/clustercheck-container-puppet.yaml @@ -9,9 +9,13 @@ parameters: ContainerClustercheckImage: description: image type: string + tags: + - role_specific ContainerClustercheckConfigImage: description: The container image to use for the clustercheck config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -55,6 +59,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerClustercheckImage: ContainerClustercheckImage + ContainerClustercheckConfigImage: ContainerClustercheckConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerClustercheckImage: {get_param: ContainerClustercheckImage} + ContainerClustercheckConfigImage: {get_param: ContainerClustercheckConfigImage} + conditions: socat_listener: {equals: [{get_param: ClustercheckListener}, 'socat']} @@ -78,7 +96,7 @@ outputs: config_volume: clustercheck puppet_tags: file # set this even though file is the default step_config: "include tripleo::profile::pacemaker::clustercheck" - config_image: {get_param: ContainerClustercheckConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerClustercheckConfigImage]} kolla_config: /var/lib/kolla/config_files/clustercheck.json: command: @@ -96,7 +114,7 @@ outputs: step_2: clustercheck: start_order: 1 - image: {get_param: ContainerClustercheckImage} + image: {get_attr: [RoleParametersValue, value, ContainerClustercheckImage]} restart: always net: host healthcheck: diff --git a/deployment/placement/placement-api-container-puppet.yaml b/deployment/placement/placement-api-container-puppet.yaml index 6f33b6d6d4..dc1999b5b2 100644 --- a/deployment/placement/placement-api-container-puppet.yaml +++ b/deployment/placement/placement-api-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerPlacementImage: description: image type: string + tags: + - role_specific ContainerPlacementConfigImage: description: The container image to use for the placement config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -122,6 +126,20 @@ resources: PlacementLogging: type: OS::TripleO::Services::Logging::PlacementApi + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerPlacementImage: ContainerPlacementImage + ContainerPlacementConfigImage: ContainerPlacementConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerPlacementImage: {get_param: ContainerPlacementImage} + ContainerPlacementConfigImage: {get_param: ContainerPlacementConfigImage} + outputs: role_data: description: Role data for the Placement API role. @@ -225,7 +243,7 @@ outputs: - "\n" - - {get_attr: [MySQLClient, role_data, step_config]} - "include tripleo::profile::base::placement::api" - config_image: {get_param: ContainerPlacementConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerPlacementConfigImage]} kolla_config: /var/lib/kolla/config_files/placement_api.json: command: /usr/sbin/httpd -DFOREGROUND @@ -266,7 +284,7 @@ outputs: step_3: placement_api_db_sync: start_order: 1 - image: &placement_api_image {get_param: ContainerPlacementImage} + image: &placement_api_image {get_attr: [RoleParametersValue, value, ContainerPlacementImage]} net: host detach: false user: root diff --git a/deployment/qdr/qdrouterd-container-puppet.yaml b/deployment/qdr/qdrouterd-container-puppet.yaml index 1489f94404..742cf9f65e 100644 --- a/deployment/qdr/qdrouterd-container-puppet.yaml +++ b/deployment/qdr/qdrouterd-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerQdrouterdImage: description: image type: string + tags: + - role_specific ContainerQdrouterdConfigImage: description: The container image to use for the qdrouterd config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -53,6 +57,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerQdrouterdImage: ContainerQdrouterdImage + ContainerQdrouterdConfigImage: ContainerQdrouterdConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerQdrouterdImage: {get_param: ContainerQdrouterdImage} + ContainerQdrouterdConfigImage: {get_param: ContainerQdrouterdConfigImage} + outputs: role_data: description: Role data for the qdrouterd service. @@ -86,7 +104,7 @@ outputs: config_volume: qdrouterd step_config: | include tripleo::profile::base::qdr - config_image: {get_param: ContainerQdrouterdConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerQdrouterdConfigImage]} kolla_config: /var/lib/kolla/config_files/qdrouterd.json: command: /usr/sbin/qdrouterd -c /etc/qpid-dispatch/qdrouterd.conf @@ -104,7 +122,7 @@ outputs: qdrouterd_init_logs: start_order: 0 detach: false - image: &qdrouterd_image {get_param: ContainerQdrouterdImage} + image: &qdrouterd_image {get_attr: [RoleParametersValue, value, ContainerQdrouterdImage]} net: none privileged: false user: root diff --git a/deployment/rabbitmq/rabbitmq-container-puppet.yaml b/deployment/rabbitmq/rabbitmq-container-puppet.yaml index 394dc74d9d..dcd01572bb 100644 --- a/deployment/rabbitmq/rabbitmq-container-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRabbitmqImage: description: image type: string + tags: + - role_specific ContainerRabbitmqConfigImage: description: The container image to use for the rabbitmq config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -135,6 +139,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRabbitmqImage: ContainerRabbitmqImage + ContainerRabbitmqConfigImage: ContainerRabbitmqConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRabbitmqImage: {get_param: ContainerRabbitmqImage} + ContainerRabbitmqConfigImage: {get_param: ContainerRabbitmqConfigImage} + outputs: role_data: description: Role data for the Rabbitmq API role. @@ -260,7 +278,7 @@ outputs: - "\n" - - "['Rabbitmq_policy', 'Rabbitmq_user'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::base::rabbitmq" - config_image: &rabbitmq_config_image {get_param: ContainerRabbitmqConfigImage} + config_image: &rabbitmq_config_image {get_attr: [RoleParametersValue, value, ContainerRabbitmqConfigImage]} kolla_config: /var/lib/kolla/config_files/rabbitmq.json: command: /usr/lib/rabbitmq/bin/rabbitmq-server @@ -290,7 +308,7 @@ outputs: rabbitmq_init_logs: start_order: 0 detach: false - image: &rabbitmq_image {get_param: ContainerRabbitmqImage} + image: &rabbitmq_image {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} net: none privileged: false user: root diff --git a/deployment/rabbitmq/rabbitmq-messaging-notify-container-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-notify-container-puppet.yaml index 7825559fe8..38a2f22b6e 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-notify-container-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-notify-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRabbitmqImage: description: image type: string + tags: + - role_specific ContainerRabbitmqConfigImage: description: The container image to use for the rabbitmq config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -91,6 +95,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRabbitmqImage: ContainerRabbitmqImage + ContainerRabbitmqConfigImage: ContainerRabbitmqConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRabbitmqImage: {get_param: ContainerRabbitmqImage} + ContainerRabbitmqConfigImage: {get_param: ContainerRabbitmqConfigImage} + outputs: role_data: description: Role data for the Rabbitmq API role. @@ -158,7 +176,7 @@ outputs: - "\n" - - "['Rabbitmq_policy', 'Rabbitmq_user'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::base::rabbitmq" - config_image: &rabbitmq_config_image {get_param: ContainerRabbitmqConfigImage} + config_image: &rabbitmq_config_image {get_attr: [RoleParametersValue, value, ContainerRabbitmqConfigImage]} kolla_config: /var/lib/kolla/config_files/rabbitmq.json: command: /usr/lib/rabbitmq/bin/rabbitmq-server @@ -188,7 +206,7 @@ outputs: rabbitmq_init_logs: start_order: 0 detach: false - image: &rabbitmq_image {get_param: ContainerRabbitmqImage} + image: &rabbitmq_image {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} net: none privileged: false user: root diff --git a/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml index af344bbc3f..fcbe27bed3 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRabbitmqImage: description: image type: string + tags: + - role_specific ContainerRabbitmqConfigImage: description: The container image to use for the rabbitmq config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -81,6 +85,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRabbitmqImage: ContainerRabbitmqImage + ContainerRabbitmqConfigImage: ContainerRabbitmqConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRabbitmqImage: {get_param: ContainerRabbitmqImage} + ContainerRabbitmqConfigImage: {get_param: ContainerRabbitmqConfigImage} + outputs: role_data: description: Role data for the Rabbitmq API role. @@ -108,9 +126,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerRabbitmqImage} + data: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerRabbitmqImage} + - {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::rabbitmq_bundle::rabbitmq_docker_control_port: 3122 tripleo::profile::pacemaker::rabbitmq_bundle::container_backend: {get_param: ContainerCli} @@ -124,7 +142,7 @@ outputs: - "\n" - - "['Rabbitmq_policy', 'Rabbitmq_user'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::base::rabbitmq" - config_image: {get_param: ContainerRabbitmqConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqConfigImage]} kolla_config: /var/lib/kolla/config_files/rabbitmq.json: command: /usr/sbin/pacemaker_remoted @@ -168,7 +186,7 @@ outputs: step_1: rabbitmq_bootstrap: start_order: 0 - image: {get_param: ContainerRabbitmqImage} + image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} net: host privileged: false volumes: @@ -200,7 +218,7 @@ outputs: - if: - {get_param: ConfigDebug} - - '--debug' - image: {get_param: ContainerRabbitmqImage} + image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -237,7 +255,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerRabbitmqImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} container_image_latest: *rabbitmq_image_pcmklatest - name: RabbitMQ Notify HA Wrappers Step when: step|int == 2 @@ -261,7 +279,7 @@ outputs: block: &rabbitmq_fetch_retag_container_tasks - name: Get container rabbitmq image set_fact: - rabbitmq_image: {get_param: ContainerRabbitmqImage} + rabbitmq_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} rabbitmq_image_latest: *rabbitmq_image_pcmklatest - name: Pull latest rabbitmq images command: "{{container_cli}} pull {{rabbitmq_image}}" diff --git a/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml index 33a05e5da7..3fa94a5709 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRabbitmqImage: description: image type: string + tags: + - role_specific ContainerRabbitmqConfigImage: description: The container image to use for the rabbitmq config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -81,6 +85,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRabbitmqImage: ContainerRabbitmqImage + ContainerRabbitmqConfigImage: ContainerRabbitmqConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRabbitmqImage: {get_param: ContainerRabbitmqImage} + ContainerRabbitmqConfigImage: {get_param: ContainerRabbitmqConfigImage} + outputs: role_data: description: Role data for the Rabbitmq API role. @@ -108,9 +126,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerRabbitmqImage} + data: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerRabbitmqImage} + - {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::rabbitmq_bundle::rabbitmq_docker_control_port: 3122 tripleo::profile::pacemaker::rabbitmq_bundle::container_backend: {get_param: ContainerCli} @@ -124,7 +142,7 @@ outputs: - "\n" - - "['Rabbitmq_policy', 'Rabbitmq_user'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::pacemaker::rabbitmq_bundle" - config_image: {get_param: ContainerRabbitmqConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqConfigImage]} kolla_config: /var/lib/kolla/config_files/rabbitmq.json: command: /usr/sbin/pacemaker_remoted @@ -168,7 +186,7 @@ outputs: step_1: rabbitmq_bootstrap: start_order: 0 - image: {get_param: ContainerRabbitmqImage} + image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} net: host privileged: false volumes: @@ -200,7 +218,7 @@ outputs: - if: - {get_param: ConfigDebug} - - '--debug' - image: {get_param: ContainerRabbitmqImage} + image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -242,7 +260,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerRabbitmqImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} container_image_latest: *rabbitmq_image_pcmklatest - name: RabbitMQ HA Wrappers Step when: step|int == 2 @@ -266,7 +284,7 @@ outputs: block: &rabbitmq_fetch_retag_container_tasks - name: Get container rabbitmq image set_fact: - rabbitmq_image: {get_param: ContainerRabbitmqImage} + rabbitmq_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} rabbitmq_image_latest: *rabbitmq_image_pcmklatest - name: Pull latest rabbitmq images command: "{{container_cli}} pull {{rabbitmq_image}}" diff --git a/deployment/rabbitmq/rabbitmq-messaging-rpc-container-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-rpc-container-puppet.yaml index 3202b090e9..cfb80ddb89 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-rpc-container-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-rpc-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRabbitmqImage: description: image type: string + tags: + - role_specific ContainerRabbitmqConfigImage: description: The container image to use for the rabbitmq config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -92,6 +96,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRabbitmqImage: ContainerRabbitmqImage + ContainerRabbitmqConfigImage: ContainerRabbitmqConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRabbitmqImage: {get_param: ContainerRabbitmqImage} + ContainerRabbitmqConfigImage: {get_param: ContainerRabbitmqConfigImage} + outputs: role_data: description: Role data for the Rabbitmq API role. @@ -158,7 +176,7 @@ outputs: - "\n" - - "['Rabbitmq_policy', 'Rabbitmq_user'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::base::rabbitmq" - config_image: &rabbitmq_config_image {get_param: ContainerRabbitmqConfigImage} + config_image: &rabbitmq_config_image {get_attr: [RoleParametersValue, value, ContainerRabbitmqConfigImage]} kolla_config: /var/lib/kolla/config_files/rabbitmq.json: command: /usr/lib/rabbitmq/bin/rabbitmq-server @@ -188,7 +206,7 @@ outputs: rabbitmq_init_logs: start_order: 0 detach: false - image: &rabbitmq_image {get_param: ContainerRabbitmqImage} + image: &rabbitmq_image {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} net: none privileged: false user: root diff --git a/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml index 8b9083aeb3..23adbc9913 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerRabbitmqImage: description: image type: string + tags: + - role_specific ContainerRabbitmqConfigImage: description: The container image to use for the rabbitmq config_volume type: string + tags: + - role_specific ClusterCommonTag: default: false description: When set to false, a pacemaker service is configured @@ -81,6 +85,20 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerRabbitmqImage: ContainerRabbitmqImage + ContainerRabbitmqConfigImage: ContainerRabbitmqConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerRabbitmqImage: {get_param: ContainerRabbitmqImage} + ContainerRabbitmqConfigImage: {get_param: ContainerRabbitmqConfigImage} + outputs: role_data: description: Role data for the Rabbitmq API role. @@ -108,9 +126,9 @@ outputs: if: - {get_param: ClusterCommonTag} - yaql: - data: {get_param: ContainerRabbitmqImage} + data: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} expression: concat("cluster.common.tag/", $.data.rightSplit(separator => "/", maxSplits => 1)[1]) - - {get_param: ContainerRabbitmqImage} + - {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} expression: concat($.data.rightSplit(separator => ":", maxSplits => 1)[0], ":pcmklatest") tripleo::profile::pacemaker::rabbitmq_bundle::rabbitmq_docker_control_port: 3122 tripleo::profile::pacemaker::rabbitmq_bundle::container_backend: {get_param: ContainerCli} @@ -124,7 +142,7 @@ outputs: - "\n" - - "['Rabbitmq_policy', 'Rabbitmq_user'].each |String $val| { noop_resource($val) }" - "include tripleo::profile::pacemaker::rabbitmq_bundle" - config_image: {get_param: ContainerRabbitmqConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqConfigImage]} kolla_config: /var/lib/kolla/config_files/rabbitmq.json: command: /usr/sbin/pacemaker_remoted @@ -168,7 +186,7 @@ outputs: step_1: rabbitmq_bootstrap: start_order: 0 - image: {get_param: ContainerRabbitmqImage} + image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} net: host privileged: false volumes: @@ -200,7 +218,7 @@ outputs: - if: - {get_param: ConfigDebug} - - '--debug' - image: {get_param: ContainerRabbitmqImage} + image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} volumes: list_concat: - {get_attr: [ContainersCommon, container_puppet_apply_volumes]} @@ -242,7 +260,7 @@ outputs: import_role: name: tripleo_container_tag vars: - container_image: {get_param: ContainerRabbitmqImage} + container_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} container_image_latest: *rabbitmq_image_pcmklatest - name: RabbitMQ RPC HA Wrappers Step when: step|int == 2 @@ -266,7 +284,7 @@ outputs: block: &rabbitmq_fetch_retag_container_tasks - name: Get container rabbitmq image set_fact: - rabbitmq_image: {get_param: ContainerRabbitmqImage} + rabbitmq_image: {get_attr: [RoleParametersValue, value, ContainerRabbitmqImage]} rabbitmq_image_latest: *rabbitmq_image_pcmklatest - name: Pull latest rabbitmq images command: "{{container_cli}} pull {{rabbitmq_image}}" diff --git a/deployment/swift/swift-proxy-container-puppet.yaml b/deployment/swift/swift-proxy-container-puppet.yaml index c32f3c08b1..4ad6c355cf 100644 --- a/deployment/swift/swift-proxy-container-puppet.yaml +++ b/deployment/swift/swift-proxy-container-puppet.yaml @@ -7,9 +7,13 @@ parameters: ContainerSwiftProxyImage: description: image type: string + tags: + - role_specific ContainerSwiftConfigImage: description: The container image to use for the swift config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -129,6 +133,20 @@ resources: EndpointMap: {get_param: EndpointMap} EnableInternalTLS: {get_param: EnableInternalTLS} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerSwiftProxyImage: ContainerSwiftProxyImage + ContainerSwiftConfigImage: ContainerSwiftConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerSwiftProxyImage: {get_param: ContainerSwiftProxyImage} + ContainerSwiftConfigImage: {get_param: ContainerSwiftConfigImage} + outputs: role_data: description: Role data for the swift proxy. @@ -279,7 +297,7 @@ outputs: puppet_tags: swift_config,swift_proxy_config,swift_keymaster_config step_config: | include tripleo::profile::base::swift::proxy - config_image: {get_param: ContainerSwiftConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerSwiftConfigImage]} kolla_config: /var/lib/kolla/config_files/swift_proxy.json: command: /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf @@ -366,7 +384,7 @@ outputs: - create_swift_secret: # NOTE: Barbican should be started before creating secrets start_order: 0 - image: &swift_proxy_image {get_param: ContainerSwiftProxyImage} + image: &swift_proxy_image {get_attr: [RoleParametersValue, value, ContainerSwiftProxyImage]} net: host detach: false volumes: diff --git a/deployment/swift/swift-ringbuilder-container-puppet.yaml b/deployment/swift/swift-ringbuilder-container-puppet.yaml index b826dafb54..6556e88b6c 100644 --- a/deployment/swift/swift-ringbuilder-container-puppet.yaml +++ b/deployment/swift/swift-ringbuilder-container-puppet.yaml @@ -7,6 +7,8 @@ parameters: ContainerSwiftConfigImage: description: The container image to use for the swift config_volume type: string + tags: + - role_specific ServiceData: default: {} description: Dictionary packing service data @@ -81,6 +83,20 @@ conditions: - get_param: SwiftRawDisks - {} +resources: + + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerSwiftConfigImage: ContainerSwiftConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerSwiftConfigImage: {get_param: ContainerSwiftConfigImage} + outputs: role_data: description: Role data for Swift Ringbuilder configuration in containers. @@ -114,7 +130,7 @@ outputs: puppet_tags: swift_config,exec,fetch_swift_ring_tarball,extract_swift_ring_tarball,ring_object_device,swift::ringbuilder::create,tripleo::profile::base::swift::add_devices,swift::ringbuilder::rebalance,create_swift_ring_tarball,upload_swift_ring_tarball step_config: | include tripleo::profile::base::swift::ringbuilder - config_image: &swift_ringbuilder_image {get_param: ContainerSwiftConfigImage} + config_image: &swift_ringbuilder_image {get_attr: [RoleParametersValue, value, ContainerSwiftConfigImage]} kolla_config: {} docker_config: step_3: diff --git a/deployment/swift/swift-storage-container-puppet.yaml b/deployment/swift/swift-storage-container-puppet.yaml index aea275ebf0..3822ffe214 100644 --- a/deployment/swift/swift-storage-container-puppet.yaml +++ b/deployment/swift/swift-storage-container-puppet.yaml @@ -7,18 +7,28 @@ parameters: ContainerSwiftProxyImage: description: image type: string + tags: + - role_specific ContainerSwiftAccountImage: description: image type: string + tags: + - role_specific ContainerSwiftContainerImage: description: image type: string + tags: + - role_specific ContainerSwiftObjectImage: description: image type: string + tags: + - role_specific ContainerSwiftConfigImage: description: The container image to use for the swift config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -162,6 +172,26 @@ resources: RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerSwiftProxyImage: ContainerSwiftProxyImage + ContainerSwiftAccountImage: ContainerSwiftAccountImage + ContainerSwiftContainerImage: ContainerSwiftContainerImage + ContainerSwiftObjectImage: ContainerSwiftObjectImage + ContainerSwiftConfigImage: ContainerSwiftConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerSwiftProxyImage: {get_param: ContainerSwiftProxyImage} + ContainerSwiftAccountImage: {get_param: ContainerSwiftAccountImage} + ContainerSwiftContainerImage: {get_param: ContainerSwiftContainerImage} + ContainerSwiftObjectImage: {get_param: ContainerSwiftObjectImage} + ContainerSwiftConfigImage: {get_param: ContainerSwiftConfigImage} + outputs: role_data: description: Role data for the swift storage services. @@ -246,7 +276,7 @@ outputs: - "define xinetd::service($bind='',$port='',$server='',$server_args='') {}" - "noop_resource('service')" - "include tripleo::profile::base::swift::storage" - config_image: {get_param: ContainerSwiftConfigImage} + config_image: {get_attr: [RoleParametersValue, value, ContainerSwiftConfigImage]} kolla_config: /var/lib/kolla/config_files/swift_account_auditor.json: command: /usr/bin/swift-account-auditor /etc/swift/account-server.conf @@ -374,7 +404,7 @@ outputs: # volume during the configuration stage. We just need to create this # directory and make sure it's owned by swift. swift_setup_srv: - image: &swift_account_image {get_param: ContainerSwiftAccountImage} + image: &swift_account_image {get_attr: [RoleParametersValue, value, ContainerSwiftAccountImage]} net: none user: root command: ['chown', '-R', 'swift:', '/srv/node'] @@ -406,7 +436,7 @@ outputs: environment: &kolla_env KOLLA_CONFIG_STRATEGY: COPY_ALWAYS swift_container_auditor: - image: &swift_container_image {get_param: ContainerSwiftContainerImage} + image: &swift_container_image {get_attr: [RoleParametersValue, value, ContainerSwiftContainerImage]} net: host user: swift restart: always @@ -422,7 +452,7 @@ outputs: - /var/log/containers/swift:/var/log/swift:z environment: *kolla_env swift_object_auditor: - image: &swift_object_image {get_param: ContainerSwiftObjectImage} + image: &swift_object_image {get_attr: [RoleParametersValue, value, ContainerSwiftObjectImage]} net: host user: swift restart: always @@ -564,7 +594,7 @@ outputs: - /var/log/containers/swift:/var/log/swift:z environment: *kolla_env swift_object_expirer: - image: &swift_proxy_image {get_param: ContainerSwiftProxyImage} + image: &swift_proxy_image {get_attr: [RoleParametersValue, value, ContainerSwiftProxyImage]} net: host user: swift restart: always diff --git a/deployment/unbound/unbound-container-ansible.yaml b/deployment/unbound/unbound-container-ansible.yaml index 4b1b37edcc..9dc7ae3566 100644 --- a/deployment/unbound/unbound-container-ansible.yaml +++ b/deployment/unbound/unbound-container-ansible.yaml @@ -7,9 +7,13 @@ parameters: ContainerUnboundImage: description: image type: string + tags: + - role_specific ContainerUnboundConfigImage: description: The container image to use for the unbound config_volume type: string + tags: + - role_specific EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set @@ -80,6 +84,20 @@ resources: ContainersCommon: type: ../containers-common.yaml + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - ContainerUnboundImage: ContainerUnboundImage + ContainerUnboundConfigImage: ContainerUnboundConfigImage + - values: {get_param: [RoleParameters]} + - values: + ContainerUnboundImage: {get_param: ContainerUnboundImage} + ContainerUnboundConfigImage: {get_param: ContainerUnboundConfigImage} + outputs: role_data: description: Role data for the Unbound instance. @@ -115,7 +133,7 @@ outputs: step_3: unbound: start_order: 1 - image: {get_param: ContainerUnboundImage} + image: {get_attr: [RoleParametersValue, value, ContainerUnboundImage]} net: host privileged: false restart: always