Browse Source

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
changes/59/777259/13
Harald Jensås 8 months ago
parent
commit
23cdf4dd17
  1. 2
      ci/environments/network/multiple-nics-ipv6/network-isolation-absolute.yaml
  2. 2
      ci/environments/network/multiple-nics-ipv6/network-isolation.yaml
  3. 2
      ci/environments/network/multiple-nics/network-isolation-absolute.yaml
  4. 2
      ci/environments/network/multiple-nics/network-isolation.yaml
  5. 2
      ci/environments/network/public-bond/network-isolation-absolute.yaml
  6. 2
      ci/environments/network/public-bond/network-isolation.yaml
  7. 14
      common/deploy-steps-playbooks-common.yaml
  8. 25
      common/deploy-steps.j2
  9. 41
      deployment/database/redis-base-puppet.yaml
  10. 1
      deployment/database/redis-container-puppet.yaml
  11. 1
      deployment/database/redis-pacemaker-puppet.yaml
  12. 43
      deployment/ovn/ovn-dbs-container-puppet.yaml
  13. 1
      deployment/ovn/ovn-dbs-pacemaker-puppet.yaml
  14. 2
      environments/dcn-hci.yaml
  15. 2
      environments/dcn-storage.yaml
  16. 2
      environments/dcn.yaml
  17. 2
      environments/external-loadbalancer-vip-v6-all.yaml
  18. 2
      environments/external-loadbalancer-vip-v6.yaml
  19. 2
      environments/external-loadbalancer-vip.yaml
  20. 2
      environments/fixed-ip-vips-v6.yaml
  21. 2
      environments/fixed-ip-vips.yaml
  22. 2
      environments/network-isolation-no-tunneling.j2.yaml
  23. 2
      environments/network-isolation-v6-all.j2.yaml
  24. 2
      environments/network-isolation-v6.j2.yaml
  25. 2
      environments/network-isolation.j2.yaml
  26. 1
      environments/services/neutron-ovs.yaml
  27. 2
      environments/standalone/standalone-tripleo.yaml
  28. 2
      environments/undercloud.yaml
  29. 2
      overcloud-resource-registry-puppet.j2.yaml
  30. 69
      overcloud.j2.yaml
  31. 54
      releasenotes/notes/refactor-service-vips-a48739c1b2fab207.yaml
  32. 2
      sample-env-generator/dcn.yaml
  33. 2
      sample-env-generator/standalone.yaml

2
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

2
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

2
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

2
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

2
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

2
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

14
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) }}"

25
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

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

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

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

43
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: []

1
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

2
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

2
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

2
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

2
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

2
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

2
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

2
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.

2
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.

2
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 %}

2
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 %}

2
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 %}

2
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 %}

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

2
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

2
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

2
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

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

54
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.

2
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

2
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

Loading…
Cancel
Save