From 23cdf4dd1717c892535664b353f80ad9ff4a3975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Tue, 9 Feb 2021 06:06:46 +0100 Subject: [PATCH] Refactor Service VIPs redis and ovn_dbs With this change a Heat resource is no longer used to create an undercloud neutron API port resource for the redis and ovn_dbs service virtual IPs. Instead an external deploy task at step 0 in the individual service template uses the "tripleo_service_vip" ansible module to mange a neutron API port resource for each service. The interfaces to control the IP address and service network (RedisVirtualFixedIPs, OVNDBsVirtualFixedIPs and ServiceNetMap) remains the same. It is also possible to include the 'use_neutron' boolean in the FixedIPs parameter to instruct the ansible module not to create a neutron API resource, and simply "echo" the ip_address given in the FixedIPs parameter. For example: RedisVirtualFixedIPs: - ip_address: 1.0.0.5 use_neutron: false Alternatively the fixed-ips can be set using the 'ServiceVips' parameter, like this: ServiceVips: redis: 1.0.0.5 ovs_dbs: 1.0.0.6 NOTE: If the neutron service is not available the tripleo_service_vip ansible module will "echo" the IP provided in %service%VirtualFixedIPs. Related: blueprint network-data-v2-ports Depends-On: https://review.opendev.org/777307 Depends-On: https://review.opendev.org/779883 Change-Id: I4794418546363888e7a555a16b45b7a4417f1ef8 --- .../network-isolation-absolute.yaml | 2 - .../multiple-nics-ipv6/network-isolation.yaml | 2 - .../network-isolation-absolute.yaml | 2 - .../multiple-nics/network-isolation.yaml | 2 - .../network-isolation-absolute.yaml | 2 - .../public-bond/network-isolation.yaml | 2 - common/deploy-steps-playbooks-common.yaml | 14 ++++ common/deploy-steps.j2 | 25 +++++++ deployment/database/redis-base-puppet.yaml | 41 +++++++++++ .../database/redis-container-puppet.yaml | 1 + .../database/redis-pacemaker-puppet.yaml | 1 + deployment/ovn/ovn-dbs-container-puppet.yaml | 43 ++++++++++++ deployment/ovn/ovn-dbs-pacemaker-puppet.yaml | 1 + environments/dcn-hci.yaml | 2 - environments/dcn-storage.yaml | 2 - environments/dcn.yaml | 2 - .../external-loadbalancer-vip-v6-all.yaml | 2 - .../external-loadbalancer-vip-v6.yaml | 2 - environments/external-loadbalancer-vip.yaml | 2 - environments/fixed-ip-vips-v6.yaml | 2 - environments/fixed-ip-vips.yaml | 2 - .../network-isolation-no-tunneling.j2.yaml | 2 - environments/network-isolation-v6-all.j2.yaml | 2 - environments/network-isolation-v6.j2.yaml | 2 - environments/network-isolation.j2.yaml | 2 - environments/services/neutron-ovs.yaml | 1 - .../standalone/standalone-tripleo.yaml | 2 - environments/undercloud.yaml | 2 - overcloud-resource-registry-puppet.j2.yaml | 2 - overcloud.j2.yaml | 69 +------------------ ...efactor-service-vips-a48739c1b2fab207.yaml | 54 +++++++++++++++ sample-env-generator/dcn.yaml | 2 - sample-env-generator/standalone.yaml | 2 - 33 files changed, 183 insertions(+), 113 deletions(-) create mode 100644 releasenotes/notes/refactor-service-vips-a48739c1b2fab207.yaml 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