From 555178160bcee2ec711a653790d68d6e57c41666 Mon Sep 17 00:00:00 2001 From: Lee Yarwood Date: Fri, 7 Dec 2018 23:00:51 +0000 Subject: [PATCH] placement: Introduce an extracted PlacementAPI service This change introduces an optional extracted version of the Placement service into TripleO. This extracted version will only be required once the Placement service is fully removed from Nova during the T cycle (previously S but delayed) at which point the corresponding NovaPlacement service will also be removed from TripleO. The majority of this change is code motion between the original NovaPlacement service and the new PlacementAPI service. Upgrades from the original NovaPlacement service to the extracted PlacementAPI service are not currently supported by this change and will be worked on independently during the Train cycle. Co-authored-by: mschuppert@redhat.com Depends-On: https://review.openstack.org/#/c/624335/ Change-Id: I9e3287bcbe9d317f32bf6b468c6ee17f04b6fff9 --- ci/environments/multinode-3nodes.yaml | 2 +- ci/environments/multinode-containers.yaml | 2 +- .../scenario001-multinode-containers.yaml | 2 +- .../scenario002-multinode-containers.yaml | 2 +- .../scenario003-multinode-containers.yaml | 2 +- .../scenario004-multinode-containers.yaml | 2 +- .../scenario006-multinode-containers.yaml | 2 +- ci/environments/scenario006-multinode.yaml | 2 +- .../scenario007-multinode-containers.yaml | 2 +- .../scenario008-multinode-containers.yaml | 2 +- .../scenario010-multinode-containers.yaml | 3 +- .../scenario012-multinode-containers.yaml | 2 +- .../deployed-server-roles-data.yaml | 2 +- deployment/logging/files/placement-api.yaml | 48 ++++ deployment/logging/stdout/placement-api.yaml | 60 +++++ deployment/nova/nova-base-puppet.yaml | 17 +- .../placement-api-container-puppet.yaml | 242 +++++++++++++++++ environments/low-memory-usage.yaml | 1 + .../ssl/no-tls-endpoints-public-ip.yaml | 3 + .../ssl/tls-endpoints-public-dns.yaml | 3 + environments/ssl/tls-endpoints-public-ip.yaml | 3 + .../ssl/tls-everywhere-endpoints-dns.yaml | 3 + environments/stdout-logging.yaml | 1 + network/endpoints/endpoint_data.yaml | 15 ++ network/endpoints/endpoint_map.yaml | 249 ++++++++++++++++++ network/service_net_map.j2.yaml | 1 + overcloud-resource-registry-puppet.j2.yaml | 3 +- roles/Controller.yaml | 2 +- roles/ControllerNoCeph.yaml | 2 +- roles/ControllerOpenstack.yaml | 2 +- roles/ControllerStorageNfs.yaml | 2 +- roles/Novacontrol.yaml | 2 +- roles/Standalone.yaml | 2 +- roles/Undercloud.yaml | 2 +- roles_data.yaml | 2 +- roles_data_undercloud.yaml | 2 +- sample-env-generator/ssl.yaml | 12 + tools/yaml-validate.py | 1 + 38 files changed, 681 insertions(+), 26 deletions(-) create mode 100644 deployment/logging/files/placement-api.yaml create mode 100644 deployment/logging/stdout/placement-api.yaml create mode 100644 deployment/placement/placement-api-container-puppet.yaml diff --git a/ci/environments/multinode-3nodes.yaml b/ci/environments/multinode-3nodes.yaml index 528004211b..b637d6385d 100644 --- a/ci/environments/multinode-3nodes.yaml +++ b/ci/environments/multinode-3nodes.yaml @@ -35,7 +35,7 @@ - OS::TripleO::Services::NeutronOvsAgent - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaConsoleauth diff --git a/ci/environments/multinode-containers.yaml b/ci/environments/multinode-containers.yaml index d1b4ff403a..094fa24e25 100644 --- a/ci/environments/multinode-containers.yaml +++ b/ci/environments/multinode-containers.yaml @@ -29,7 +29,7 @@ parameter_defaults: - OS::TripleO::Services::Memcached - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario001-multinode-containers.yaml b/ci/environments/scenario001-multinode-containers.yaml index c47fc31643..1a8294f9fc 100644 --- a/ci/environments/scenario001-multinode-containers.yaml +++ b/ci/environments/scenario001-multinode-containers.yaml @@ -57,7 +57,7 @@ parameter_defaults: - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario002-multinode-containers.yaml b/ci/environments/scenario002-multinode-containers.yaml index d09d79e7fa..bd9c6cdd2c 100644 --- a/ci/environments/scenario002-multinode-containers.yaml +++ b/ci/environments/scenario002-multinode-containers.yaml @@ -49,7 +49,7 @@ parameter_defaults: - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario003-multinode-containers.yaml b/ci/environments/scenario003-multinode-containers.yaml index 7733141a67..c34664446c 100644 --- a/ci/environments/scenario003-multinode-containers.yaml +++ b/ci/environments/scenario003-multinode-containers.yaml @@ -48,7 +48,7 @@ parameter_defaults: - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario004-multinode-containers.yaml b/ci/environments/scenario004-multinode-containers.yaml index 8f3f61eee6..60970ceca7 100644 --- a/ci/environments/scenario004-multinode-containers.yaml +++ b/ci/environments/scenario004-multinode-containers.yaml @@ -68,7 +68,7 @@ parameter_defaults: - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario006-multinode-containers.yaml b/ci/environments/scenario006-multinode-containers.yaml index 160de9510a..d886f24d10 100644 --- a/ci/environments/scenario006-multinode-containers.yaml +++ b/ci/environments/scenario006-multinode-containers.yaml @@ -33,7 +33,7 @@ parameter_defaults: - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - OS::TripleO::Services::NovaIronic - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario006-multinode.yaml b/ci/environments/scenario006-multinode.yaml index 8109d58b91..bc59640e0b 100644 --- a/ci/environments/scenario006-multinode.yaml +++ b/ci/environments/scenario006-multinode.yaml @@ -21,7 +21,7 @@ resource_registry: OS::TripleO::Services::Memcached: OS::Heat::None OS::TripleO::Services::NovaConductor: OS::Heat::None OS::TripleO::Services::NovaApi: OS::Heat::None - OS::TripleO::Services::NovaPlacement: OS::Heat::None + OS::TripleO::Services::PlacementApi: OS::Heat::None OS::TripleO::Services::NovaMetadata: OS::Heat::None OS::TripleO::Services::NovaScheduler: OS::Heat::None OS::TripleO::Services::NovaCompute: OS::Heat::None diff --git a/ci/environments/scenario007-multinode-containers.yaml b/ci/environments/scenario007-multinode-containers.yaml index b717c6fd47..5aea47a37c 100644 --- a/ci/environments/scenario007-multinode-containers.yaml +++ b/ci/environments/scenario007-multinode-containers.yaml @@ -62,7 +62,7 @@ parameter_defaults: - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/ci/environments/scenario008-multinode-containers.yaml b/ci/environments/scenario008-multinode-containers.yaml index 0f6376740a..c8531320ac 100644 --- a/ci/environments/scenario008-multinode-containers.yaml +++ b/ci/environments/scenario008-multinode-containers.yaml @@ -34,7 +34,7 @@ parameter_defaults: - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaLibvirt - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp - OS::TripleO::Services::OpenDaylightApi diff --git a/ci/environments/scenario010-multinode-containers.yaml b/ci/environments/scenario010-multinode-containers.yaml index 62ef5a1183..651408014f 100644 --- a/ci/environments/scenario010-multinode-containers.yaml +++ b/ci/environments/scenario010-multinode-containers.yaml @@ -57,7 +57,7 @@ parameter_defaults: - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp @@ -111,5 +111,4 @@ parameter_defaults: # For now, we hardcode it but soon it'll be generated in tripleo-common OctaviaCaKeyPassphrase: 'upstreamci' OctaviaGenerateCerts: true - # Remove ContainerCli once this scenario is tested on CentOS8 ContainerCli: docker diff --git a/ci/environments/scenario012-multinode-containers.yaml b/ci/environments/scenario012-multinode-containers.yaml index e463b087a5..19c281d5d5 100644 --- a/ci/environments/scenario012-multinode-containers.yaml +++ b/ci/environments/scenario012-multinode-containers.yaml @@ -45,7 +45,7 @@ parameter_defaults: - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaApi - OS::TripleO::Services::NovaIronic - - OS::TripleO::Services::NovaPlacement + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Ntp diff --git a/deployed-server/deployed-server-roles-data.yaml b/deployed-server/deployed-server-roles-data.yaml index 64833fa228..a128bb25c3 100644 --- a/deployed-server/deployed-server-roles-data.yaml +++ b/deployed-server/deployed-server-roles-data.yaml @@ -123,7 +123,6 @@ - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::Ntp @@ -140,6 +139,7 @@ - OS::TripleO::Services::OVNController - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::Podman - OS::TripleO::Services::Redis - OS::TripleO::Services::SaharaApi diff --git a/deployment/logging/files/placement-api.yaml b/deployment/logging/files/placement-api.yaml new file mode 100644 index 0000000000..2ae45b9efe --- /dev/null +++ b/deployment/logging/files/placement-api.yaml @@ -0,0 +1,48 @@ +heat_template_version: rocky + +description: > + Template for placement's logging to files + +parameters: + DockerPlacementImage: + description: image + type: string + +outputs: + config_settings: + description: Extra hieradata needed to log to files in the host. + value: null + volumes: + description: The volumes needed to log to files in the host. + value: &placement_volumes + - /var/log/containers/placement:/var/log/placement:z + - /var/log/containers/httpd/placement:/var/log/httpd:z + docker_config: + description: Extra containers needed for logging to files in the host. + value: + step_2: + placement_init_log: + start_order: 1 + image: {get_param: DockerPlacementImage} + net: none + user: root + command: ['/bin/bash', '-c', 'chown -R placement:placement /var/log/placement'] + volumes: *placement_volumes + host_prep_tasks: + description: Extra ansible tasks needed for logging to files in the host. + value: + - name: create persistent logs directory + file: + path: "{{ item.path }}" + state: directory + setype: "{{ item.setype }}" + with_items: + - { 'path': /var/log/containers/placement, 'setype': svirt_sandbox_file_t } + - { 'path': /var/log/containers/httpd/placement, 'setype': svirt_sandbox_file_t } + - name: Placement logs readme + copy: + dest: /var/log/placement/readme.txt + content: | + Log files from placement containers can be found under + /var/log/containers/placement and /var/log/containers/httpd/placement*. + ignore_errors: true diff --git a/deployment/logging/stdout/placement-api.yaml b/deployment/logging/stdout/placement-api.yaml new file mode 100644 index 0000000000..956b9049c3 --- /dev/null +++ b/deployment/logging/stdout/placement-api.yaml @@ -0,0 +1,60 @@ +heat_template_version: rocky + +description: > + Template for placement's logging to stdout + +parameters: + DockerPlacementImage: + description: image + type: string + +outputs: + config_settings: + description: Extra hieradata needed to log to stdout. + value: + placement::wsgi::apache::access_log_file: /var/log/httpd/access.log + placement::wsgi::apache::error_log_file: /var/log/httpd/error_log + volumes: + description: The volumes needed to log to stdout or a sidecar container. + value: + - PlacementLogs:/var/log/ + docker_config: + description: Extra containers needed for logging to stdout or a sidecar container. + value: + step_2: + placement_apache_error_logs: + start_order: 1 + image: {get_param: DockerPlacementImage} + user: root + privileged: false + restart: always + healthcheck: + test: '[ -p /var/log/httpd/error_log ]' + command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd && rm -f /var/log/httpd/error_log && mkfifo /var/log/httpd/error_log && while true; do cat /var/log/httpd/error_log; done'] + volumes: + - PlacementLogs:/var/log/ + placement_apache_access_logs: + start_order: 1 + image: {get_param: DockerPlacementImage} + user: root + privileged: false + restart: always + healthcheck: + test: '[ -p /var/log/httpd/access.log ]' + command: ['/bin/bash', '-c', 'mkdir -p /var/log/httpd && rm -f /var/log/httpd/access.log && mkfifo /var/log/httpd/access.log && while true; do cat /var/log/httpd/access.log; done'] + volumes: + - PlacementLogs:/var/log/ + placement_logs: + start_order: 2 + image: {get_param: DockerPlacementImage} + user: placement + privileged: false + restart: always + healthcheck: + test: '[ -p /var/log/placement/placement-api.log ]' + command: ['/bin/bash', '-c', 'mkdir -p /var/log/placement && rm -f /var/log/placement/placement-api.log && mkfifo /var/log/placement/placement-api.log && while true; do cat /var/log/placement/placement-api.log; done'] + volumes: + - PlacementLogs:/var/log/ + host_prep_tasks: + description: Extra ansible tasks needed for logging to files in the host. + value: null diff --git a/deployment/nova/nova-base-puppet.yaml b/deployment/nova/nova-base-puppet.yaml index f23f72a775..8dcb5779a8 100644 --- a/deployment/nova/nova-base-puppet.yaml +++ b/deployment/nova/nova-base-puppet.yaml @@ -46,6 +46,19 @@ parameters: description: The password for the neutron service and db account, used by neutron agents. type: string hidden: true + PlacementPassword: + description: The password for the Placement service and db account + type: string + hidden: true + PlacementAPIInterface: + type: string + description: > + Endpoint interface to be used for the placement API. + default: 'internal' + ExtractedPlacementEnabled: + type: boolean + description: Set to True when deploying the extracted Placement service. + default: False NovaOVSBridge: default: 'br-int' description: Name of integration bridge used by Open vSwitch @@ -268,10 +281,10 @@ outputs: $NETWORK: {get_param: [ServiceNetMap, NovaApiNetwork]} nova::rabbit_use_ssl: {get_param: RpcUseSSL} nova::placement::project_name: 'service' - nova::placement::password: {get_param: NovaPassword} + nova::placement::password: {get_param: PlacementPassword} nova::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} nova::placement::region_name: {get_param: KeystoneRegion} - nova::placement::valid_interfaces: {get_param: NovaPlacementAPIInterface} + nova::placement::valid_interfaces: {get_param: PlacementAPIInterface} nova::database_connection: make_url: scheme: {get_param: [EndpointMap, MysqlCellInternal, protocol]} diff --git a/deployment/placement/placement-api-container-puppet.yaml b/deployment/placement/placement-api-container-puppet.yaml new file mode 100644 index 0000000000..6bade95c65 --- /dev/null +++ b/deployment/placement/placement-api-container-puppet.yaml @@ -0,0 +1,242 @@ +heat_template_version: rocky + +description: > + OpenStack containerized Placement API service + +parameters: + DockerPlacementImage: + description: image + type: string + DockerPlacementConfigImage: + description: The container image to use for the placement 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 + EnableInternalTLS: + type: boolean + default: false + PlacementWorkers: + default: 0 + description: Number of workers for Placement services. + type: number + PlacementPassword: + description: The password for the Placement service and db account + type: string + hidden: true + PlacementAPIInterface: + type: string + description: > + Endpoint interface to be used for the placement API. + default: 'internal' + KeystoneRegion: + type: string + default: 'regionOne' + description: Keystone region for endpoint + MonitoringSubscriptionPlacement: + default: 'overcloud-placement' + type: string + PlacementLoggingSource: + type: json + default: + tag: openstack.placement + path: /var/log/containers/httpd/placement_wsgi_error_ssl.log + +conditions: + placement_workers_zero: {equals : [{get_param: PlacementWorkers}, 0]} + internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]} + +resources: + + ApacheServiceBase: + type: ../../deployment/apache/apache-baremetal-puppet.yaml + properties: + ServiceData: {get_param: ServiceData} + ServiceNetMap: {get_param: ServiceNetMap} + DefaultPasswords: {get_param: DefaultPasswords} + EndpointMap: {get_param: EndpointMap} + RoleName: {get_param: RoleName} + RoleParameters: {get_param: RoleParameters} + EnableInternalTLS: {get_param: EnableInternalTLS} + + ContainersCommon: + type: ../containers-common.yaml + + MySQLClient: + type: ../database/mysql-client.yaml + + PlacementLogging: + type: OS::TripleO::Services::Logging::PlacementApi + +outputs: + role_data: + description: Role data for the Placement API role. + value: + service_name: placement + config_settings: + map_merge: + - get_attr: [PlacementLogging, config_settings] + - apache::default_vhost: false + - tripleo::placement::firewall_rules: + '138 placement': + dport: + - 8778 + - 13778 + placement::keystone::authtoken::project_name: 'service' + placement::keystone::authtoken::password: {get_param: PlacementPassword} + placement::keystone::authtoken::www_authenticate_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} + placement::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} + placement::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} + placement::wsgi::apache::api_port: '8778' + placement::wsgi::apache::ssl: {get_param: EnableInternalTLS} + # NOTE: bind IP is found in hiera replacing the network name with the local node IP + # for the given network; replacement examples (eg. for internal_api): + # internal_api -> IP + # internal_api_uri -> [IP] + # internal_api_subnet - > IP/CIDR + placement::wsgi::apache::bind_host: + str_replace: + template: + "%{hiera('$NETWORK')}" + params: + $NETWORK: {get_param: [ServiceNetMap, PlacementNetwork]} + placement::wsgi::apache::servername: + str_replace: + template: + "%{hiera('fqdn_$NETWORK')}" + params: + $NETWORK: {get_param: [ServiceNetMap, PlacementNetwork]} + placement::config::project_name: 'service' + placement::config::password: {get_param: PlacementPassword} + placement::config::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} + placement::config::region_name: {get_param: KeystoneRegion} + placement::config::valid_interfaces: {get_param: PlacementAPIInterface} + placement::db::database_connection: + make_url: + scheme: {get_param: [EndpointMap, MysqlInternal, protocol]} + username: placement + password: {get_param: PlacementPassword} + host: {get_param: [EndpointMap, MysqlInternal, host]} + path: /placement + query: + read_default_file: /etc/my.cnf.d/tripleo.cnf + read_default_group: tripleo + - + if: + - placement_workers_zero + - {} + - placement::wsgi::apache::workers: {get_param: PlacementWorkers} + service_config_settings: + map_merge: + - fluentd: + tripleo_fluentd_groups_placement: + - placement + tripleo_fluentd_sources_placement: + - {get_param: PlacementLoggingSource} + keystone: + placement::keystone::auth::tenant: 'service' + placement::keystone::auth::public_url: {get_param: [EndpointMap, PlacementPublic, uri]} + placement::keystone::auth::internal_url: {get_param: [EndpointMap, PlacementInternal, uri]} + placement::keystone::auth::admin_url: {get_param: [EndpointMap, PlacementAdmin, uri]} + placement::keystone::auth::password: {get_param: PlacementPassword} + placement::keystone::auth::region: {get_param: KeystoneRegion} + mysql: + placement::db::mysql::password: {get_param: PlacementPassword} + placement::db::mysql::user: placement + placement::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]} + placement::db::mysql::dbname: placement + placement::db::mysql::allowed_hosts: + - '%' + - "%{hiera('mysql_bind_host')}" + # BEGIN DOCKER SETTINGS + puppet_config: + config_volume: placement + puppet_tags: placement_config + step_config: + list_join: + - "\n" + - - {get_attr: [MySQLClient, role_data, step_config]} + - "include tripleo::profile::base::placement::api" + config_image: {get_param: DockerPlacementConfigImage} + kolla_config: + /var/lib/kolla/config_files/placement_api.json: + command: /usr/sbin/httpd -DFOREGROUND + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /var/log/placement + owner: placement:placement + recurse: true + docker_config: + step_2: + get_attr: [PlacementLogging, docker_config, step_2] + step_3: + placement_api_db_sync: + start_order: 1 + image: &placement_api_image {get_param: DockerPlacementImage} + net: host + detach: false + user: root + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - {get_attr: [PlacementLogging, volumes]} + - + - /var/lib/config-data/placement/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro + - /var/lib/config-data/placement/etc/placement/:/etc/placement/:ro + command: "/usr/bin/bootstrap_host_exec placement su placement -s /bin/bash -c '/usr/bin/placement-manage db sync'" + step_4: + placement_api: + start_order: 1 + image: *placement_api_image + net: host + user: root + restart: always + healthcheck: + test: /openstack/healthcheck + volumes: + list_concat: + - {get_attr: [ContainersCommon, volumes]} + - {get_attr: [PlacementLogging, volumes]} + - + - /var/lib/kolla/config_files/placement_api.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/puppet-generated/placement/:/var/lib/kolla/config_files/src:ro + - + 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 + host_prep_tasks: {get_attr: [PlacementLogging, host_prep_tasks]} diff --git a/environments/low-memory-usage.yaml b/environments/low-memory-usage.yaml index 3347a2a95b..f9af073a02 100644 --- a/environments/low-memory-usage.yaml +++ b/environments/low-memory-usage.yaml @@ -9,6 +9,7 @@ parameter_defaults: NovaSchedulerWorkers: 1 SaharaWorkers: 1 SwiftWorkers: 1 + PlacementWorkers: 1 GnocchiMetricdWorkers: 1 ApacheMaxRequestWorkers: 100 diff --git a/environments/ssl/no-tls-endpoints-public-ip.yaml b/environments/ssl/no-tls-endpoints-public-ip.yaml index d7bb00eb29..0a21860486 100644 --- a/environments/ssl/no-tls-endpoints-public-ip.yaml +++ b/environments/ssl/no-tls-endpoints-public-ip.yaml @@ -80,6 +80,9 @@ parameter_defaults: NovaPlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS} NovaPlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS} NovaPlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS} NovaVNCProxyAdmin: {protocol: http, port: '6080', host: IP_ADDRESS} NovaVNCProxyInternal: {protocol: http, port: '6080', host: IP_ADDRESS} NovaVNCProxyPublic: {protocol: http, port: '6080', host: IP_ADDRESS} diff --git a/environments/ssl/tls-endpoints-public-dns.yaml b/environments/ssl/tls-endpoints-public-dns.yaml index 8412c24747..a5a3c8fe26 100644 --- a/environments/ssl/tls-endpoints-public-dns.yaml +++ b/environments/ssl/tls-endpoints-public-dns.yaml @@ -76,6 +76,9 @@ parameter_defaults: NovaPlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} + PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'} diff --git a/environments/ssl/tls-endpoints-public-ip.yaml b/environments/ssl/tls-endpoints-public-ip.yaml index dd586e18f8..ed4085f1d3 100644 --- a/environments/ssl/tls-endpoints-public-ip.yaml +++ b/environments/ssl/tls-endpoints-public-ip.yaml @@ -76,6 +76,9 @@ parameter_defaults: NovaPlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'} + PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'} NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'IP_ADDRESS'} diff --git a/environments/ssl/tls-everywhere-endpoints-dns.yaml b/environments/ssl/tls-everywhere-endpoints-dns.yaml index 1fc8e5839e..1e34a8f84e 100644 --- a/environments/ssl/tls-everywhere-endpoints-dns.yaml +++ b/environments/ssl/tls-everywhere-endpoints-dns.yaml @@ -76,6 +76,9 @@ parameter_defaults: NovaPlacementAdmin: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} NovaPlacementInternal: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} NovaPlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} + PlacementAdmin: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} + PlacementInternal: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} + PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} NovaVNCProxyAdmin: {protocol: 'https', port: '6080', host: 'CLOUDNAME'} NovaVNCProxyInternal: {protocol: 'https', port: '6080', host: 'CLOUDNAME'} NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'} diff --git a/environments/stdout-logging.yaml b/environments/stdout-logging.yaml index 4aa69639cf..89b6083102 100644 --- a/environments/stdout-logging.yaml +++ b/environments/stdout-logging.yaml @@ -16,3 +16,4 @@ resource_registry: OS::TripleO::Services::Logging::NovaMetadata: ../deployment/logging/stdout/nova-metadata.yaml OS::TripleO::Services::Logging::NovaLibvirt: ../deployment/logging/stdout/nova-libvirt.yaml OS::TripleO::Services::Logging::PankoApi: ../deployment/logging/stdout/panko-api.yaml + OS::TripleO::Services::Logging::PlacementApi: ../deployment/logging/stdout/placement-api.yaml diff --git a/network/endpoints/endpoint_data.yaml b/network/endpoints/endpoint_data.yaml index 916e2a9de8..d9b1501d7a 100644 --- a/network/endpoints/endpoint_data.yaml +++ b/network/endpoints/endpoint_data.yaml @@ -255,6 +255,21 @@ NovaPlacement: '': /placement port: 8778 +Placement: + Internal: + net_param: Placement + uri_suffixes: + '': /placement + Public: + net_param: Public + uri_suffixes: + '': /placement + Admin: + net_param: Placement + uri_suffixes: + '': /placement + port: 8778 + NovaVNCProxy: Internal: net_param: NovaApi diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml index 891fd2d057..3906c61591 100644 --- a/network/endpoints/endpoint_map.yaml +++ b/network/endpoints/endpoint_map.yaml @@ -101,6 +101,9 @@ parameters: PankoAdmin: {protocol: http, port: '8977', host: IP_ADDRESS} PankoInternal: {protocol: http, port: '8977', host: IP_ADDRESS} PankoPublic: {protocol: http, port: '8977', host: IP_ADDRESS} + PlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS} SaharaAdmin: {protocol: http, port: '8386', host: IP_ADDRESS} SaharaInternal: {protocol: http, port: '8386', host: IP_ADDRESS} SaharaPublic: {protocol: http, port: '8386', host: IP_ADDRESS} @@ -7851,6 +7854,252 @@ outputs: template: NETWORK_uri port: get_param: [EndpointMap, PankoPublic, port] + PlacementAdmin: + host: + str_replace: + template: + get_param: [EndpointMap, PlacementAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PlacementNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, PlacementAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, PlacementNetwork] + port: + get_param: [EndpointMap, PlacementAdmin, port] + protocol: + get_param: [EndpointMap, PlacementAdmin, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, PlacementAdmin, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, PlacementAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PlacementNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, PlacementAdmin, port] + path: /placement + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, PlacementAdmin, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, PlacementAdmin, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PlacementNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, PlacementAdmin, port] + PlacementInternal: + host: + str_replace: + template: + get_param: [EndpointMap, PlacementInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PlacementNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, PlacementInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, PlacementNetwork] + port: + get_param: [EndpointMap, PlacementInternal, port] + protocol: + get_param: [EndpointMap, PlacementInternal, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, PlacementInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, PlacementInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PlacementNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, PlacementInternal, port] + path: /placement + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, PlacementInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, PlacementInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PlacementNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PlacementNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, PlacementInternal, port] + PlacementPublic: + host: + str_replace: + template: + get_param: [EndpointMap, PlacementPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PublicNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, PlacementPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, PublicNetwork] + port: + get_param: [EndpointMap, PlacementPublic, port] + protocol: + get_param: [EndpointMap, PlacementPublic, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, PlacementPublic, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, PlacementPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PublicNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, PlacementPublic, port] + path: /placement + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, PlacementPublic, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, PlacementPublic, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, PublicNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, PublicNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, PlacementPublic, port] SaharaAdmin: host: str_replace: diff --git a/network/service_net_map.j2.yaml b/network/service_net_map.j2.yaml index 04e9d3c831..eea4eb371e 100644 --- a/network/service_net_map.j2.yaml +++ b/network/service_net_map.j2.yaml @@ -57,6 +57,7 @@ parameters: HeatApiCloudwatchNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} NovaApiNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} NovaPlacementNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} + PlacementNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} NovaMetadataNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} NovaVncProxyNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} NovaLibvirtNetwork: {{ _service_nets.get('internal_api', 'ctlplane') }} diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index 6589c39125..34f5821cb2 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -200,7 +200,7 @@ resource_registry: OS::TripleO::Services::NovaLibvirtGuests: deployment/nova/nova-libvirt-guests-container-puppet.yaml OS::TripleO::Services::NovaMetadata: deployment/nova/nova-metadata-container-puppet.yaml OS::TripleO::Services::NovaMigrationTarget: deployment/nova/nova-migration-target-container-puppet.yaml - OS::TripleO::Services::NovaPlacement: deployment/deprecated/nova/nova-placement-container-puppet.yaml + OS::TripleO::Services::PlacementApi: deployment/placement/placement-api-container-puppet.yaml OS::TripleO::Services::NovaScheduler: deployment/nova/nova-scheduler-container-puppet.yaml OS::TripleO::Services::NovaVncProxy: deployment/nova/nova-vnc-proxy-container-puppet.yaml OS::TripleO::Services::Novajoin: OS::Heat::None @@ -356,6 +356,7 @@ resource_registry: OS::TripleO::Services::Logging::NovaPlacement: deployment/logging/files/nova-placement.yaml OS::TripleO::Services::Logging::OpenDaylightApi: deployment/deprecated/opendaylight/opendaylight-api-container-puppet.yaml OS::TripleO::Services::Logging::PankoApi: deployment/logging/files/panko-api.yaml + OS::TripleO::Services::Logging::PlacementApi: deployment/logging/files/placement-api.yaml # Tempest OS::TripleO::Services::Tempest: OS::Heat::None diff --git a/roles/Controller.yaml b/roles/Controller.yaml index 31a53ede54..ef24e1df70 100644 --- a/roles/Controller.yaml +++ b/roles/Controller.yaml @@ -144,7 +144,6 @@ - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::ContainersLogrotateCrond @@ -159,6 +158,7 @@ - OS::TripleO::Services::OVNController - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::Podman diff --git a/roles/ControllerNoCeph.yaml b/roles/ControllerNoCeph.yaml index 18d47d987c..d604f74fa7 100644 --- a/roles/ControllerNoCeph.yaml +++ b/roles/ControllerNoCeph.yaml @@ -137,7 +137,6 @@ - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::ContainersLogrotateCrond @@ -152,6 +151,7 @@ - OS::TripleO::Services::OVNController - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::Podman diff --git a/roles/ControllerOpenstack.yaml b/roles/ControllerOpenstack.yaml index 3ba0b6b808..d6b92e24c5 100644 --- a/roles/ControllerOpenstack.yaml +++ b/roles/ControllerOpenstack.yaml @@ -110,7 +110,6 @@ - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::Ntp @@ -126,6 +125,7 @@ - OS::TripleO::Services::OVNController - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::Podman - OS::TripleO::Services::Redis - OS::TripleO::Services::Rhsm diff --git a/roles/ControllerStorageNfs.yaml b/roles/ControllerStorageNfs.yaml index 7fbe877704..29efaad0e3 100644 --- a/roles/ControllerStorageNfs.yaml +++ b/roles/ControllerStorageNfs.yaml @@ -134,7 +134,6 @@ - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::ContainersLogrotateCrond @@ -149,6 +148,7 @@ - OS::TripleO::Services::OVNController - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::Podman diff --git a/roles/Novacontrol.yaml b/roles/Novacontrol.yaml index 9f69fad831..1c702830d1 100644 --- a/roles/Novacontrol.yaml +++ b/roles/Novacontrol.yaml @@ -28,12 +28,12 @@ - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::Ec2Api - OS::TripleO::Services::ContainersLogrotateCrond - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::Podman - OS::TripleO::Services::Rhsm - OS::TripleO::Services::Securetty diff --git a/roles/Standalone.yaml b/roles/Standalone.yaml index f82c3d0021..d2f8d70e76 100644 --- a/roles/Standalone.yaml +++ b/roles/Standalone.yaml @@ -135,7 +135,6 @@ - OS::TripleO::Services::NovaLibvirt - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaMigrationTarget - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::OVNController @@ -153,6 +152,7 @@ - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::Podman - OS::TripleO::Services::Redis - OS::TripleO::Services::Rhsm diff --git a/roles/Undercloud.yaml b/roles/Undercloud.yaml index cc2498aaac..a5ea80695d 100644 --- a/roles/Undercloud.yaml +++ b/roles/Undercloud.yaml @@ -71,13 +71,13 @@ - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Novajoin - OS::TripleO::Services::OpenStackClients - OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::Podman - OS::TripleO::Services::Redis - OS::TripleO::Services::Rhsm diff --git a/roles_data.yaml b/roles_data.yaml index 49246c4628..4543445a90 100644 --- a/roles_data.yaml +++ b/roles_data.yaml @@ -147,7 +147,6 @@ - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::ContainersLogrotateCrond @@ -162,6 +161,7 @@ - OS::TripleO::Services::OVNController - OS::TripleO::Services::Pacemaker - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::Podman diff --git a/roles_data_undercloud.yaml b/roles_data_undercloud.yaml index 52e3895e42..5a954b012c 100644 --- a/roles_data_undercloud.yaml +++ b/roles_data_undercloud.yaml @@ -74,13 +74,13 @@ - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::Novajoin - OS::TripleO::Services::OpenStackClients - OS::TripleO::Services::OsloMessagingNotify - OS::TripleO::Services::OsloMessagingRpc - OS::TripleO::Services::PankoApi + - OS::TripleO::Services::PlacementApi - OS::TripleO::Services::Podman - OS::TripleO::Services::Redis - OS::TripleO::Services::Rhsm diff --git a/sample-env-generator/ssl.yaml b/sample-env-generator/ssl.yaml index f9a6348c0c..6097b4f061 100644 --- a/sample-env-generator/ssl.yaml +++ b/sample-env-generator/ssl.yaml @@ -185,6 +185,9 @@ environments: NovaPlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'} + PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'} NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'IP_ADDRESS'} @@ -302,6 +305,9 @@ environments: NovaPlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} NovaPlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} + PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'} + PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'} NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'} @@ -419,6 +425,9 @@ environments: NovaPlacementAdmin: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} NovaPlacementInternal: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} NovaPlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} + PlacementAdmin: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} + PlacementInternal: {protocol: 'https', port: '8778', host: 'CLOUDNAME'} + PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'} NovaVNCProxyAdmin: {protocol: 'https', port: '6080', host: 'CLOUDNAME'} NovaVNCProxyInternal: {protocol: 'https', port: '6080', host: 'CLOUDNAME'} NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'} @@ -546,6 +555,9 @@ environments: NovaPlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS} NovaPlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS} NovaPlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS} + PlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS} NovaVNCProxyAdmin: {protocol: http, port: '6080', host: IP_ADDRESS} NovaVNCProxyInternal: {protocol: http, port: '6080', host: IP_ADDRESS} NovaVNCProxyPublic: {protocol: http, port: '6080', host: IP_ADDRESS} diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py index f5f1ffd547..4be99133ae 100755 --- a/tools/yaml-validate.py +++ b/tools/yaml-validate.py @@ -144,6 +144,7 @@ PARAMETER_DEFINITION_EXCLUSIONS = {'CephPools': ['description', 'OctaviaHousekeepingLoggingSource': ['default'], 'OctaviaWorkerLoggingSource': ['default'], 'OvnMetadataAgentLoggingSource': ['default'], + 'PlacementLoggingSource': ['default'], 'SaharaApiLoggingSource': ['default'], 'SaharaEngineLoggingSource': ['default'], 'TripleoUILoggingSource': ['default'],