From 0de7bc09f3d2c8ad4403046703ce91f9ead980fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Jeanneret?= Date: Thu, 13 Dec 2018 09:29:58 +0100 Subject: [PATCH] Flatten Zaqar service configuration This change combines the previous puppet and docker files into a single file that performs the docker service installation and configuration. With this patch the baremetal version of zaqar service has been removed. Change-Id: I8947d2fc5e5672e701d2802cd14a3fa176877a7d Related-Blueprint: services-yaml-flattening --- .../scenario002-multinode-containers.yaml | 2 +- ci/environments/scenario002-standalone.yaml | 2 +- .../zaqar/zaqar-container-puppet.yaml | 189 +++++++++++++-- docker/services/zaqar.yaml | 218 ------------------ environments/docker-uc-light.yaml | 2 +- environments/services-baremetal/zaqar.yaml | 3 - .../services/zaqar-swift-backend.yaml | 2 +- environments/services/zaqar.yaml | 2 +- ...drop-baremetal-zaqar-abe0f9cae9c87879.yaml | 3 + 9 files changed, 181 insertions(+), 242 deletions(-) rename puppet/services/zaqar-api.yaml => deployment/zaqar/zaqar-container-puppet.yaml (57%) delete mode 100644 docker/services/zaqar.yaml delete mode 100644 environments/services-baremetal/zaqar.yaml create mode 100644 releasenotes/notes/drop-baremetal-zaqar-abe0f9cae9c87879.yaml diff --git a/ci/environments/scenario002-multinode-containers.yaml b/ci/environments/scenario002-multinode-containers.yaml index b9cd5f7173..627fad17d3 100644 --- a/ci/environments/scenario002-multinode-containers.yaml +++ b/ci/environments/scenario002-multinode-containers.yaml @@ -2,7 +2,7 @@ resource_registry: OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml OS::TripleO::Services::BarbicanApi: ../../docker/services/barbican-api.yaml - OS::TripleO::Services::Zaqar: ../../docker/services/zaqar.yaml + OS::TripleO::Services::Zaqar: ../../deployment/zaqar/zaqar-container-puppet.yaml OS::TripleO::Services::Ec2Api: ../../docker/services/ec2-api.yaml OS::TripleO::Services::PankoApi: ../../docker/services/panko-api.yaml OS::TripleO::Services::OsloMessagingRpc: ../../docker/services/pacemaker/rpc-rabbitmq.yaml diff --git a/ci/environments/scenario002-standalone.yaml b/ci/environments/scenario002-standalone.yaml index a331f0dd52..3270df2a07 100644 --- a/ci/environments/scenario002-standalone.yaml +++ b/ci/environments/scenario002-standalone.yaml @@ -1,6 +1,6 @@ resource_registry: OS::TripleO::Services::BarbicanApi: ../../docker/services/barbican-api.yaml - OS::TripleO::Services::Zaqar: ../../docker/services/zaqar.yaml + OS::TripleO::Services::Zaqar: ../../deployment/zaqar/zaqar-container-puppet.yaml OS::TripleO::Services::Ec2Api: ../../docker/services/ec2-api.yaml OS::TripleO::Services::PankoApi: ../../docker/services/panko-api.yaml OS::TripleO::Services::OsloMessagingRpc: ../../docker/services/pacemaker/rpc-rabbitmq.yaml diff --git a/puppet/services/zaqar-api.yaml b/deployment/zaqar/zaqar-container-puppet.yaml similarity index 57% rename from puppet/services/zaqar-api.yaml rename to deployment/zaqar/zaqar-container-puppet.yaml index 190899290f..256a25dd91 100644 --- a/puppet/services/zaqar-api.yaml +++ b/deployment/zaqar/zaqar-container-puppet.yaml @@ -1,9 +1,24 @@ heat_template_version: rocky description: > - Openstack Zaqar service. Shared for all Heat services. + OpenStack containerized Zaqar services parameters: + DockerZaqarImage: + description: image + type: string + DockerZaqarConfigImage: + description: The container image to use for the zaqar config_volume + type: string + ZaqarManagementStore: + type: string + description: The management store for Zaqar + default: redis + 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 @@ -14,11 +29,6 @@ parameters: via parameter_defaults in the resource registry. This mapping overrides those in ServiceNetMapDefaults. type: json - EndpointMap: - default: {} - description: Mapping of service endpoint -> protocol. Typically set - via parameter_defaults in the resource registry. - type: json DefaultPasswords: default: {} type: json @@ -30,10 +40,17 @@ parameters: default: {} description: Parameters specific to the role type: json - Debug: - default: false - description: Set to True to enable debugging on all services. + EnableInternalTLS: type: boolean + default: false + UpgradeRemoveUnusedPackages: + default: false + description: Remove package if the service is being disabled during upgrade + type: boolean + Debug: + type: boolean + description: Set to True to enable debugging on all services. + default: false ZaqarDebug: default: '' description: Set to True to enable debugging Zaqar service. @@ -75,16 +92,17 @@ parameters: hidden: true conditions: - zaqar_workers_zero: {equals : [{get_param: ZaqarWorkers}, 0]} + internal_tls_enabled: {get_param: EnableInternalTLS} service_debug_unset: {equals : [{get_param: ZaqarDebug}, '']} + zaqar_management_store_sqlalchemy: {equals : [{get_param: ZaqarManagementStore}, 'sqlalchemy']} + zaqar_workers_zero: {equals : [{get_param: ZaqarWorkers}, 0]} zaqar_messaging_store_swift: {equals : [{get_param: ZaqarMessageStore}, 'swift']} zaqar_messaging_store_redis: {equals : [{get_param: ZaqarMessageStore}, 'redis']} - zaqar_management_store_sqlalchemy: {equals : [{get_param: ZaqarManagementStore}, 'sqlalchemy']} resources: ApacheServiceBase: - type: ./apache.yaml + type: ../../puppet/services/apache.yaml properties: ServiceData: {get_param: ServiceData} ServiceNetMap: {get_param: ServiceNetMap} @@ -92,9 +110,15 @@ resources: EndpointMap: {get_param: EndpointMap} EnableInternalTLS: {get_param: EnableInternalTLS} + ContainersCommon: + type: ../../docker/services/containers-common.yaml + + MySQLClient: + type: ../../puppet/services/database/mysql-client.yaml + outputs: role_data: - description: Shared role data for the Zaqar services. + description: Role data for the Zaqar API role. value: service_name: zaqar_api config_settings: @@ -218,8 +242,141 @@ outputs: - '%' - "%{hiera('mysql_bind_host')}" - {} - step_config: | - include ::tripleo::profile::base::zaqar + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: zaqar + puppet_tags: zaqar_config + step_config: + list_join: + - "\n" + - - include ::tripleo::profile::base::zaqar + - {get_attr: [MySQLClient, role_data, step_config]} + config_image: {get_param: DockerZaqarConfigImage} + kolla_config: + /var/lib/kolla/config_files/zaqar.json: + command: /usr/sbin/httpd -DFOREGROUND + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + /var/lib/kolla/config_files/zaqar_websocket.json: + command: /usr/bin/zaqar-server --config-file /etc/zaqar/zaqar.conf --config-file /etc/zaqar/1.conf + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/zaqar + owner: zaqar:zaqar + recurse: true + docker_config: + map_merge: + - + if: + - zaqar_management_store_sqlalchemy + - + step_2: + zaqar_init_log: + image: &zaqar_image {get_param: DockerZaqarImage} + user: root + volumes: + - /var/log/containers/zaqar:/var/log/zaqar + - /var/log/containers/httpd/zaqar:/var/log/httpd + command: ['/bin/bash', '-c', 'chown -R zaqar:zaqar /var/log/zaqar'] + step_3: + zaqar_db_sync: + image: *zaqar_image + net: host + privileged: false + detach: false + user: root + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /var/lib/config-data/zaqar/etc/zaqar/:/etc/zaqar/:ro + - /var/log/containers/zaqar:/var/log/zaqar + - /var/log/containers/httpd/zaqar:/var/log/httpd + command: "/usr/bin/bootstrap_host_exec zaqar_api su zaqar -s /bin/bash -c 'zaqar-sql-db-manage upgrade head'" + - {} + - step_4: + zaqar: + image: *zaqar_image + net: host + privileged: false + restart: always + # NOTE(mandre) kolla image changes the user to 'zaqar', we need it + # to be root to run httpd + user: root + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /var/lib/kolla/config_files/zaqar.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/zaqar/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/zaqar:/var/log/zaqar + - /var/log/containers/httpd/zaqar:/var/log/httpd + - + if: + - internal_tls_enabled + - /etc/pki/tls/certs/httpd:/etc/pki/tls/certs/httpd:ro + - '' + - + if: + - internal_tls_enabled + - /etc/pki/tls/private/httpd:/etc/pki/tls/private/httpd:ro + - '' + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + zaqar_websocket: + image: *zaqar_image + net: host + privileged: false + restart: always + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - + - /var/lib/kolla/config_files/zaqar_websocket.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/zaqar/:/var/lib/kolla/config_files/src:ro + - /var/log/containers/zaqar:/var/log/zaqar + - /var/log/containers/httpd/zaqar:/var/log/httpd + environment: + - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS + host_prep_tasks: + - name: create persistent logs directory + file: + path: "{{ item }}" + state: directory + with_items: + - /var/log/containers/zaqar + - /var/log/containers/httpd/zaqar + - name: zaqar logs readme + copy: + dest: /var/log/zaqar/readme.txt + content: | + Log files from zaqar containers can be found under + /var/log/containers/zaqar and /var/log/containers/httpd/zaqar. + ignore_errors: true + upgrade_tasks: + - when: step|int == 3 + block: + - name: Set fact for removal of openstack-zaqar package + set_fact: + remove_zaqar_package: {get_param: UpgradeRemoveUnusedPackages} + - name: Remove openstack-zaqar package if operator requests it + package: name=openstack-zaqar state=removed + ignore_errors: True + when: remove_zaqar_package|bool + post_upgrade_tasks: + - when: step|int == 1 + import_role: + name: tripleo-docker-rm + vars: + containers_to_rm: + - zaqar + - zaqar_websocket metadata_settings: get_attr: [ApacheServiceBase, role_data, metadata_settings] - upgrade_tasks: [] diff --git a/docker/services/zaqar.yaml b/docker/services/zaqar.yaml deleted file mode 100644 index 6241ac0594..0000000000 --- a/docker/services/zaqar.yaml +++ /dev/null @@ -1,218 +0,0 @@ -heat_template_version: rocky - -description: > - OpenStack containerized Zaqar services - -parameters: - DockerZaqarImage: - description: image - type: string - DockerZaqarConfigImage: - description: The container image to use for the zaqar config_volume - type: string - ZaqarManagementStore: - type: string - description: The management store for Zaqar - default: redis - 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 - EnableInternalTLS: - type: boolean - default: false - UpgradeRemoveUnusedPackages: - default: false - description: Remove package if the service is being disabled during upgrade - type: boolean - -conditions: - zaqar_management_store_sqlalchemy: {equals : [{get_param: ZaqarManagementStore}, 'sqlalchemy']} - internal_tls_enabled: {get_param: EnableInternalTLS} - -resources: - - ContainersCommon: - type: ./containers-common.yaml - - MySQLClient: - type: ../../puppet/services/database/mysql-client.yaml - - ZaqarBase: - type: ../../puppet/services/zaqar-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} - EnableInternalTLS: {get_param: EnableInternalTLS} - -outputs: - role_data: - description: Role data for the Zaqar API role. - value: - service_name: {get_attr: [ZaqarBase, role_data, service_name]} - config_settings: {get_attr: [ZaqarBase, role_data, config_settings]} - service_config_settings: {get_attr: [ZaqarBase, role_data, service_config_settings]} - # BEGIN DOCKER SETTINGS - puppet_config: - config_volume: zaqar - puppet_tags: zaqar_config - step_config: - list_join: - - "\n" - - - {get_attr: [ZaqarBase, role_data, step_config]} - - {get_attr: [MySQLClient, role_data, step_config]} - config_image: {get_param: DockerZaqarConfigImage} - kolla_config: - /var/lib/kolla/config_files/zaqar.json: - command: /usr/sbin/httpd -DFOREGROUND - config_files: - - source: "/var/lib/kolla/config_files/src/*" - dest: "/" - merge: true - preserve_properties: true - /var/lib/kolla/config_files/zaqar_websocket.json: - command: /usr/bin/zaqar-server --config-file /etc/zaqar/zaqar.conf --config-file /etc/zaqar/1.conf - config_files: - - source: "/var/lib/kolla/config_files/src/*" - dest: "/" - merge: true - preserve_properties: true - permissions: - - path: /var/log/zaqar - owner: zaqar:zaqar - recurse: true - docker_config: - map_merge: - - - if: - - zaqar_management_store_sqlalchemy - - - step_2: - zaqar_init_log: - image: &zaqar_image {get_param: DockerZaqarImage} - user: root - volumes: - - /var/log/containers/zaqar:/var/log/zaqar - - /var/log/containers/httpd/zaqar:/var/log/httpd - command: ['/bin/bash', '-c', 'chown -R zaqar:zaqar /var/log/zaqar'] - step_3: - zaqar_db_sync: - image: *zaqar_image - net: host - privileged: false - detach: false - user: root - volumes: - list_concat: - - {get_attr: [ContainersCommon, volumes]} - - - - /var/lib/config-data/zaqar/etc/zaqar/:/etc/zaqar/:ro - - /var/log/containers/zaqar:/var/log/zaqar - - /var/log/containers/httpd/zaqar:/var/log/httpd - command: "/usr/bin/bootstrap_host_exec zaqar_api su zaqar -s /bin/bash -c 'zaqar-sql-db-manage upgrade head'" - - {} - - step_4: - zaqar: - image: *zaqar_image - net: host - privileged: false - restart: always - # NOTE(mandre) kolla image changes the user to 'zaqar', we need it - # to be root to run httpd - user: root - volumes: - list_concat: - - {get_attr: [ContainersCommon, volumes]} - - - - /var/lib/kolla/config_files/zaqar.json:/var/lib/kolla/config_files/config.json:ro - - /var/lib/config-data/puppet-generated/zaqar/:/var/lib/kolla/config_files/src:ro - - /var/log/containers/zaqar:/var/log/zaqar - - /var/log/containers/httpd/zaqar:/var/log/httpd - - - if: - - internal_tls_enabled - - /etc/pki/tls/certs/httpd:/etc/pki/tls/certs/httpd:ro - - '' - - - if: - - internal_tls_enabled - - /etc/pki/tls/private/httpd:/etc/pki/tls/private/httpd:ro - - '' - environment: - - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS - zaqar_websocket: - image: *zaqar_image - net: host - privileged: false - restart: always - volumes: - list_concat: - - {get_attr: [ContainersCommon, volumes]} - - - - /var/lib/kolla/config_files/zaqar_websocket.json:/var/lib/kolla/config_files/config.json:ro - - /var/lib/config-data/puppet-generated/zaqar/:/var/lib/kolla/config_files/src:ro - - /var/log/containers/zaqar:/var/log/zaqar - - /var/log/containers/httpd/zaqar:/var/log/httpd - environment: - - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS - host_prep_tasks: - - name: create persistent logs directory - file: - path: "{{ item }}" - state: directory - with_items: - - /var/log/containers/zaqar - - /var/log/containers/httpd/zaqar - - name: zaqar logs readme - copy: - dest: /var/log/zaqar/readme.txt - content: | - Log files from zaqar containers can be found under - /var/log/containers/zaqar and /var/log/containers/httpd/zaqar. - ignore_errors: true - upgrade_tasks: - - when: step|int == 3 - block: - - name: Set fact for removal of openstack-zaqar package - set_fact: - remove_zaqar_package: {get_param: UpgradeRemoveUnusedPackages} - - name: Remove openstack-zaqar package if operator requests it - package: name=openstack-zaqar state=removed - ignore_errors: True - when: remove_zaqar_package|bool - post_upgrade_tasks: - - when: step|int == 1 - import_role: - name: tripleo-docker-rm - vars: - containers_to_rm: - - zaqar - - zaqar_websocket - metadata_settings: - get_attr: [ZaqarBase, role_data, metadata_settings] diff --git a/environments/docker-uc-light.yaml b/environments/docker-uc-light.yaml index 7b8a133dbf..bc77dff95f 100644 --- a/environments/docker-uc-light.yaml +++ b/environments/docker-uc-light.yaml @@ -25,7 +25,7 @@ resource_registry: OS::TripleO::Services::SwiftProxy: ../docker/services/swift-proxy.yaml OS::TripleO::Services::SwiftRingBuilder: ../docker/services/swift-ringbuilder.yaml OS::TripleO::Services::SwiftStorage: ../docker/services/swift-storage.yaml - OS::TripleO::Services::Zaqar: ../docker/services/zaqar.yaml + OS::TripleO::Services::Zaqar: ../deployment/zaqar/zaqar-container-puppet.yaml parameter_defaults: ZaqarMessageStore: 'swift' diff --git a/environments/services-baremetal/zaqar.yaml b/environments/services-baremetal/zaqar.yaml deleted file mode 100644 index e501b69cfa..0000000000 --- a/environments/services-baremetal/zaqar.yaml +++ /dev/null @@ -1,3 +0,0 @@ -resource_registry: - OS::TripleO::Services::Zaqar: ../../puppet/services/zaqar.yaml - OS::TripleO::Services::MongoDb: ../../puppet/services/database/mongodb.yaml diff --git a/environments/services/zaqar-swift-backend.yaml b/environments/services/zaqar-swift-backend.yaml index 2cc486a96a..b4f40b7f45 100644 --- a/environments/services/zaqar-swift-backend.yaml +++ b/environments/services/zaqar-swift-backend.yaml @@ -1,4 +1,4 @@ # Env file to enable zaqar without makins use of Redis as a backend resource_registry: - OS::TripleO::Services::Zaqar: ../../docker/services/zaqar.yaml + OS::TripleO::Services::Zaqar: ../../deployment/zaqar/zaqar-container-puppet.yaml OS::TripleO::Services::Redis: OS::Heat::None diff --git a/environments/services/zaqar.yaml b/environments/services/zaqar.yaml index 13b095db46..054ba91f84 100644 --- a/environments/services/zaqar.yaml +++ b/environments/services/zaqar.yaml @@ -1,3 +1,3 @@ resource_registry: - OS::TripleO::Services::Zaqar: ../../docker/services/zaqar.yaml + OS::TripleO::Services::Zaqar: ../../deployment/zaqar/zaqar-container-puppet.yaml OS::TripleO::Services::Redis : ../../docker/services/database/redis.yaml diff --git a/releasenotes/notes/drop-baremetal-zaqar-abe0f9cae9c87879.yaml b/releasenotes/notes/drop-baremetal-zaqar-abe0f9cae9c87879.yaml new file mode 100644 index 0000000000..dcfe06f1e0 --- /dev/null +++ b/releasenotes/notes/drop-baremetal-zaqar-abe0f9cae9c87879.yaml @@ -0,0 +1,3 @@ +--- +upgrade: + - Installing zaqar on baremetal is no longer supported