Browse Source

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
changes/44/630644/43
Lee Yarwood 3 years ago
committed by Martin Schuppert
parent
commit
555178160b
  1. 2
      ci/environments/multinode-3nodes.yaml
  2. 2
      ci/environments/multinode-containers.yaml
  3. 2
      ci/environments/scenario001-multinode-containers.yaml
  4. 2
      ci/environments/scenario002-multinode-containers.yaml
  5. 2
      ci/environments/scenario003-multinode-containers.yaml
  6. 2
      ci/environments/scenario004-multinode-containers.yaml
  7. 2
      ci/environments/scenario006-multinode-containers.yaml
  8. 2
      ci/environments/scenario006-multinode.yaml
  9. 2
      ci/environments/scenario007-multinode-containers.yaml
  10. 2
      ci/environments/scenario008-multinode-containers.yaml
  11. 3
      ci/environments/scenario010-multinode-containers.yaml
  12. 2
      ci/environments/scenario012-multinode-containers.yaml
  13. 2
      deployed-server/deployed-server-roles-data.yaml
  14. 48
      deployment/logging/files/placement-api.yaml
  15. 60
      deployment/logging/stdout/placement-api.yaml
  16. 17
      deployment/nova/nova-base-puppet.yaml
  17. 242
      deployment/placement/placement-api-container-puppet.yaml
  18. 1
      environments/low-memory-usage.yaml
  19. 3
      environments/ssl/no-tls-endpoints-public-ip.yaml
  20. 3
      environments/ssl/tls-endpoints-public-dns.yaml
  21. 3
      environments/ssl/tls-endpoints-public-ip.yaml
  22. 3
      environments/ssl/tls-everywhere-endpoints-dns.yaml
  23. 1
      environments/stdout-logging.yaml
  24. 15
      network/endpoints/endpoint_data.yaml
  25. 249
      network/endpoints/endpoint_map.yaml
  26. 1
      network/service_net_map.j2.yaml
  27. 3
      overcloud-resource-registry-puppet.j2.yaml
  28. 2
      roles/Controller.yaml
  29. 2
      roles/ControllerNoCeph.yaml
  30. 2
      roles/ControllerOpenstack.yaml
  31. 2
      roles/ControllerStorageNfs.yaml
  32. 2
      roles/Novacontrol.yaml
  33. 2
      roles/Standalone.yaml
  34. 2
      roles/Undercloud.yaml
  35. 2
      roles_data.yaml
  36. 2
      roles_data_undercloud.yaml
  37. 12
      sample-env-generator/ssl.yaml
  38. 1
      tools/yaml-validate.py

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

3
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

2
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

2
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

48
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

60
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

17
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]}

242
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]}

1
environments/low-memory-usage.yaml

@ -9,6 +9,7 @@ parameter_defaults:
NovaSchedulerWorkers: 1
SaharaWorkers: 1
SwiftWorkers: 1
PlacementWorkers: 1
GnocchiMetricdWorkers: 1
ApacheMaxRequestWorkers: 100

3
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}

3
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'}

3
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'}

3
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'}

1
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

15
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

249
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:

1
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') }}

3
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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

12
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}

1
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'],

Loading…
Cancel
Save