Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion playbooks/bgp/prepare-bgp-spines-leaves.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -272,9 +272,25 @@
state: present
when: _ip_version == 6

- name: Assign loopback IPv4 on router loopback interface
when:
- _ip_version == 4
- (router_loopback_ip | default('') | length) > 0
become: true
ansible.builtin.command:
cmd: >-
ip address replace {{ router_loopback_ip }}/32 dev lo
changed_when: true

- name: Configure FRR
vars:
_router_id: "{{ '' if _ip_version == 4 else '1.1.1.1' }}"
# Prefer loopback IP as BGP router-id when set; else 1.1.1.1 (IPv4 and IPv6).
_router_id: >-
{{
router_loopback_ip
if (router_loopback_ip | default('') | length) > 0
else '1.1.1.1'
}}
become: true
ansible.builtin.template:
src: templates/router-frr.conf.j2
Expand Down
2 changes: 1 addition & 1 deletion playbooks/bgp/templates/leaf-frr.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ router bgp {{ leaf_asn | default(64999) }}
{% endfor %}

neighbor uplink peer-group
neighbor uplink remote-as external
neighbor uplink remote-as {{ uplink_remote_as | default('external') }}
neighbor uplink bfd
neighbor uplink bfd profile tripleo
! neighbor uplink capability extended-nexthop
Expand Down
7 changes: 4 additions & 3 deletions playbooks/bgp/templates/router-frr.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,23 @@ debug bgp neighbor-events
debug bgp updates
debug bgp update-groups

router bgp 65000
router bgp {{ router_asn | default(65000) }}
{% if _router_id %}
bgp router-id {{_router_id}}
{% endif %}
bgp log-neighbor-changes
bgp graceful-shutdown

neighbor downlink peer-group
neighbor downlink remote-as internal
neighbor downlink remote-as {{ router_downlink_remote_as | default('internal') }}
neighbor downlink bfd
! neighbor downlink capability extended-nexthop
{% for iface in router_downlink_ifs %}
neighbor {{iface}} interface peer-group downlink
{% endfor %}

neighbor uplink peer-group
neighbor uplink remote-as external
neighbor uplink remote-as {{ router_uplink_remote_as | default('external') }}
neighbor uplink bfd
! neighbor uplink capability extended-nexthop
neighbor {{router_uplink_if}} interface peer-group uplink
Expand All @@ -54,6 +54,7 @@ router bgp 65000
neighbor uplink activate
neighbor downlink activate
neighbor downlink route-reflector-client
advertise-all-vni
exit-address-family

ip prefix-list only-default-host-prefixes permit 0.0.0.0/0
Expand Down
13 changes: 10 additions & 3 deletions playbooks/bgp/templates/spine-frr.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,16 @@ debug bgp neighbor-events
debug bgp updates
debug bgp update-groups

router bgp 65000
{% set _downlink_as_mode = spine_downlink_remote_as | default('external') %}
router bgp {{ spine_asn | default(65000) }}
{% if _router_id %}
bgp router-id {{_router_id}}
{% endif %}
bgp log-neighbor-changes
bgp graceful-shutdown

neighbor downlink peer-group
neighbor downlink remote-as external
neighbor downlink remote-as {{ _downlink_as_mode }}
neighbor downlink bfd
neighbor downlink bfd profile tripleo
! neighbor downlink capability extended-nexthop
Expand All @@ -31,7 +32,7 @@ router bgp 65000

{% if router_bool | default(false) %}
neighbor uplink peer-group
neighbor uplink remote-as internal
neighbor uplink remote-as {{ spine_uplink_remote_as | default('internal') }}
neighbor uplink bfd
neighbor uplink bfd profile tripleo
! neighbor uplink capability extended-nexthop
Expand All @@ -42,6 +43,9 @@ router bgp 65000
redistribute connected
neighbor downlink default-originate
neighbor downlink prefix-list only-host-prefixes in
{% if _downlink_as_mode == 'internal' %}
neighbor downlink route-reflector-client
{% endif %}
{% if router_bool | default(false) %}
neighbor uplink prefix-list only-default-host-prefixes in
neighbor uplink next-hop-self
Expand All @@ -53,6 +57,9 @@ router bgp 65000
neighbor downlink activate
neighbor downlink default-originate
neighbor downlink prefix-list only-host-prefixes in
{% if _downlink_as_mode == 'internal' %}
neighbor downlink route-reflector-client
{% endif %}
{% if router_bool | default(false) %}
neighbor uplink activate
neighbor uplink prefix-list only-default-host-prefixes in
Expand Down
7 changes: 7 additions & 0 deletions roles/ci_gen_kustomize_values/templates/bgp_dt05/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# See the OWNERS docs at https://www.kubernetes.dev/docs/guide/owners/

