diff --git a/automation/mocks/bgp-l3-xl-adoption.yaml b/automation/mocks/bgp-l3-xl-adoption.yaml new file mode 120000 index 000000000..ddf1cb9b2 --- /dev/null +++ b/automation/mocks/bgp-l3-xl-adoption.yaml @@ -0,0 +1 @@ +bgp-l3-xl.yaml \ No newline at end of file diff --git a/automation/vars/bgp-l3-xl-adoption.yaml b/automation/vars/bgp-l3-xl-adoption.yaml new file mode 100644 index 000000000..3f8e30867 --- /dev/null +++ b/automation/vars/bgp-l3-xl-adoption.yaml @@ -0,0 +1,89 @@ +--- +vas: + bgp-l3-xl-adoption: + stages: + - pre_stage_run: + - name: Apply taint on worker-9 + type: cr + definition: + spec: + taints: + - effect: NoSchedule + key: testOperator + value: 'true' + - effect: NoExecute + key: testOperator + value: 'true' + kind: Node + resource_name: worker-9 + state: patched + - name: Disable rp_filters on OCP nodes + type: cr + definition: + spec: + profile: + - data: | + [main] + summary=Optimize systems running OpenShift (provider specific parent profile) + include=-provider-${f:exec:cat:/var/lib/ocp-tuned/provider},openshift + + [sysctl] + net.ipv4.conf.enp7s0.rp_filter=0 + net.ipv4.conf.enp8s0.rp_filter=0 + name: openshift-no-reapply-sysctl + recommend: + - match: + # applied to all nodes except worker-9, because worker-9 has no enp8s0 + - label: kubernetes.io/hostname + value: worker-0 + - label: kubernetes.io/hostname + value: worker-1 + - label: kubernetes.io/hostname + value: worker-2 + - label: kubernetes.io/hostname + value: worker-3 + - label: kubernetes.io/hostname + value: worker-4 + - label: kubernetes.io/hostname + value: worker-5 + - label: kubernetes.io/hostname + value: worker-6 + - label: kubernetes.io/hostname + value: worker-7 + - label: kubernetes.io/hostname + value: worker-8 + - label: node-role.kubernetes.io/master + operand: + tunedConfig: + reapply_sysctl: false + priority: 15 + profile: openshift-no-reapply-sysctl + api_version: tuned.openshift.io/v1 + kind: Tuned + resource_name: openshift-no-reapply-sysctl + namespace: openshift-cluster-node-tuning-operator + state: present + name: nncp-configuration + path: examples/dt/bgp-l3-xl/control-plane/networking/nncp + wait_conditions: + - >- + oc -n openstack wait nncp + -l osp/nncm-config-type=standard + --for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured + --timeout=300s + values: + - name: network-values + src_file: values.yaml + build_output: nncp.yaml + + - name: networking + path: examples/dt/bgp-l3-xl/control-plane/networking + wait_conditions: + - >- + oc -n metallb-system wait pod + -l app=metallb -l component=speaker + --for condition=Ready + values: + - name: network-values + src_file: nncp/values.yaml + build_output: networking.yaml diff --git a/examples/dt/bgp-l3-xl/control-plane/networking/nncp/values.yaml b/examples/dt/bgp-l3-xl/control-plane/networking/nncp/values.yaml index 9f4513d86..6dc1f7d50 100644 --- a/examples/dt/bgp-l3-xl/control-plane/networking/nncp/values.yaml +++ b/examples/dt/bgp-l3-xl/control-plane/networking/nncp/values.yaml @@ -32,6 +32,23 @@ data: next-hop-address: 100.65.0.13 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.0.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.0.13 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.0.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.0.13 + next-hop-interface: enp9s0 + weight: 200 node_4: name: worker-1 internalapi_ip: 172.17.0.6 @@ -56,6 +73,23 @@ data: next-hop-address: 100.65.0.17 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.0.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.0.17 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.0.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.0.17 + next-hop-interface: enp9s0 + weight: 200 node_5: name: worker-2 internalapi_ip: 172.17.0.7 @@ -73,13 +107,30 @@ data: routes: config: - destination: 99.99.0.0/16 - next-hop-address: 100.64.0.25 + next-hop-address: 100.64.0.21 next-hop-interface: enp8s0 weight: 200 - destination: 99.99.0.0/16 next-hop-address: 100.65.0.21 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.0.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.0.21 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.0.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.0.21 + next-hop-interface: enp9s0 + weight: 200 node_6: name: worker-3 internalapi_ip: 172.17.0.8 @@ -104,7 +155,23 @@ data: next-hop-address: 100.65.1.13 next-hop-interface: enp9s0 weight: 200 - + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.1.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.1.13 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.1.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.1.13 + next-hop-interface: enp9s0 + weight: 200 node_7: name: worker-4 internalapi_ip: 172.17.0.9 @@ -129,6 +196,23 @@ data: next-hop-address: 100.65.1.17 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.1.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.1.17 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.1.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.1.17 + next-hop-interface: enp9s0 + weight: 200 node_8: name: worker-5 internalapi_ip: 172.17.0.10 @@ -153,6 +237,23 @@ data: next-hop-address: 100.65.1.21 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.1.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.1.21 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.1.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.1.21 + next-hop-interface: enp9s0 + weight: 200 node_9: name: worker-6 internalapi_ip: 172.17.0.11 @@ -177,6 +278,23 @@ data: next-hop-address: 100.65.2.13 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.2.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.2.13 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.2.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.2.13 + next-hop-interface: enp9s0 + weight: 200 node_10: name: worker-7 internalapi_ip: 172.17.0.12 @@ -201,6 +319,23 @@ data: next-hop-address: 100.65.2.17 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.2.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.2.17 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.2.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.2.17 + next-hop-interface: enp9s0 + weight: 200 node_11: name: worker-8 internalapi_ip: 172.17.0.13 @@ -225,6 +360,23 @@ data: next-hop-address: 100.65.2.21 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.2.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.2.21 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.2.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.2.21 + next-hop-interface: enp9s0 + weight: 200 # test worker node_12: name: worker-9 @@ -579,6 +731,23 @@ data: next-hop-address: 100.65.0.13 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.0.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.0.13 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.0.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.0.13 + next-hop-interface: enp9s0 + weight: 200 node4: bgpnet0: bgp_peer: 100.64.0.17 @@ -598,6 +767,23 @@ data: next-hop-address: 100.65.0.17 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.0.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.0.17 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.0.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.0.17 + next-hop-interface: enp9s0 + weight: 200 node5: bgpnet0: bgp_peer: 100.64.0.21 @@ -617,6 +803,23 @@ data: next-hop-address: 100.65.0.21 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.0.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.0.21 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.0.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.0.21 + next-hop-interface: enp9s0 + weight: 200 node6: bgpnet0: bgp_peer: 100.64.1.13 @@ -636,6 +839,23 @@ data: next-hop-address: 100.65.1.13 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.1.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.1.13 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.1.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.1.13 + next-hop-interface: enp9s0 + weight: 200 node7: bgpnet0: bgp_peer: 100.64.1.17 @@ -655,6 +875,23 @@ data: next-hop-address: 100.65.1.17 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.1.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.1.17 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.1.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.1.17 + next-hop-interface: enp9s0 + weight: 200 node8: bgpnet0: bgp_peer: 100.64.1.21 @@ -674,6 +911,23 @@ data: next-hop-address: 100.65.1.21 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.1.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.1.21 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.1.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.1.21 + next-hop-interface: enp9s0 + weight: 200 node9: bgpnet0: bgp_peer: 100.64.2.13 @@ -693,6 +947,23 @@ data: next-hop-address: 100.65.2.13 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.2.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.2.13 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.2.13 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.2.13 + next-hop-interface: enp9s0 + weight: 200 node10: bgpnet0: bgp_peer: 100.64.2.17 @@ -712,6 +983,23 @@ data: next-hop-address: 100.65.2.17 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.2.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.2.17 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.2.17 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.2.17 + next-hop-interface: enp9s0 + weight: 200 node11: bgpnet0: bgp_peer: 100.64.2.21 @@ -731,6 +1019,23 @@ data: next-hop-address: 100.65.2.21 next-hop-interface: enp9s0 weight: 200 + # routes needed for adoption + - destination: 172.31.0.0/24 + next-hop-address: 100.64.2.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 172.31.0.0/24 + next-hop-address: 100.65.2.21 + next-hop-interface: enp9s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.64.2.21 + next-hop-interface: enp8s0 + weight: 200 + - destination: 192.168.188.0/24 + next-hop-address: 100.65.2.21 + next-hop-interface: enp9s0 + weight: 200 node12: bgpnet0: bgp_peer: 100.64.10.1 diff --git a/zuul.d/projects.yaml b/zuul.d/projects.yaml index cbde00578..877f8340d 100644 --- a/zuul.d/projects.yaml +++ b/zuul.d/projects.yaml @@ -3,6 +3,7 @@ jobs: &id001 - noop - rhoso-architecture-validate-bgp-l3-xl + - rhoso-architecture-validate-bgp-l3-xl-adoption - rhoso-architecture-validate-bgp_dt01 - rhoso-architecture-validate-bgp_dt04_ipv6 - rhoso-architecture-validate-bmo01 diff --git a/zuul.d/validations.yaml b/zuul.d/validations.yaml index c1985939f..a69747272 100644 --- a/zuul.d/validations.yaml +++ b/zuul.d/validations.yaml @@ -16,6 +16,16 @@ parent: rhoso-architecture-base-job vars: cifmw_architecture_scenario: bgp-l3-xl +- job: + files: + - automation/mocks/bgp-l3-xl-adoption.yaml + - examples/dt/bgp-l3-xl/control-plane/networking + - examples/dt/bgp-l3-xl/control-plane/networking/nncp + - lib + name: rhoso-architecture-validate-bgp-l3-xl-adoption + parent: rhoso-architecture-base-job + vars: + cifmw_architecture_scenario: bgp-l3-xl-adoption - job: files: - automation/mocks/bgp_dt01.yaml