From 97016b2012cd6f2401c0d03199392334a7f34cdd Mon Sep 17 00:00:00 2001 From: Michele Baldessari Date: Wed, 27 Jan 2021 17:10:19 +0100 Subject: [PATCH] Add FRR service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds support for BGP via the OS::TripleO::Services::Frr service. Spec: https://review.opendev.org/c/openstack/tripleo-specs/+/758249 We create the frr configuration via the corresponding tripleo_frr ansible role at step0. We start the FRR container at deployment step 1 before pacemaker gets configured as the routing to all the other nodes needs to be functional before setting up the cluster. Co-Authored-By: Carlos Gonçalves Change-Id: I7cef73c57e7b69f4d031e220c954803afd5e0b8c --- deployment/frr/frr-container-ansible.yaml | 236 ++++++++++++++++++ environments/hyperconverged-ceph.yaml | 1 + environments/services/frr.yaml | 9 + overcloud-resource-registry-puppet.j2.yaml | 1 + .../notes/frr-support-21648d0660a810ac.yaml | 15 ++ roles/BlockStorage.yaml | 1 + roles/CellController.yaml | 1 + roles/CephAll.yaml | 1 + roles/CephFile.yaml | 1 + roles/CephObject.yaml | 1 + roles/CephStorage.yaml | 1 + roles/Compute.yaml | 1 + roles/ComputeAlt.yaml | 1 + roles/ComputeDVR.yaml | 1 + roles/ComputeHCI.yaml | 1 + roles/ComputeHCIOvsDpdk.yaml | 1 + roles/ComputeHCISriov.yaml | 1 + roles/ComputeInstanceHA.yaml | 1 + roles/ComputeLiquidio.yaml | 1 + roles/ComputeLocalEphemeral.yaml | 1 + roles/ComputeOvsDpdk.yaml | 1 + roles/ComputeOvsDpdkRT.yaml | 1 + roles/ComputeOvsDpdkSriov.yaml | 1 + roles/ComputeOvsDpdkSriovRT.yaml | 1 + roles/ComputePPC64LE.yaml | 1 + roles/ComputeRBDEphemeral.yaml | 1 + roles/ComputeRealTime.yaml | 1 + roles/ComputeSriov.yaml | 1 + roles/ComputeSriovIB.yaml | 1 + roles/ComputeSriovRT.yaml | 1 + roles/Controller.yaml | 1 + roles/ControllerAllNovaStandalone.yaml | 1 + roles/ControllerNoCeph.yaml | 1 + roles/ControllerNovaStandalone.yaml | 1 + roles/ControllerOpenstack.yaml | 1 + roles/ControllerSriov.yaml | 1 + roles/ControllerStorageDashboard.yaml | 1 + roles/ControllerStorageNfs.yaml | 1 + roles/Database.yaml | 1 + roles/DistributedCompute.yaml | 1 + roles/DistributedComputeHCI.yaml | 1 + roles/DistributedComputeHCIDashboard.yaml | 1 + roles/DistributedComputeHCIScaleOut.yaml | 1 + roles/DistributedComputeScaleOut.yaml | 1 + roles/HciCephAll.yaml | 1 + roles/HciCephFile.yaml | 1 + roles/HciCephMon.yaml | 1 + roles/HciCephObject.yaml | 1 + roles/IronicConductor.yaml | 1 + roles/Messaging.yaml | 1 + roles/Networker.yaml | 1 + roles/NetworkerSriov.yaml | 1 + roles/NovaManager.yaml | 1 + roles/Novacontrol.yaml | 1 + roles/ObjectStorage.yaml | 1 + roles/Standalone.yaml | 1 + roles/Telemetry.yaml | 1 + roles/Undercloud.yaml | 1 + roles_data.yaml | 5 + roles_data_undercloud.yaml | 1 + 60 files changed, 321 insertions(+) create mode 100644 deployment/frr/frr-container-ansible.yaml create mode 100644 environments/services/frr.yaml create mode 100644 releasenotes/notes/frr-support-21648d0660a810ac.yaml diff --git a/deployment/frr/frr-container-ansible.yaml b/deployment/frr/frr-container-ansible.yaml new file mode 100644 index 0000000000..8544c3a859 --- /dev/null +++ b/deployment/frr/frr-container-ansible.yaml @@ -0,0 +1,236 @@ +heat_template_version: rocky + +description: > + Configures FRR on the host + +parameters: + ContainerFrrImage: + description: The container image for Frr + 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 + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + FrrBfdEnabled: + default: false + description: Enable Bidirectional Forwarding Detection + type: boolean + FrrBgpEnabled: + default: true + description: Enable BGP + type: boolean + FrrBgpAsn: + default: 65000 + description: Default ASN to be used within FRR + type: number + FrrBgpIpv4Enabled: + default: true + description: Enable BGP advertisement of IPv4 routes + type: boolean + FrrBgpIpv4AllowASIn: + default: false + description: Allow for IPv4 routes to be received and processed even if the + router detects its own ASN in the AS-Path. + type: boolean + FrrBgpIpv4SrcNetwork: + default: ctlplane + description: The name of the Neutron network from where the IP address of + the node will be taken and set as source IPv4 address on the + default route. + type: string + FrrBgpIpv6Enabled: + default: true + description: Enable BGP advertisement of IPv6 routes + type: boolean + FrrBgpIpv6AllowASIn: + default: false + description: Allow for IPv6 routes to be received and processed even if the + router detects its own ASN in the AS-Path. + type: boolean + FrrBgpIpv6SrcNetwork: + default: ctlplane + description: The name of the Neutron network from where the IP address of + the node will be taken and set as source IPv6 address on the + default route. + type: string + FrrBgpUplinks: + default: ['nic1', 'nic2'] + description: List of uplink network interfaces. + type: comma_delimited_list + FrrBgpUplinksScope: + default: 'internal' + type: string + description: Either peer with internal (iBGP) or external (eBGP) neighbors. + constraints: + - allowed_values: ['internal', 'external'] + FrrLoggingSource: + type: json + default: + tag: system.frr + file: /var/log/containers/frr/frr.log + FrrLogLevel: + default: 'informational' + type: string + description: log level + constraints: + - allowed_values: ['emergencies', 'alerts', 'critical', 'errors', + 'warnings', 'notifications', 'informational', + 'debugging'] + FrrZebraEnabled: + default: true + description: enable Zebra + type: boolean + FrrPacemakerVipNic: + default: 'lo' + description: Name of the nic that the pacemaker VIPs will be added to when + runninng with FRR. + type: string + FrrBgpNeighborTtlSecurityHops: + default: 1 + description: Enforce Generalized TTL Security Mechanism (GTSM) where only + neighbors that are the specified number of hops away will be + allowed to become neighbors. Setting value to zero or less + will disable GTSM. + type: number + +outputs: + role_data: + description: Role data for the FRR service + value: + service_name: frr + config_settings: + tripleo::pacemaker::force_nic: {get_param: FrrPacemakerVipNic} + service_config_settings: + rsyslog: + tripleo_logging_sources_frr: + - {get_param: FrrLoggingSource} + firewall_rules: + map_merge: + - if: + - {get_param: FrrBgpEnabled} + - '156 bgp tcp': + proto: 'tcp' + dport: 179 + - {} + - if: + - {get_param: FrrBfdEnabled} + - '156 bfd udp': + proto: 'udp' + dport: + - 3784 + - 3785 + - {} + kolla_config: + /var/lib/kolla/config_files/frr.json: + # Note: This is currently needed because watchfrr *always* demonizes + command: bash -c $* -- eval /usr/lib/frr/frr start && /bin/sleep infinity + config_files: + - source: "/var/lib/kolla/config_files/src/*" + dest: "/" + merge: true + preserve_properties: true + permissions: + - path: /etc/frr + owner: frr:frr + recurse: true + - path: /var/log/frr + owner: frr:frr + recurse: true + + docker_config: + # NOTE: Create container-startup-config file in step 0 so that TripleO + # does not auto-start the FRR container (it does so for containers in + # step 1-5). FRR needs to be started in step 1 but before any HA service. + step_0: + frr: + start_order: 0 + image: {get_param: ContainerFrrImage} + net: host + state: stopped + restart: always + healthcheck: + test: /openstack/healthcheck + cap_add: + - NET_BIND_SERVICE + - NET_RAW + - NET_ADMIN + - SYS_ADMIN + # We cannot bind mount the InternalTLSCAFile as freeipa might not + # be reachable without frr + volumes: + - /etc/hosts:/etc/hosts:ro + - /etc/localtime:/etc/localtime:ro + - /dev/log:/dev/log + # OpenSSL trusted CAs + - /etc/pki/ca-trust/extracted:/etc/pki/ca-trust/extracted:ro + - /etc/pki/ca-trust/source/anchors:/etc/pki/ca-trust/source/anchors:ro + - /etc/pki/tls/certs/ca-bundle.crt:/etc/pki/tls/certs/ca-bundle.crt:ro + - /etc/pki/tls/certs/ca-bundle.trust.crt:/etc/pki/tls/certs/ca-bundle.trust.crt:ro + - /etc/pki/tls/cert.pem:/etc/pki/tls/cert.pem:ro + - /var/lib/kolla/config_files/frr.json:/var/lib/kolla/config_files/config.json:ro + - /var/lib/config-data/ansible-generated/frr:/var/lib/kolla/config_files/src:ro + - /var/log/containers/frr:/var/log/frr:z + environment: + KOLLA_CONFIG_STRATEGY: COPY_ALWAYS + host_prep_tasks: + - name: create persistent directories + file: + path: "{{ item.path }}" + state: directory + setype: "{{ item.setype }}" + mode: "{{ item.mode }}" + with_items: + - { 'path': /var/log/containers/frr, 'setype': container_file_t, 'mode': '0750' } + - { 'path': /var/lib/config-data/ansible-generated/frr, 'setype': container_file_t, 'mode': '0750' } + deploy_steps_tasks: + - name: Configure and start FRR before an HA service + when: step|int == 1 + block: + - name: Configure FRR + import_role: + name: tripleo_frr + vars: + tripleo_frr_config_basedir: /var/lib/config-data/ansible-generated/frr + tripleo_frr_bfd: {get_param: FrrBfdEnabled} + tripleo_frr_bgp: {get_param: FrrBgpEnabled} + tripleo_frr_bgp_asn: {get_param: FrrBgpAsn} + tripleo_frr_bgp_ipv4: {get_param: FrrBgpIpv4Enabled} + tripleo_frr_bgp_ipv4_allowas_in: {get_param: FrrBgpIpv4AllowASIn} + tripleo_frr_bgp_ipv4_src_network: {get_param: FrrBgpIpv4SrcNetwork} + tripleo_frr_bgp_ipv6: {get_param: FrrBgpIpv6Enabled} + tripleo_frr_bgp_ipv6_allowas_in: {get_param: FrrBgpIpv6AllowASIn} + tripleo_frr_bgp_ipv6_src_network: {get_param: FrrBgpIpv6SrcNetwork} + tripleo_frr_bgp_neighbor_ttl_security_hops: {get_param: FrrBgpNeighborTtlSecurityHops} + tripleo_frr_bgp_uplinks: {get_param: FrrBgpUplinks} + tripleo_frr_bgp_uplinks_scope: {get_param: FrrBgpUplinksScope} + tripleo_frr_log_level: {get_param: FrrLogLevel} + tripleo_frr_zebra: {get_param: FrrZebraEnabled} + - name: Start FRR + include_role: + name: tripleo_container_manage + vars: + tripleo_container_manage_config: "/var/lib/tripleo-config/container-startup-config/step_0" + tripleo_container_manage_config_id: "frr" + tripleo_container_manage_config_patterns: "frr.json" + tripleo_container_manage_systemd_order: true + update_tasks: [] + upgrade_tasks: [] diff --git a/environments/hyperconverged-ceph.yaml b/environments/hyperconverged-ceph.yaml index f7b8c53dc1..39d0a8e2b0 100644 --- a/environments/hyperconverged-ceph.yaml +++ b/environments/hyperconverged-ceph.yaml @@ -60,3 +60,4 @@ parameter_defaults: - OS::TripleO::Services::Rear - OS::TripleO::Services::Rhsm - OS::TripleO::Services::Podman + - OS::TripleO::Services::Frr diff --git a/environments/services/frr.yaml b/environments/services/frr.yaml new file mode 100644 index 0000000000..5865cd8c0b --- /dev/null +++ b/environments/services/frr.yaml @@ -0,0 +1,9 @@ +resource_registry: + OS::TripleO::Services::Frr: ../../deployment/frr/frr-container-ansible.yaml + +parameter_defaults: + # These need to be disabled by default when using FRR/BGP because + # the gateways and other controllers are very unlikely to be reachable + # that early in the deployment (i.e. BGP needs to be up and functional for that to work) + ValidateControllersIcmp: false + ValidateGatewaysIcmp: false diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index 6031d3faf5..7af4a91ec4 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -323,6 +323,7 @@ resource_registry: OS::TripleO::Services::Multipathd: OS::Heat::None OS::TripleO::Services::GlanceApiEdge: OS::Heat::None OS::TripleO::Services::HAproxyEdge: OS::Heat::None + OS::TripleO::Services::Frr: OS::Heat::None # Logging OS::TripleO::Services::Tmpwatch: deployment/logrotate/tmpwatch-install.yaml diff --git a/releasenotes/notes/frr-support-21648d0660a810ac.yaml b/releasenotes/notes/frr-support-21648d0660a810ac.yaml new file mode 100644 index 0000000000..67e2081aaf --- /dev/null +++ b/releasenotes/notes/frr-support-21648d0660a810ac.yaml @@ -0,0 +1,15 @@ +--- +features: + - | + Added FRR as a new TripleO service. This service allows cloud operators to + deploy pure L3 control plane via BGP protocol. This has the following + benefits: + + * Obtain multiple routes on multiple uplinks + * BGP used for ECMP load balancing and BFD for resiliency + * Advertise routes to API endpoints + * Less L2 traffic + + Please refer to `Install and Configure FRRouter specification + `_ + for more information. diff --git a/roles/BlockStorage.yaml b/roles/BlockStorage.yaml index 6b38c50dd5..14953926ef 100644 --- a/roles/BlockStorage.yaml +++ b/roles/BlockStorage.yaml @@ -24,6 +24,7 @@ - OS::TripleO::Services::CACerts - OS::TripleO::Services::CinderBackendVRTSHyperScale - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/CellController.yaml b/roles/CellController.yaml index 1015158899..1c031a7452 100644 --- a/roles/CellController.yaml +++ b/roles/CellController.yaml @@ -31,6 +31,7 @@ - OS::TripleO::Services::Clustercheck - OS::TripleO::Services::Collectd - OS::TripleO::Services::ContainerImagePrepare + - OS::TripleO::Services::Frr - OS::TripleO::Services::HAproxy - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/CephAll.yaml b/roles/CephAll.yaml index 4c9c3ef5a8..4861312fbc 100644 --- a/roles/CephAll.yaml +++ b/roles/CephAll.yaml @@ -28,6 +28,7 @@ - OS::TripleO::Services::CephRgw - OS::TripleO::Services::CephOSD - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/CephFile.yaml b/roles/CephFile.yaml index a184bbbb38..5e8d48551c 100644 --- a/roles/CephFile.yaml +++ b/roles/CephFile.yaml @@ -25,6 +25,7 @@ - OS::TripleO::Services::CephMds - OS::TripleO::Services::CephOSD - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/CephObject.yaml b/roles/CephObject.yaml index 05e47cb492..950f95e1bc 100644 --- a/roles/CephObject.yaml +++ b/roles/CephObject.yaml @@ -25,6 +25,7 @@ - OS::TripleO::Services::CephRgw - OS::TripleO::Services::CephOSD - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/CephStorage.yaml b/roles/CephStorage.yaml index 58df1cd552..d1d1913d9f 100644 --- a/roles/CephStorage.yaml +++ b/roles/CephStorage.yaml @@ -24,6 +24,7 @@ - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephOSD - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/Compute.yaml b/roles/Compute.yaml index 115f6c390f..3d1e37445c 100644 --- a/roles/Compute.yaml +++ b/roles/Compute.yaml @@ -45,6 +45,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeAlt.yaml b/roles/ComputeAlt.yaml index dc8574181d..d509e7f553 100644 --- a/roles/ComputeAlt.yaml +++ b/roles/ComputeAlt.yaml @@ -30,6 +30,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgentAlt + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::IscsidAlt - OS::TripleO::Services::Kernel diff --git a/roles/ComputeDVR.yaml b/roles/ComputeDVR.yaml index 628b6048cc..082c95cd8a 100644 --- a/roles/ComputeDVR.yaml +++ b/roles/ComputeDVR.yaml @@ -32,6 +32,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeHCI.yaml b/roles/ComputeHCI.yaml index 6505d27721..433f9d419c 100644 --- a/roles/ComputeHCI.yaml +++ b/roles/ComputeHCI.yaml @@ -34,6 +34,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeHCIOvsDpdk.yaml b/roles/ComputeHCIOvsDpdk.yaml index 424dca1b88..2c0a70fddd 100644 --- a/roles/ComputeHCIOvsDpdk.yaml +++ b/roles/ComputeHCIOvsDpdk.yaml @@ -38,6 +38,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsDpdk + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeHCISriov.yaml b/roles/ComputeHCISriov.yaml index 00ef4596c9..2d99e632a2 100644 --- a/roles/ComputeHCISriov.yaml +++ b/roles/ComputeHCISriov.yaml @@ -34,6 +34,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeInstanceHA.yaml b/roles/ComputeInstanceHA.yaml index bcd65a4068..02b1950807 100644 --- a/roles/ComputeInstanceHA.yaml +++ b/roles/ComputeInstanceHA.yaml @@ -32,6 +32,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeLiquidio.yaml b/roles/ComputeLiquidio.yaml index 1839dadc13..3d7d38cd6f 100644 --- a/roles/ComputeLiquidio.yaml +++ b/roles/ComputeLiquidio.yaml @@ -33,6 +33,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeLocalEphemeral.yaml b/roles/ComputeLocalEphemeral.yaml index 1597a6c9ab..254f41926a 100644 --- a/roles/ComputeLocalEphemeral.yaml +++ b/roles/ComputeLocalEphemeral.yaml @@ -34,6 +34,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeOvsDpdk.yaml b/roles/ComputeOvsDpdk.yaml index 2f91fb70b1..f6af423bb6 100644 --- a/roles/ComputeOvsDpdk.yaml +++ b/roles/ComputeOvsDpdk.yaml @@ -35,6 +35,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsDpdk + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeOvsDpdkRT.yaml b/roles/ComputeOvsDpdkRT.yaml index 7aaf2ac292..093522bf52 100644 --- a/roles/ComputeOvsDpdkRT.yaml +++ b/roles/ComputeOvsDpdkRT.yaml @@ -37,6 +37,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsDpdk + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeOvsDpdkSriov.yaml b/roles/ComputeOvsDpdkSriov.yaml index 68b266eabf..1faa9e351c 100644 --- a/roles/ComputeOvsDpdkSriov.yaml +++ b/roles/ComputeOvsDpdkSriov.yaml @@ -31,6 +31,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsDpdk + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeOvsDpdkSriovRT.yaml b/roles/ComputeOvsDpdkSriovRT.yaml index 485186fca9..651b27b0aa 100644 --- a/roles/ComputeOvsDpdkSriovRT.yaml +++ b/roles/ComputeOvsDpdkSriovRT.yaml @@ -34,6 +34,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsDpdk + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputePPC64LE.yaml b/roles/ComputePPC64LE.yaml index 3e95583f1e..cfd8171699 100644 --- a/roles/ComputePPC64LE.yaml +++ b/roles/ComputePPC64LE.yaml @@ -32,6 +32,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeRBDEphemeral.yaml b/roles/ComputeRBDEphemeral.yaml index 92a8adc9d9..b0d7e855f6 100644 --- a/roles/ComputeRBDEphemeral.yaml +++ b/roles/ComputeRBDEphemeral.yaml @@ -34,6 +34,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeRealTime.yaml b/roles/ComputeRealTime.yaml index c4bea0f103..5d93a126eb 100644 --- a/roles/ComputeRealTime.yaml +++ b/roles/ComputeRealTime.yaml @@ -42,6 +42,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeSriov.yaml b/roles/ComputeSriov.yaml index f333ca59b9..4d074a36e7 100644 --- a/roles/ComputeSriov.yaml +++ b/roles/ComputeSriov.yaml @@ -30,6 +30,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeSriovIB.yaml b/roles/ComputeSriovIB.yaml index 4356a3b079..ddbfb82492 100644 --- a/roles/ComputeSriovIB.yaml +++ b/roles/ComputeSriovIB.yaml @@ -30,6 +30,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/ComputeSriovRT.yaml b/roles/ComputeSriovRT.yaml index 6a878c2cb5..abfa13a5a2 100644 --- a/roles/ComputeSriovRT.yaml +++ b/roles/ComputeSriovRT.yaml @@ -33,6 +33,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/Controller.yaml b/roles/Controller.yaml index 87463434bd..f50f70993a 100644 --- a/roles/Controller.yaml +++ b/roles/Controller.yaml @@ -91,6 +91,7 @@ - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd - OS::TripleO::Services::ExternalSwiftProxy + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd diff --git a/roles/ControllerAllNovaStandalone.yaml b/roles/ControllerAllNovaStandalone.yaml index 4732dae49a..a31faabe4d 100644 --- a/roles/ControllerAllNovaStandalone.yaml +++ b/roles/ControllerAllNovaStandalone.yaml @@ -56,6 +56,7 @@ - OS::TripleO::Services::DesignateMDNS - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::GlanceApi diff --git a/roles/ControllerNoCeph.yaml b/roles/ControllerNoCeph.yaml index a42dc0f75d..5f82b3ddf8 100644 --- a/roles/ControllerNoCeph.yaml +++ b/roles/ControllerNoCeph.yaml @@ -78,6 +78,7 @@ - OS::TripleO::Services::DesignateMDNS - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::ExternalSwiftProxy - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi diff --git a/roles/ControllerNovaStandalone.yaml b/roles/ControllerNovaStandalone.yaml index dee0429593..2b69c7b29e 100644 --- a/roles/ControllerNovaStandalone.yaml +++ b/roles/ControllerNovaStandalone.yaml @@ -64,6 +64,7 @@ - OS::TripleO::Services::Clustercheck - OS::TripleO::Services::Collectd - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::ExternalSwiftProxy - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi diff --git a/roles/ControllerOpenstack.yaml b/roles/ControllerOpenstack.yaml index 739d989576..df87950cae 100644 --- a/roles/ControllerOpenstack.yaml +++ b/roles/ControllerOpenstack.yaml @@ -61,6 +61,7 @@ - OS::TripleO::Services::DesignateMDNS - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::GlanceApi diff --git a/roles/ControllerSriov.yaml b/roles/ControllerSriov.yaml index 27cb45e966..d3f26974e5 100644 --- a/roles/ControllerSriov.yaml +++ b/roles/ControllerSriov.yaml @@ -83,6 +83,7 @@ - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Docker - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::ExternalSwiftProxy - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi diff --git a/roles/ControllerStorageDashboard.yaml b/roles/ControllerStorageDashboard.yaml index 049ca60d01..6df87e40dd 100644 --- a/roles/ControllerStorageDashboard.yaml +++ b/roles/ControllerStorageDashboard.yaml @@ -88,6 +88,7 @@ - OS::TripleO::Services::DesignateMDNS - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::ExternalSwiftProxy - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi diff --git a/roles/ControllerStorageNfs.yaml b/roles/ControllerStorageNfs.yaml index c30e19640c..ac33b82586 100644 --- a/roles/ControllerStorageNfs.yaml +++ b/roles/ControllerStorageNfs.yaml @@ -89,6 +89,7 @@ - OS::TripleO::Services::DesignateMDNS - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::ExternalSwiftProxy - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi diff --git a/roles/Database.yaml b/roles/Database.yaml index d165cb1c24..3c13c10cc0 100644 --- a/roles/Database.yaml +++ b/roles/Database.yaml @@ -16,6 +16,7 @@ - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd - OS::TripleO::Services::Clustercheck + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/DistributedCompute.yaml b/roles/DistributedCompute.yaml index 8a584245bf..71492f9012 100644 --- a/roles/DistributedCompute.yaml +++ b/roles/DistributedCompute.yaml @@ -33,6 +33,7 @@ - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApiEdge - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec diff --git a/roles/DistributedComputeHCI.yaml b/roles/DistributedComputeHCI.yaml index d9e2c15bd4..b48087e10e 100644 --- a/roles/DistributedComputeHCI.yaml +++ b/roles/DistributedComputeHCI.yaml @@ -42,6 +42,7 @@ - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApiEdge - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec diff --git a/roles/DistributedComputeHCIDashboard.yaml b/roles/DistributedComputeHCIDashboard.yaml index ae51fde4a0..f5db2b55c9 100644 --- a/roles/DistributedComputeHCIDashboard.yaml +++ b/roles/DistributedComputeHCIDashboard.yaml @@ -44,6 +44,7 @@ - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent - OS::TripleO::Services::Etcd + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApiEdge - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec diff --git a/roles/DistributedComputeHCIScaleOut.yaml b/roles/DistributedComputeHCIScaleOut.yaml index f1f3525c9a..4f2f12e8c7 100644 --- a/roles/DistributedComputeHCIScaleOut.yaml +++ b/roles/DistributedComputeHCIScaleOut.yaml @@ -34,6 +34,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::HAproxyEdge - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec diff --git a/roles/DistributedComputeScaleOut.yaml b/roles/DistributedComputeScaleOut.yaml index c82472bec9..4b49a4aaf7 100644 --- a/roles/DistributedComputeScaleOut.yaml +++ b/roles/DistributedComputeScaleOut.yaml @@ -31,6 +31,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::HAproxyEdge - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec diff --git a/roles/HciCephAll.yaml b/roles/HciCephAll.yaml index c9e6a3e85c..e982b79e58 100644 --- a/roles/HciCephAll.yaml +++ b/roles/HciCephAll.yaml @@ -40,6 +40,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/HciCephFile.yaml b/roles/HciCephFile.yaml index 862bdb4fad..2af919358d 100644 --- a/roles/HciCephFile.yaml +++ b/roles/HciCephFile.yaml @@ -35,6 +35,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/HciCephMon.yaml b/roles/HciCephMon.yaml index 4b512eaaf6..18dacdb1c5 100644 --- a/roles/HciCephMon.yaml +++ b/roles/HciCephMon.yaml @@ -36,6 +36,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/HciCephObject.yaml b/roles/HciCephObject.yaml index 271b6533aa..c1b577b1ee 100644 --- a/roles/HciCephObject.yaml +++ b/roles/HciCephObject.yaml @@ -35,6 +35,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid diff --git a/roles/IronicConductor.yaml b/roles/IronicConductor.yaml index a0c23d8a8e..3d8632d56f 100644 --- a/roles/IronicConductor.yaml +++ b/roles/IronicConductor.yaml @@ -17,6 +17,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::IronicConductor diff --git a/roles/Messaging.yaml b/roles/Messaging.yaml index 14ce32e4b7..0ea4abf6a4 100644 --- a/roles/Messaging.yaml +++ b/roles/Messaging.yaml @@ -15,6 +15,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/Networker.yaml b/roles/Networker.yaml index 946714a660..f2f4041304 100644 --- a/roles/Networker.yaml +++ b/roles/Networker.yaml @@ -19,6 +19,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::IronicNeutronAgent diff --git a/roles/NetworkerSriov.yaml b/roles/NetworkerSriov.yaml index 25696566be..dff8fb7853 100644 --- a/roles/NetworkerSriov.yaml +++ b/roles/NetworkerSriov.yaml @@ -20,6 +20,7 @@ - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd - OS::TripleO::Services::Docker + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::IronicNeutronAgent diff --git a/roles/NovaManager.yaml b/roles/NovaManager.yaml index 50e0bd5bc2..19946db380 100644 --- a/roles/NovaManager.yaml +++ b/roles/NovaManager.yaml @@ -15,6 +15,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/Novacontrol.yaml b/roles/Novacontrol.yaml index d676bcfd1c..031d589d42 100644 --- a/roles/Novacontrol.yaml +++ b/roles/Novacontrol.yaml @@ -16,6 +16,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/ObjectStorage.yaml b/roles/ObjectStorage.yaml index 991c65a06f..77c096a6de 100644 --- a/roles/ObjectStorage.yaml +++ b/roles/ObjectStorage.yaml @@ -30,6 +30,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles/Standalone.yaml b/roles/Standalone.yaml index 0e1e290498..9b4694a743 100644 --- a/roles/Standalone.yaml +++ b/roles/Standalone.yaml @@ -89,6 +89,7 @@ - OS::TripleO::Services::DockerRegistry - OS::TripleO::Services::Etcd - OS::TripleO::Services::ExternalSwiftProxy + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd diff --git a/roles/Telemetry.yaml b/roles/Telemetry.yaml index a4a529eb7b..3ff95d837c 100644 --- a/roles/Telemetry.yaml +++ b/roles/Telemetry.yaml @@ -26,6 +26,7 @@ - OS::TripleO::Services::CephExternal - OS::TripleO::Services::Collectd - OS::TripleO::Services::ContainersLogrotateCrond + - OS::TripleO::Services::Frr - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd - OS::TripleO::Services::GnocchiStatsd diff --git a/roles/Undercloud.yaml b/roles/Undercloud.yaml index 4d70fc6347..4ee43023e3 100644 --- a/roles/Undercloud.yaml +++ b/roles/Undercloud.yaml @@ -38,6 +38,7 @@ - OS::TripleO::Services::ContainerImagePrepare - OS::TripleO::Services::ContainersLogrotateCrond - OS::TripleO::Services::DockerRegistry + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd diff --git a/roles_data.yaml b/roles_data.yaml index abb6a78a0a..d28b9777f1 100644 --- a/roles_data.yaml +++ b/roles_data.yaml @@ -94,6 +94,7 @@ - OS::TripleO::Services::DesignateSink - OS::TripleO::Services::Etcd - OS::TripleO::Services::ExternalSwiftProxy + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd @@ -232,6 +233,7 @@ - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid @@ -291,6 +293,7 @@ - OS::TripleO::Services::CACerts - OS::TripleO::Services::CinderBackendVRTSHyperScale - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid @@ -345,6 +348,7 @@ - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel @@ -394,6 +398,7 @@ - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephOSD - OS::TripleO::Services::Collectd + - OS::TripleO::Services::Frr - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Kernel diff --git a/roles_data_undercloud.yaml b/roles_data_undercloud.yaml index aadccb2db0..86d9bac371 100644 --- a/roles_data_undercloud.yaml +++ b/roles_data_undercloud.yaml @@ -41,6 +41,7 @@ - OS::TripleO::Services::ContainerImagePrepare - OS::TripleO::Services::ContainersLogrotateCrond - OS::TripleO::Services::DockerRegistry + - OS::TripleO::Services::Frr - OS::TripleO::Services::GlanceApi - OS::TripleO::Services::GnocchiApi - OS::TripleO::Services::GnocchiMetricd