approvers:
- bgp-team

reviewers:
- bgp-team
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# source: bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2
{% set instances_names = [] %}
{% set rack = 'r' ~ rack_number %}
{% for _inst in cifmw_networking_env_definition.instances.keys() %}
{% if _inst.startswith('-'.join([rack, node_type])) %}
{% set _ = instances_names.append(_inst) %}
{% endif %}
{% endfor %}
data:
ssh_keys:
authorized: {{ cifmw_ci_gen_kustomize_values_ssh_authorizedkeys | b64encode }}
private: {{ cifmw_ci_gen_kustomize_values_ssh_private_key | b64encode }}
public: {{ cifmw_ci_gen_kustomize_values_ssh_public_key | b64encode }}
nova:
migration:
ssh_keys:
private: {{ cifmw_ci_gen_kustomize_values_migration_priv_key | b64encode }}
public: {{ cifmw_ci_gen_kustomize_values_migration_pub_key | b64encode }}
nodeset:
ansible:
ansibleUser: "zuul"
ansibleVars:
edpm_fips_mode: "{{ 'enabled' if cifmw_fips_enabled|default(false)|bool else 'check' }}"
timesync_ntp_servers:
- hostname: "{{ cifmw_ci_gen_kustomize_values_ntp_srv | default('pool.ntp.org') }}"
edpm_sshd_allowed_ranges:
{% set sshd_allowed_range = cifmw_ci_gen_kustomize_values_sshd_ranges | default([]) %}
{% for rack in ['r0', 'r1', 'r2'] %}
{% set _ = sshd_allowed_range.append(cifmw_networking_env_definition.networks['ctlplane' + rack].network_v4) %}
{% endfor %}
{% for range in sshd_allowed_range %}
- "{{ range }}"
{% endfor %}
nodes:
{% for instance in instances_names %}
{{ instance }}:
ansible:
{% set ctlplane_rack = 'ctlplane' + rack %}
ansibleHost: {{ cifmw_networking_env_definition.instances[instance].networks[ctlplane_rack].ip_v4 }}
{% if original_content.data.nodeset.nodes['edpm-' ~ instance].ansible.ansibleVars is defined %}
ansibleVars: {{ original_content.data.nodeset.nodes['edpm-' ~ instance].ansible.ansibleVars }}
{% endif %}
hostName: {{ instance }}
networks:
{% for net in cifmw_networking_env_definition.instances[instance].networks.keys() %}
{% if 'storagemgmt' not in net %}
- name: {{ net if net != ctlplane_rack else 'ctlplane' }}
subnetName: {{ 'subnet1' if net != ctlplane_rack else 'subnet' ~ rack_number }}
{% if 'ctlplane' in net %}
defaultRoute: true
fixedIP: {{ cifmw_networking_env_definition.instances[instance].networks[ctlplane_rack].ip_v4 }}
{% endif %}
{% endif %}
{% endfor %}
{% set peer_suffix = 1 if 'compute' in instance else 5 %}
- name: BgpNet0
subnetName: subnet{{ rack_number }}
fixedIP: 100.64.{{ rack_number }}.{{ peer_suffix + 1 }}
- name: BgpNet1
subnetName: subnet{{ rack_number }}
fixedIP: 100.65.{{ rack_number }}.{{ peer_suffix + 1 }}
- name: BgpMainNet
subnetName: subnet{{ rack_number }}
fixedIP: 99.99.{{ rack_number }}.{{ peer_suffix + 1 }}
- name: BgpMainNetV6
subnetName: subnet{{ rack_number }}
fixedIP: f00d:f00d:f00d:f00d:f00d:f00d:f00d:00{{ (rack_number | int) + 1 }}{{ 2 if 'compute' in instance else 3 }}
{% endfor %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# source: bgp_dt05/edpm-r0-compute-nodeset-values/values.yaml.j2
{% set node_type = "compute" %}
{% set rack_number = 0 %}
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# source: bgp_dt05/edpm-r0-networker-nodeset-values/values.yaml.j2
{% set node_type = "networker" %}
{% set rack_number = 0 %}
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# source: bgp_dt05/edpm-r1-compute-nodeset-values/values.yaml.j2
{% set node_type = "compute" %}
{% set rack_number = 1 %}
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# source: bgp_dt05/edpm-r1-networker-nodeset-values/values.yaml.j2
{% set node_type = "networker" %}
{% set rack_number = 1 %}
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# source: bgp_dt05/edpm-r2-compute-nodeset-values/values.yaml.j2
{% set node_type = "compute" %}
{% set rack_number = 2 %}
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
# source: bgp_dt05/edpm-r2-networker-nodeset-values/values.yaml.j2
{% set node_type = "networker" %}
{% set rack_number = 2 %}
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Loading
Loading