From c2c908a9505f8fc0025f0d1fd9b73a0db29798c0 Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Thu, 18 Jan 2018 21:36:22 +0000 Subject: [PATCH] Containerized Designate bp designate-support Change-Id: I722d14b1dc47a30936a81a30363a4d7ebf54ea86 --- docker/services/designate-api.yaml | 154 +++++++++++++++++++++ docker/services/designate-central.yaml | 172 ++++++++++++++++++++++++ docker/services/designate-mdns.yaml | 134 ++++++++++++++++++ docker/services/designate-producer.yaml | 130 ++++++++++++++++++ docker/services/designate-sink.yaml | 130 ++++++++++++++++++ docker/services/designate-worker.yaml | 163 ++++++++++++++++++++++ 6 files changed, 883 insertions(+) create mode 100644 docker/services/designate-api.yaml create mode 100644 docker/services/designate-central.yaml create mode 100644 docker/services/designate-mdns.yaml create mode 100644 docker/services/designate-producer.yaml create mode 100644 docker/services/designate-sink.yaml create mode 100644 docker/services/designate-worker.yaml diff --git a/docker/services/designate-api.yaml b/docker/services/designate-api.yaml new file mode 100644 index 0000000000..b05fb79a9a --- /dev/null +++ b/docker/services/designate-api.yaml @@ -0,0 +1,154 @@ +heat_template_version: queens + +description: > + OpenStack containerized Designate API service + +parameters: + DockerDesignateApiImage: + description: image + type: string + DockerDesignateConfigImage: + description: The container image to use for the designate config_volume + type: string + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + DesignateWorkers: + default: 0 + description: Number of workers for Designate services. + type: number + DesignatePassword: + description: The password for the Designate's database account. + type: string + hidden: true + +conditions: + designate_workers_zero: {equals : [{get_param: DesignateWorkers}, 0]} + +resources: + + ContainersCommon: + type: ./containers-common.yaml + + DesignateBase: + type: ../../puppet/services/designate-base.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + + DesignateApiBase: + type: ../../puppet/services/designate-api.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the Designate API role. + value: + service_name: {get_attr: [DesignateApiBase, role_data, service_name]} + config_settings: + map_merge: + - get_attr: [DesignateBase, role_data, config_settings] + - designate::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] } + designate::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} + designate::keystone::authtoken::project_name: 'service' + designate::keystone::authtoken::password: {get_param: DesignatePassword} + tripleo::profile::base::designate::api::listen_ip: + str_replace: + template: + "%{hiera('$NETWORK')}" + params: + $NETWORK: {get_param: [ServiceNetMap, DesignateApiNetwork]} + tripleo::profile::base::designate::api::listen_port: 9001 + tripleo.designate_api.firewall_rules: + '139 designate api': + dport: + - 9001 + - 13001 + - + if: + - designate_workers_zero + - {} + - designate::api::workers: {get_param: DesignateWorkers} + logging_source: {get_attr: [DesignateApiBase, role_data, logging_source]} + logging_groups: {get_attr: [DesignateApiBase, role_data, logging_groups]} + service_config_settings: {get_attr: [DesignateApiBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: designate + puppet_tags: designate_config + step_config: {get_attr: [DesignateApiBase, role_data, step_config]} + config_image: {get_param: DockerDesignateConfigImage} + kolla_config: + /var/lib/kolla/config_files/designate_api.json: + command: /usr/bin/designate-api --config-file=/etc/designate/designate.conf --log-file=/var/log/designate/api.log + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + docker_config: + step_4: + designate_api: + start_order: 15 + image: &designate_api_image {get_param: DockerDesignateApiImage} + net: host + privileged: false + restart: always + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /var/lib/kolla/config_files/designate_api.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + host_prep_tasks: + - name: create persistent logs directory + file: + path: /var/log/containers/designate + state: directory + - name: designate logs readme + copy: + dest: /var/log/designate/readme.txt + content: | + Log files from designate containers can be found under + /var/log/containers/designate. + ignore_errors: true diff --git a/docker/services/designate-central.yaml b/docker/services/designate-central.yaml new file mode 100644 index 0000000000..4f2a197daf --- /dev/null +++ b/docker/services/designate-central.yaml @@ -0,0 +1,172 @@ +heat_template_version: queens + +description: > + OpenStack containerized Designate Central service + +parameters: + DockerDesignateCentralImage: + description: image + type: string + DockerDesignateConfigImage: + description: The container image to use for the designate config_volume + type: string + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + + +resources: + + ContainersCommon: + type: ./containers-common.yaml + + MySQLClient: + type: ../../puppet/services/database/mysql-client.yaml + + DesignateBase: + type: ../../puppet/services/designate-base.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + + DesignateCentralBase: + type: ../../puppet/services/designate-central.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the Designate Central role. + value: + service_name: {get_attr: [DesignateCentralBase, role_data, service_name]} + config_settings: + map_merge: + - get_attr: [DesignateBase, role_data, config_settings] + - get_attr: [DesignateCentralBase, role_data, config_settings] + logging_source: {get_attr: [DesignateCentralBase, role_data, logging_source]} + logging_groups: {get_attr: [DesignateCentralBase, role_data, logging_groups]} + service_config_settings: {get_attr: [DesignateCentralBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: designate + puppet_tags: designate_config + step_config: + list_join: + - "\n" + - - {get_attr: [DesignateBase, role_data, step_config]} + - {get_attr: [DesignateCentralBase, role_data, step_config]} + - {get_attr: [MySQLClient, role_data, step_config]} + config_image: {get_param: DockerDesignateConfigImage} + 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 + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + docker_config: + # db sync runs before permissions set by kolla_config + step_2: + designate_init_logs: + image: &designate_central_image {get_param: DockerDesignateCentralImage} + privileged: false + user: root + volumes: + - /var/log/containers/designate:/var/log/designate + command: ['/bin/bash', '-c', 'chown -R designate:designate /var/log/designate'] + step_3: + designate_db_sync: + image: *designate_central_image + net: host + privileged: false + detach: false + user: root + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /var/lib/config-data/designate/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro + - /var/lib/config-data/designate/etc/designate/:/etc/designate/:ro + - /var/log/containers/designate:/var/log/designate + command: "/usr/bin/bootstrap_host_exec designate_central su designate -s /bin/bash -c 'designate-manage --config-file /etc/designate/designate.conf database sync'" + step_4: + designate_central: + image: *designate_central_image + net: host + privileged: false + restart: always + healthcheck: + test: /openstack/healthcheck + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /run:/run + - /var/lib/kolla/config_files/designate_central.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + step_5: + designate_pool_manage: + image: *designate_central_image + net: host + privileged: false + detach: false + user: designate + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /var/lib/config-data/designate/etc/designate/:/etc/designate/:ro + - /var/log/containers/designate:/var/log/designate + command: "/bin/designate-manage pool update" + host_prep_tasks: + - name: create persistent logs directory + file: + path: /var/log/containers/designate + state: directory + - name: designate logs readme + copy: + dest: /var/log/designate/readme.txt + content: | + Log files from designate containers can be found under + /var/log/containers/designate. + ignore_errors: true diff --git a/docker/services/designate-mdns.yaml b/docker/services/designate-mdns.yaml new file mode 100644 index 0000000000..4106170c16 --- /dev/null +++ b/docker/services/designate-mdns.yaml @@ -0,0 +1,134 @@ +heat_template_version: queens + +description: > + OpenStack containerized Designate MiniDNS service + +parameters: + DockerDesignateMDNSImage: + description: image + type: string + DockerDesignateConfigImage: + description: The container image to use for the designate config_volume + type: string + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + + +resources: + + ContainersCommon: + type: ./containers-common.yaml + + MySQLClient: + type: ../../puppet/services/database/mysql-client.yaml + + DesignateBase: + type: ../../puppet/services/designate-base.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + + DesignateMDNSBase: + type: ../../puppet/services/designate-mdns.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the Designate MDNS role. + value: + service_name: {get_attr: [DesignateMDNSBase, role_data, service_name]} + config_settings: + map_merge: + - get_attr: [DesignateBase, role_data, config_settings] + - get_attr: [DesignateMDNSBase, role_data, config_settings] + logging_source: {get_attr: [DesignateMDNSBase, role_data, logging_source]} + logging_groups: {get_attr: [DesignateMDNSBase, role_data, logging_groups]} + service_config_settings: {get_attr: [DesignateMDNSBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: designate + puppet_tags: designate_config + step_config: + list_join: + - "\n" + - - {get_attr: [DesignateBase, role_data, step_config]} + - {get_attr: [DesignateMDNSBase, role_data, step_config]} + - {get_attr: [MySQLClient, role_data, step_config]} + config_image: {get_param: DockerDesignateConfigImage} + 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 + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + docker_config: + step_4: + designate_mdns: + image: &designate_mdns_image {get_param: DockerDesignateMDNSImage} + net: host + privileged: false + restart: always + healthcheck: + test: /openstack/healthcheck + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /run:/run + - /var/lib/kolla/config_files/designate_mdns.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + host_prep_tasks: + - name: create persistent logs directory + file: + path: /var/log/containers/designate + state: directory + - name: designate logs readme + copy: + dest: /var/log/designate/readme.txt + content: | + Log files from designate containers can be found under + /var/log/containers/designate. + ignore_errors: true diff --git a/docker/services/designate-producer.yaml b/docker/services/designate-producer.yaml new file mode 100644 index 0000000000..5209e80b50 --- /dev/null +++ b/docker/services/designate-producer.yaml @@ -0,0 +1,130 @@ +heat_template_version: queens + +description: > + OpenStack containerized Designate Producer service + +parameters: + DockerDesignateProducerImage: + description: image + type: string + DockerDesignateConfigImage: + description: The container image to use for the designate config_volume + type: string + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + + +resources: + + ContainersCommon: + type: ./containers-common.yaml + + DesignateBase: + type: ../../puppet/services/designate-base.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + + DesignateProducerBase: + type: ../../puppet/services/designate-producer.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the Designate Producer role. + value: + service_name: {get_attr: [DesignateProducerBase, role_data, service_name]} + config_settings: + map_merge: + - get_attr: [DesignateBase, role_data, config_settings] + - get_attr: [DesignateProducerBase, role_data, config_settings] + logging_source: {get_attr: [DesignateProducerBase, role_data, logging_source]} + logging_groups: {get_attr: [DesignateProducerBase, role_data, logging_groups]} + service_config_settings: {get_attr: [DesignateProducerBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: designate + puppet_tags: designate_config + step_config: + list_join: + - "\n" + - - {get_attr: [DesignateBase, role_data, step_config]} + - {get_attr: [DesignateProducerBase, role_data, step_config]} + config_image: {get_param: DockerDesignateConfigImage} + 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 + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + docker_config: + step_4: + designate_producer: + image: &designate_producer_image {get_param: DockerDesignateProducerImage} + net: host + privileged: false + restart: always + healthcheck: + test: /openstack/healthcheck + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /run:/run + - /var/lib/kolla/config_files/designate_producer.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + host_prep_tasks: + - name: create persistent logs directory + file: + path: /var/log/containers/designate + state: directory + - name: designate logs readme + copy: + dest: /var/log/designate/readme.txt + content: | + Log files from designate containers can be found under + /var/log/containers/designate. + ignore_errors: true diff --git a/docker/services/designate-sink.yaml b/docker/services/designate-sink.yaml new file mode 100644 index 0000000000..627561b7ee --- /dev/null +++ b/docker/services/designate-sink.yaml @@ -0,0 +1,130 @@ +heat_template_version: queens + +description: > + OpenStack containerized Designate Sink service + +parameters: + DockerDesignateSinkImage: + description: image + type: string + DockerDesignateConfigImage: + description: The container image to use for the designate config_volume + type: string + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + + +resources: + + ContainersCommon: + type: ./containers-common.yaml + + DesignateBase: + type: ../../puppet/services/designate-base.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + + DesignateSinkBase: + type: ../../puppet/services/designate-sink.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the Designate Sink role. + value: + service_name: {get_attr: [DesignateSinkBase, role_data, service_name]} + config_settings: + map_merge: + - get_attr: [DesignateBase, role_data, config_settings] + - get_attr: [DesignateSinkBase, role_data, config_settings] + logging_source: {get_attr: [DesignateSinkBase, role_data, logging_source]} + logging_groups: {get_attr: [DesignateSinkBase, role_data, logging_groups]} + service_config_settings: {get_attr: [DesignateSinkBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: designate + puppet_tags: designate_config + step_config: + list_join: + - "\n" + - - {get_attr: [DesignateBase, role_data, step_config]} + - {get_attr: [DesignateSinkBase, role_data, step_config]} + config_image: {get_param: DockerDesignateConfigImage} + 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 + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + docker_config: + step_4: + designate_sink: + image: &designate_sink_image {get_param: DockerDesignateSinkImage} + net: host + privileged: false + restart: always + healthcheck: + test: /openstack/healthcheck + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /run:/run + - /var/lib/kolla/config_files/designate_sink.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + host_prep_tasks: + - name: create persistent logs directory + file: + path: /var/log/containers/designate + state: directory + - name: designate logs readme + copy: + dest: /var/log/designate/readme.txt + content: | + Log files from designate containers can be found under + /var/log/containers/designate. + ignore_errors: true diff --git a/docker/services/designate-worker.yaml b/docker/services/designate-worker.yaml new file mode 100644 index 0000000000..25ada68964 --- /dev/null +++ b/docker/services/designate-worker.yaml @@ -0,0 +1,163 @@ +heat_template_version: queens + +description: > + OpenStack containerized Designate Worker service + +parameters: + DockerDesignateWorkerImage: + description: image + type: string + DockerDesignateBackendBIND9Image: + description: image + type: string + DockerDesignateConfigImage: + description: The container image to use for the designate config_volume + type: string + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + + +resources: + + ContainersCommon: + type: ./containers-common.yaml + + DesignateBase: + type: ../../puppet/services/designate-base.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + + DesignateWorkerBase: + type: ../../puppet/services/designate-worker.yaml + properties: + EndpointMap: {get_param: EndpointMap} + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + +outputs: + role_data: + description: Role data for the Designate Worker role. + value: + service_name: {get_attr: [DesignateWorkerBase, role_data, service_name]} + config_settings: + map_merge: + - get_attr: [DesignateBase, role_data, config_settings] + - get_attr: [DesignateWorkerBase, role_data, config_settings] + logging_source: {get_attr: [DesignateWorkerBase, role_data, logging_source]} + logging_groups: {get_attr: [DesignateWorkerBase, role_data, logging_groups]} + service_config_settings: {get_attr: [DesignateWorkerBase, role_data, service_config_settings]} + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: designate + puppet_tags: designate_config,dns_config,exec + step_config: + list_join: + - "\n" + - - {get_attr: [DesignateBase, role_data, step_config]} + - {get_attr: [DesignateWorkerBase, role_data, step_config]} + - include ::designate::backend::bind9 + config_image: {get_param: DockerDesignateConfigImage} + 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 + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + /var/lib/kolla/config_files/designate_backend_bind9.json: + command: /usr/sbin/named -u named -c /etc/named.conf -f -g + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/designate + owner: designate:designate + recurse: true + - path: /var/named + owner: root:named + perm: '0770' + docker_config: + step_4: + designate_worker: + image: &designate_worker_image {get_param: DockerDesignateWorkerImage} + net: host + privileged: false + restart: always + healthcheck: + test: /openstack/healthcheck + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /run:/run + - /var/lib/kolla/config_files/designate_worker.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + designate_backend_bind9: + image: {get_param: DockerDesignateBackendBIND9Image} + net: host + privileged: true + restart: always + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /run:/run + - /var/lib/kolla/config_files/designate_backend_bind9.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/designate/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/designate:/var/log/designate + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + host_prep_tasks: + - name: create persistent logs directory + file: + path: /var/log/containers/designate + state: directory + - name: designate logs readme + copy: + dest: /var/log/designate/readme.txt + content: | + Log files from designate containers can be found under + /var/log/containers/designate. + ignore_errors: true