diff --git a/ci/environments/network/multiple-nics-ipv6/network-isolation-absolute.yaml b/ci/environments/network/multiple-nics-ipv6/network-isolation-absolute.yaml index 1e55c2c35b..216e73789d 100644 --- a/ci/environments/network/multiple-nics-ipv6/network-isolation-absolute.yaml +++ b/ci/environments/network/multiple-nics-ipv6/network-isolation-absolute.yaml @@ -1,6 +1,4 @@ resource_registry: - # Redis - OS::TripleO::Network::Ports::RedisVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/vip_v6.yaml # External OS::TripleO::Network::External: /usr/share/openstack-tripleo-heat-templates/network/external_v6.yaml OS::TripleO::Network::Ports::ExternalVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external_v6.yaml diff --git a/ci/environments/network/multiple-nics-ipv6/network-isolation.yaml b/ci/environments/network/multiple-nics-ipv6/network-isolation.yaml index 661441ecd4..6232f3ef4b 100644 --- a/ci/environments/network/multiple-nics-ipv6/network-isolation.yaml +++ b/ci/environments/network/multiple-nics-ipv6/network-isolation.yaml @@ -1,6 +1,4 @@ resource_registry: - # Redis - OS::TripleO::Network::Ports::RedisVipPort: ../../../../network/ports/vip_v6.yaml # External OS::TripleO::Network::External: ../../../../network/external_v6.yaml OS::TripleO::Network::Ports::ExternalVipPort: ../../../../network/ports/external_v6.yaml diff --git a/ci/environments/network/multiple-nics/network-isolation-absolute.yaml b/ci/environments/network/multiple-nics/network-isolation-absolute.yaml index 0c3133f98f..b925631c3a 100644 --- a/ci/environments/network/multiple-nics/network-isolation-absolute.yaml +++ b/ci/environments/network/multiple-nics/network-isolation-absolute.yaml @@ -1,6 +1,4 @@ resource_registry: - # Redis - OS::TripleO::Network::Ports::RedisVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/vip.yaml # External OS::TripleO::Network::External: /usr/share/openstack-tripleo-heat-templates/network/external.yaml OS::TripleO::Network::Ports::ExternalVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml diff --git a/ci/environments/network/multiple-nics/network-isolation.yaml b/ci/environments/network/multiple-nics/network-isolation.yaml index 144df8dd83..fd05d7cd0c 100644 --- a/ci/environments/network/multiple-nics/network-isolation.yaml +++ b/ci/environments/network/multiple-nics/network-isolation.yaml @@ -1,6 +1,4 @@ resource_registry: - # Redis - OS::TripleO::Network::Ports::RedisVipPort: ../../../../network/ports/vip.yaml # External OS::TripleO::Network::External: ../../../../network/external.yaml OS::TripleO::Network::Ports::ExternalVipPort: ../../../../network/ports/external.yaml diff --git a/ci/environments/network/public-bond/network-isolation-absolute.yaml b/ci/environments/network/public-bond/network-isolation-absolute.yaml index 7fede9dae2..24bae4b2db 100644 --- a/ci/environments/network/public-bond/network-isolation-absolute.yaml +++ b/ci/environments/network/public-bond/network-isolation-absolute.yaml @@ -1,6 +1,4 @@ resource_registry: - # Redis - OS::TripleO::Network::Ports::RedisVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/vip.yaml # External OS::TripleO::Network::External: /usr/share/openstack-tripleo-heat-templates/network/external.yaml OS::TripleO::Network::Ports::ExternalVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml diff --git a/ci/environments/network/public-bond/network-isolation.yaml b/ci/environments/network/public-bond/network-isolation.yaml index 89bd1cbc60..d59d260dea 100644 --- a/ci/environments/network/public-bond/network-isolation.yaml +++ b/ci/environments/network/public-bond/network-isolation.yaml @@ -1,6 +1,4 @@ resource_registry: - # Redis - OS::TripleO::Network::Ports::RedisVipPort: ../../../../network/ports/vip.yaml # External OS::TripleO::Network::External: ../../../../network/external.yaml OS::TripleO::Network::Ports::ExternalVipPort: ../../../../network/ports/external.yaml diff --git a/common/deploy-steps-playbooks-common.yaml b/common/deploy-steps-playbooks-common.yaml index a3e718c988..897bd1cded 100644 --- a/common/deploy-steps-playbooks-common.yaml +++ b/common/deploy-steps-playbooks-common.yaml @@ -52,6 +52,20 @@ tags: - always +- hosts: all + name: Load Service VIP variables + gather_facts: "{{ gather_facts | default(false) }}" + any_errors_fatal: false + ignore_unreachable: true + tasks: + - name: Include Service VIP vars + include_vars: + file: "{{ playbook_dir }}/service_vip_vars.yaml" + name: service_vip_vars + ignore_errors: yes + tags: + - always + - hosts: "{{ deploy_target_host | default([]) }}" name: Render all_nodes data as group_vars for overcloud gather_facts: "{{ gather_facts | default(false) }}" diff --git a/common/deploy-steps.j2 b/common/deploy-steps.j2 index ac5d0bf69d..7154b46729 100644 --- a/common/deploy-steps.j2 +++ b/common/deploy-steps.j2 @@ -451,6 +451,29 @@ outputs: SELINUX_MODE: {get_param: SELinuxMode} {% endblock %} template: | + - hosts: DEPLOY_SOURCE_HOST + strategy: tripleo_free + name: External deployment step 0 + gather_facts: "{% raw %}{{ gather_facts | default(false) }}{% endraw %}" + any_errors_fatal: yes + become: false + vars: + step: 0 + enable_debug: ENABLE_DEBUG + tasks: + - name: External deployment step 0 + delegate_to: localhost + run_once: true + debug: + msg: Use --start-at-task 'External deployment step 0' to resume from this task + - include_tasks: "external_deploy_steps_tasks_step0.yaml" + when: + - "'external_deploy_steps_tasks_step0.yaml' is exists" + tags: + - external + - external_deploy_steps + - step0 + - import_playbook: common_deploy_steps_playbooks.yaml vars: deploy_source_host: "DEPLOY_SOURCE_HOST" @@ -535,6 +558,8 @@ outputs: name: Server pre network steps gather_facts: "{% raw %}{{ gather_facts | default(false) }}{% endraw %}" any_errors_fatal: yes + vars: + deploy_source_host: "DEPLOY_SOURCE_HOST" tasks: {% raw %} - import_tasks: hiera_steps_tasks.yaml diff --git a/deployment/database/redis-base-puppet.yaml b/deployment/database/redis-base-puppet.yaml index ec931feb96..e1ca2e0ff8 100644 --- a/deployment/database/redis-base-puppet.yaml +++ b/deployment/database/redis-base-puppet.yaml @@ -4,6 +4,9 @@ description: > OpenStack Redis service configured with Puppet parameters: + RootStackName: + description: The name of the stack/plan. + type: string RedisPassword: description: The password for the redis service account. type: string @@ -42,6 +45,15 @@ parameters: default: false description: Enable IPv6 in Redis type: boolean + RedisVirtualFixedIPs: + default: [] + description: > + Control the IP allocation for the virtual IP used by Redis. E.g. + [{'ip_address':'1.2.3.4'}] + type: json + ServiceVips: + default: {} + type: json parameter_groups: - label: deprecated @@ -59,6 +71,16 @@ conditions: equals: - {get_param: [ServiceData, net_ip_version_map, {get_param: [ServiceNetMap, RedisNetwork]}]} - 6 + redis_virtual_fixed_ip_set: + not: + equals: + - get_param: RedisVirtualFixedIPs + - [] + redis_service_vip_set: + not: + equals: + - get_param: [ServiceVips, redis] + - '' outputs: role_data: @@ -106,3 +128,22 @@ outputs: params: $NETWORK: {get_param: [ServiceNetMap, RedisNetwork]} redis::ulimit: {get_param: RedisFDLimit} + external_deploy_tasks: + - when: + - step|int == 0 + name: redis_external_deploy_init + block: + - name: create redis virtual ip + tripleo_service_vip: + playbook_dir: "{{ playbook_dir }}" + stack_name: {get_param: RootStackName} + service_name: redis + network: {get_param: [ServiceNetMap, RedisNetwork]} + fixed_ips: + if: + - redis_virtual_fixed_ip_set + - {get_param: RedisVirtualFixedIPs} + - if: + - redis_service_vip_set + - [{ip_address: {get_param: [ServiceVips, redis]}}] + - [{subnet: {get_param: [ServiceData, vip_subnet_map, redis]}}] diff --git a/deployment/database/redis-container-puppet.yaml b/deployment/database/redis-container-puppet.yaml index a8e7c94296..ac32bc5543 100644 --- a/deployment/database/redis-container-puppet.yaml +++ b/deployment/database/redis-container-puppet.yaml @@ -239,6 +239,7 @@ outputs: - {get_param: CertificateKeySize} - {get_param: RedisCertificateKeySize} ca: ipa + external_deploy_tasks: {get_attr: [RedisBase, role_data, external_deploy_tasks]} host_prep_tasks: - name: create fcontext entry for redis data sefcontext: diff --git a/deployment/database/redis-pacemaker-puppet.yaml b/deployment/database/redis-pacemaker-puppet.yaml index e64e8f0a17..2a0b6b191e 100644 --- a/deployment/database/redis-pacemaker-puppet.yaml +++ b/deployment/database/redis-pacemaker-puppet.yaml @@ -263,6 +263,7 @@ outputs: - {} metadata_settings: get_attr: [RedisBase, role_data, metadata_settings] + external_deploy_tasks: {get_attr: [RedisBase, role_data, external_deploy_tasks]} host_prep_tasks: - name: create persistent directories file: diff --git a/deployment/ovn/ovn-dbs-container-puppet.yaml b/deployment/ovn/ovn-dbs-container-puppet.yaml index a2cfedbabb..c86aae62f0 100644 --- a/deployment/ovn/ovn-dbs-container-puppet.yaml +++ b/deployment/ovn/ovn-dbs-container-puppet.yaml @@ -4,6 +4,9 @@ description: > OpenStack containerized Ovn DBs service parameters: + RootStackName: + description: The name of the stack/plan. + type: string ContainerOvnNbDbImage: description: image type: string @@ -44,6 +47,27 @@ parameters: description: Port of the OVN Southbound DB server type: number default: 6642 + OVNDBsVirtualFixedIPs: + default: [] + description: > + Control the IP allocation for the virtual IP used by OVN DBs. E.g. + [{'ip_address':'1.2.3.4'}] + type: json + ServiceVips: + default: {} + type: json + +conditions: + ovn_dbs_virtual_fixed_ip_set: + not: + equals: + - get_param: OVNDBsVirtualFixedIPs + - [] + ovn_dbs_service_vip_set: + not: + equals: + - get_param: [ServiceVips, ovn_dbs] + - '' resources: @@ -202,4 +226,23 @@ outputs: with_items: - { 'path': /var/log/containers/openvswitch, 'setype': container_file_t, 'mode': '0750' } - { 'path': /var/lib/openvswitch/ovn, 'setype': container_file_t } + external_deploy_tasks: + - when: + - step|int == 0 + name: ovn_external_deploy_init + block: + - name: create ovn_dbs virtual ip + tripleo_service_vip: + playbook_dir: "{{ playbook_dir }}" + stack_name: {get_param: RootStackName} + service_name: ovn_dbs + network: {get_param: [ServiceNetMap, OvnDbsNetwork]} + fixed_ips: + if: + - ovn_dbs_virtual_fixed_ip_set + - {get_param: OVNDBsVirtualFixedIPs} + - if: + - ovn_dbs_service_vip_set + - [{ip_address: {get_param: [ServiceVips, ovn_dbs]}}] + - [{subnet: {get_param: [ServiceData, vip_subnet_map, ovn_dbs]}}] upgrade_tasks: [] diff --git a/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml b/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml index a6b18c2fca..164852cab1 100644 --- a/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml +++ b/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml @@ -227,6 +227,7 @@ outputs: with_items: - { 'path': /var/log/containers/openvswitch, 'setype': container_file_t, 'mode': '0750' } - { 'path': /var/lib/openvswitch/ovn, 'setype': container_file_t } + external_deploy_tasks: {get_attr: [OVNDbsBase, role_data, external_deploy_tasks]} deploy_steps_tasks: - name: OVN DBS tag container image for pacemaker when: step|int == 1 diff --git a/environments/dcn-hci.yaml b/environments/dcn-hci.yaml index a479348c03..7f0ded0313 100644 --- a/environments/dcn-hci.yaml +++ b/environments/dcn-hci.yaml @@ -46,8 +46,6 @@ parameter_defaults: NovaDisableImageDownloadToRbd: True resource_registry: - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/noop.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/noop.yaml OS::TripleO::Services::CinderVolumeEdge: ../deployment/cinder/cinder-volume-container-puppet.yaml OS::TripleO::Services::Etcd: ../deployment/etcd/etcd-container-puppet.yaml OS::TripleO::Services::GlanceApiEdge: ../deployment/glance/glance-api-edge-container-puppet.yaml diff --git a/environments/dcn-storage.yaml b/environments/dcn-storage.yaml index fa7fdefcea..c8f940414e 100644 --- a/environments/dcn-storage.yaml +++ b/environments/dcn-storage.yaml @@ -44,8 +44,6 @@ parameter_defaults: NovaDisableImageDownloadToRbd: True resource_registry: - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/noop.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/noop.yaml OS::TripleO::Services::CinderVolumeEdge: ../deployment/cinder/cinder-volume-container-puppet.yaml OS::TripleO::Services::Etcd: ../deployment/etcd/etcd-container-puppet.yaml OS::TripleO::Services::GlanceApiEdge: ../deployment/glance/glance-api-edge-container-puppet.yaml diff --git a/environments/dcn.yaml b/environments/dcn.yaml index d3cc9712ea..5f2cf41864 100644 --- a/environments/dcn.yaml +++ b/environments/dcn.yaml @@ -26,8 +26,6 @@ parameter_defaults: NovaDisableImageDownloadToRbd: True resource_registry: - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/noop.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/noop.yaml OS::TripleO::Services::GlanceApiEdge: ../deployment/glance/glance-api-edge-container-puppet.yaml OS::TripleO::Services::HAproxyEdge: ../deployment/haproxy/haproxy-edge-container-puppet.yaml OS::TripleO::Services::NovaAZConfig: ../deployment/nova/nova-az-config.yaml diff --git a/environments/external-loadbalancer-vip-v6-all.yaml b/environments/external-loadbalancer-vip-v6-all.yaml index f60a7a8173..0bdb03797b 100644 --- a/environments/external-loadbalancer-vip-v6-all.yaml +++ b/environments/external-loadbalancer-vip-v6-all.yaml @@ -6,8 +6,6 @@ resource_registry: OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api_v6.yaml OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage_v6.yaml OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt_v6.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip_v6.yaml OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external_from_pool_v6.yaml OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api_from_pool_v6.yaml OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage_from_pool_v6.yaml diff --git a/environments/external-loadbalancer-vip-v6.yaml b/environments/external-loadbalancer-vip-v6.yaml index 4e838221ae..709cd4fb16 100644 --- a/environments/external-loadbalancer-vip-v6.yaml +++ b/environments/external-loadbalancer-vip-v6.yaml @@ -3,8 +3,6 @@ resource_registry: OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api_v6.yaml OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage_v6.yaml OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt_v6.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip_v6.yaml OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external_from_pool_v6.yaml OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api_from_pool_v6.yaml OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage_from_pool_v6.yaml diff --git a/environments/external-loadbalancer-vip.yaml b/environments/external-loadbalancer-vip.yaml index 08ee04c591..c57f82cfb2 100644 --- a/environments/external-loadbalancer-vip.yaml +++ b/environments/external-loadbalancer-vip.yaml @@ -3,8 +3,6 @@ resource_registry: OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api.yaml OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage.yaml OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip.yaml OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external_from_pool.yaml OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api_from_pool.yaml OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage_from_pool.yaml diff --git a/environments/fixed-ip-vips-v6.yaml b/environments/fixed-ip-vips-v6.yaml index c7599910c0..1a232f65a7 100644 --- a/environments/fixed-ip-vips-v6.yaml +++ b/environments/fixed-ip-vips-v6.yaml @@ -7,8 +7,6 @@ resource_registry: OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api_v6.yaml OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage_v6.yaml OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt_v6.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip_v6.yaml parameter_defaults: # Set the IP addresses of the VIPs here. diff --git a/environments/fixed-ip-vips.yaml b/environments/fixed-ip-vips.yaml index 1083eea04d..1dd6b8bece 100644 --- a/environments/fixed-ip-vips.yaml +++ b/environments/fixed-ip-vips.yaml @@ -7,8 +7,6 @@ resource_registry: OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api.yaml OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage.yaml OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip.yaml parameter_defaults: # Set the IP addresses of the VIPs here. diff --git a/environments/network-isolation-no-tunneling.j2.yaml b/environments/network-isolation-no-tunneling.j2.yaml index 2035a608cc..3e5a4540a4 100644 --- a/environments/network-isolation-no-tunneling.j2.yaml +++ b/environments/network-isolation-no-tunneling.j2.yaml @@ -19,8 +19,6 @@ resource_registry: {%- for network in networks if network.vip and network.name != 'Tenant' %} OS::TripleO::Network::Ports::{{network.name}}VipPort: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml {%- endfor %} - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip.yaml # Port assignments for each role are determined by the role definition. {%- for role in roles %} diff --git a/environments/network-isolation-v6-all.j2.yaml b/environments/network-isolation-v6-all.j2.yaml index be8327c58b..aed8a11e7f 100644 --- a/environments/network-isolation-v6-all.j2.yaml +++ b/environments/network-isolation-v6-all.j2.yaml @@ -33,8 +33,6 @@ resource_registry: {%- endif %} {%- endfor %} - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip_v6.yaml # Port assignments by role, edit role definition to assign networks to roles. {%- for role in roles %} diff --git a/environments/network-isolation-v6.j2.yaml b/environments/network-isolation-v6.j2.yaml index 6b8e915308..d4231ec76e 100644 --- a/environments/network-isolation-v6.j2.yaml +++ b/environments/network-isolation-v6.j2.yaml @@ -26,8 +26,6 @@ resource_registry: {%- endif %} {%- endfor %} - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip_v6.yaml # Port assignments by role, edit role definition to assign networks to roles. {%- for role in roles %} diff --git a/environments/network-isolation.j2.yaml b/environments/network-isolation.j2.yaml index 0577b71213..365c47427e 100644 --- a/environments/network-isolation.j2.yaml +++ b/environments/network-isolation.j2.yaml @@ -15,8 +15,6 @@ resource_registry: OS::TripleO::Network::Ports::{{network.name}}VipPort: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml {%- endif %} {%- endfor %} - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip.yaml # Port assignments by role, edit role definition to assign networks to roles. {%- for role in roles %} diff --git a/environments/services/neutron-ovs.yaml b/environments/services/neutron-ovs.yaml index c4e182e745..92a35a5824 100644 --- a/environments/services/neutron-ovs.yaml +++ b/environments/services/neutron-ovs.yaml @@ -14,7 +14,6 @@ resource_registry: OS::TripleO::Services::OVNController: OS::Heat::None OS::TripleO::Services::OVNDBs: OS::Heat::None OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None - OS::TripleO::Network::Ports::OVNDBsVipPort: ../../network/ports/noop.yaml parameter_defaults: diff --git a/environments/standalone/standalone-tripleo.yaml b/environments/standalone/standalone-tripleo.yaml index c36e60e87a..ec50adac9f 100644 --- a/environments/standalone/standalone-tripleo.yaml +++ b/environments/standalone/standalone-tripleo.yaml @@ -58,8 +58,6 @@ parameter_defaults: resource_registry: OS::TripleO::Network::Ports::ControlPlaneVipPort: ../../deployed-server/deployed-neutron-port.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../../network/ports/noop.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../../network/ports/noop.yaml OS::TripleO::OVNMacAddressNetwork: OS::Heat::None OS::TripleO::OVNMacAddressPort: OS::Heat::None OS::TripleO::Services::AodhApi: OS::Heat::None diff --git a/environments/undercloud.yaml b/environments/undercloud.yaml index 6ecdee8039..1459acfe1b 100644 --- a/environments/undercloud.yaml +++ b/environments/undercloud.yaml @@ -1,7 +1,5 @@ resource_registry: OS::TripleO::Services::Tmpwatch: ../deployment/logrotate/tmpwatch-install.yaml - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/noop.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/noop.yaml OS::TripleO::Network::Ports::ControlPlaneVipPort: ../deployed-server/deployed-neutron-port.yaml OS::TripleO::NodeExtraConfigPost: ../extraconfig/post_deploy/undercloud_post.yaml OS::TripleO::Services::DockerRegistry: ../deployment/image-serve/image-serve-baremetal-ansible.yaml diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index e6b16886f7..1274747757 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -83,8 +83,6 @@ resource_registry: OS::TripleO::Network::Ports::{{network.name}}VipPort: network/ports/noop.yaml {%- endfor %} - OS::TripleO::Network::Ports::RedisVipPort: network/ports/ctlplane_vip.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: network/ports/ctlplane_vip.yaml OS::TripleO::Network::Ports::ControlPlaneVipPort: OS::Neutron::Port # Service to network Mappings diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 6690457ae5..e376d180cf 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -131,18 +131,6 @@ parameters: type: string default: unset description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change. - RedisVirtualFixedIPs: - default: [] - description: > - Control the IP allocation for the virtual IP used by Redis. E.g. - [{'ip_address':'1.2.3.4'}] - type: json - OVNDBsVirtualFixedIPs: - default: [] - description: > - Control the IP allocation for the virtual IP used by OVN DBs. E.g. - [{'ip_address':'1.2.3.4'}] - type: json CloudDomain: default: 'localdomain' type: string @@ -449,16 +437,6 @@ conditions: equals: - get_param: PublicVirtualFixedIPs - [] - redis_virtual_fixed_ip_set: - not: - equals: - - get_param: RedisVirtualFixedIPs - - [] - ovn_dbs_virtual_fixed_ip_set: - not: - equals: - - get_param: OVNDBsVirtualFixedIPs - - [] set_default_mysql_cell_internal: or: - equals: @@ -658,6 +636,7 @@ resources: net_cidr_map: {get_attr: [NetCidrMapValue, value]} net_vip_map: {get_attr: [VipMap, net_ip_map]} net_ip_version_map: {get_attr: [NetIpVersionMapValue, value]} + vip_subnet_map: {get_attr: [ServiceNetMap, vip_subnet_map]} EndpointMap: {get_attr: [EndpointMapData, value]} RoleName: {{role.name}} RoleParameters: @@ -1110,40 +1089,6 @@ resources: params: $STACK_NAME: {get_param: 'OS::stack_name'} - RedisVirtualIP: - depends_on: [Networks, ServiceNetMap] - type: OS::TripleO::Network::Ports::RedisVipPort - properties: - ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ControlPlaneSubnetCidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_attr: [ServiceNetMap, vip_subnet_map, ctlplane]}, cidr]}, 1]} - ControlPlaneNetwork: {get_param: NeutronControlPlaneID} - PortName: redis_virtual_ip - DnsName: null - NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]} - ServiceName: redis - FixedIPs: - if: - - redis_virtual_fixed_ip_set - - {get_param: RedisVirtualFixedIPs} - - [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, redis]}}] - - OVNDBsVirtualIP: - depends_on: [Networks, ServiceNetMap] - type: OS::TripleO::Network::Ports::OVNDBsVipPort - properties: - ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ControlPlaneSubnetCidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_attr: [ServiceNetMap, vip_subnet_map, ctlplane]}, cidr]}, 1]} - ControlPlaneNetwork: {get_param: NeutronControlPlaneID} - PortName: ovn_dbs_virtual_ip - DnsName: null - NetworkName: {get_attr: [ServiceNetMap, service_net_map, OvnDbsNetwork]} - ServiceName: ovn_dbs - FixedIPs: - if: - - ovn_dbs_virtual_fixed_ip_set - - {get_param: OVNDBsVirtualFixedIPs} - - [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, ovn_dbs]}}] - {%- for network in networks if network.vip|default(false) and network.enabled|default(true) %} {%- if network.name == 'External' %} # The public VIP is on the External net, falls back to ctlplane @@ -1284,11 +1229,7 @@ resources: {%- for network in networks if network.enabled|default(true) %} - {{ network.name }} {%- endfor %} - NetVipMap: - map_merge: - - {get_attr: [VipMap, net_ip_map]} - - redis: {get_attr: [RedisVirtualIP, ip_address]} - - ovn_dbs: {get_attr: [OVNDBsVirtualIP, ip_address]} + NetVipMap: {get_attr: [VipMap, net_ip_map]} CloudNames: {get_attr: [CloudNames, value]} UndercloudHostsEntries: {get_param: UndercloudHostsEntries} ExtraHostsEntries: {get_param: ExtraHostFileEntries} @@ -1390,11 +1331,7 @@ outputs: {%- endfor %} VipMap: description: Mapping of each network to VIP addresses. Also includes the Redis and OVN DBs VIPs. - value: - map_merge: - - {get_attr: [VipMap, net_ip_map]} - - redis: {get_attr: [RedisVirtualIP, ip_address]} - - ovn_dbs: {get_attr: [OVNDBsVirtualIP, ip_address]} + value: {get_attr: [VipMap, net_ip_map]} ServerIdData: description: Mapping of each role to a list of nova server IDs and the bootstrap ID value: {get_attr: [ServerIdMap, value]} diff --git a/releasenotes/notes/refactor-service-vips-a48739c1b2fab207.yaml b/releasenotes/notes/refactor-service-vips-a48739c1b2fab207.yaml new file mode 100644 index 0000000000..27a6fc9e73 --- /dev/null +++ b/releasenotes/notes/refactor-service-vips-a48739c1b2fab207.yaml @@ -0,0 +1,54 @@ +--- +upgrade: + - | + Users of the ``OS::TripleO::Network::Ports::RedisVipPort`` and + ``OS::TripleO::Network::Ports::OVNDBsVipPort`` interfaces must + update their templates. The interfaces has been removed, and the + managment of these virtual IPs has been moved to the + tripleo-heat-templates service template. + + This change will typically affect deployments using already + deployed servers. Typically the virtual IPs for Redis and OVNDBs + was overriden using the ``deployed-neutron-port`` template. + For example:: + + resource_registry: + OS::TripleO::Network::Ports::RedisVipPort: /usr/share/openstack-tripleo-heat-templates/deployed-server/deployed-neutron-port.yaml + OS::TripleO::Network::Ports::OVNDBsVipPort: /usr/share/openstack-tripleo-heat-templates/deployed-server/deployed-neutron-port.yaml + + parameter_defaults: + DeployedServerPortMap: + redis_virtual_ip: + fixed_ips: + - ip_address: 192.168.100.10 + subnets: + - cidr: 192.168.100.0/24 + network: + tags: + - 192.168.100.0/24 + ovn_dbs_virtual_ip: + fixed_ips: + - ip_address: 192.168.100.11 + subnets: + - cidr: 192.168.100.0/24 + network: + tags: + - 192.168.100.0/24 + + This will have to be changed. The following example shows how to + replicate the above configuration:: + + parameter_defaults: + RedisVirtualFixedIPs: + - ip_address: 192.168.100.10 + use_neutron: false + OVNDBsVirtualFixedIPs: + - ip_address: 192.168.100.11 + use_neutron: false + +deprecations: + - | + The interfaces ``OS::TripleO::Network::Ports::RedisVipPort`` and + ``OS::TripleO::Network::Ports::OVNDBsVipPort`` ha been removed. + The resources are no longer used in the overcloud heat stack. + diff --git a/sample-env-generator/dcn.yaml b/sample-env-generator/dcn.yaml index 351235a2cd..c423a2b3e8 100644 --- a/sample-env-generator/dcn.yaml +++ b/sample-env-generator/dcn.yaml @@ -22,8 +22,6 @@ environments: NovaCrossAZAttach: false NovaDisableImageDownloadToRbd: true resource_registry: &dcn_resource_registry - OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/noop.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/noop.yaml OS::TripleO::Services::GlanceApiEdge: ../deployment/glance/glance-api-edge-container-puppet.yaml OS::TripleO::Services::HAproxyEdge: ../deployment/haproxy/haproxy-edge-container-puppet.yaml OS::TripleO::Services::NovaAZConfig: ../deployment/nova/nova-az-config.yaml diff --git a/sample-env-generator/standalone.yaml b/sample-env-generator/standalone.yaml index f9598743fe..ab66b2e0f2 100644 --- a/sample-env-generator/standalone.yaml +++ b/sample-env-generator/standalone.yaml @@ -55,8 +55,6 @@ environments: resource_registry: # this network config is assumed by the tripleo deploy command - OS::TripleO::Network::Ports::RedisVipPort: ../../network/ports/noop.yaml - OS::TripleO::Network::Ports::OVNDBsVipPort: ../../network/ports/noop.yaml OS::TripleO::Network::Ports::ControlPlaneVipPort: ../../deployed-server/deployed-neutron-port.yaml # OVN