diff --git a/automation/net-env/uni02beta-adoption.yaml b/automation/net-env/uni02beta-adoption.yaml index c4de01cd9..5db28fc1a 100644 --- a/automation/net-env/uni02beta-adoption.yaml +++ b/automation/net-env/uni02beta-adoption.yaml @@ -387,7 +387,7 @@ instances: storage: interface_name: enp6s0.121 ip_v4: 172.18.0.13 - mac_addr: "52:54:00:23:e0:fg" + mac_addr: "52:54:00:23:e0:10" mtu: 1500 netmask_v4: 255.255.255.0 network_name: storage @@ -406,6 +406,180 @@ instances: prefix_length_v4: 24 skip_nm: false vlan_id: 122 + + ocp-4: + hostname: osasinfra-worker-1 + name: ocp-4 + networks: + ctlplane: + interface_name: enp6s0 + ip_v4: 192.168.122.14 + mac_addr: "52:54:00:de:3d:97" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: ctlplane + prefix_length_v4: 24 + skip_nm: false + internalapi: + interface_name: enp6s0.120 + ip_v4: 172.17.0.14 + mac_addr: "52:54:00:63:20:1e" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: internalapi + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 120 + octavia: + interface_name: enp6s0.124 + ip_v4: 172.23.0.14 + mac_addr: "52:54:00:1e:24:18" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: octavia + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 124 + storage: + interface_name: enp6s0.121 + ip_v4: 172.18.0.14 + mac_addr: "52:54:00:23:e0:11" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: storage + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 121 + tenant: + interface_name: enp6s0.122 + ip_v4: 172.19.0.14 + mac_addr: "52:54:00:29:56:12" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: tenant + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 122 + + ocp-5: + hostname: osasinfra-worker-2 + name: ocp-5 + networks: + ctlplane: + interface_name: enp6s0 + ip_v4: 192.168.122.15 + mac_addr: "52:54:00:de:3d:98" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: ctlplane + prefix_length_v4: 24 + skip_nm: false + internalapi: + interface_name: enp6s0.120 + ip_v4: 172.17.0.15 + mac_addr: "52:54:00:63:20:1f" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: internalapi + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 120 + octavia: + interface_name: enp6s0.124 + ip_v4: 172.23.0.15 + mac_addr: "52:54:00:1e:24:19" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: octavia + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 124 + storage: + interface_name: enp6s0.121 + ip_v4: 172.18.0.15 + mac_addr: "52:54:00:23:e0:12" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: storage + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 121 + tenant: + interface_name: enp6s0.122 + ip_v4: 172.19.0.15 + mac_addr: "52:54:00:29:56:13" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: tenant + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 122 + + ocp-6: + hostname: osasinfra-worker-3 + name: ocp-6 + networks: + ctlplane: + interface_name: enp6s0 + ip_v4: 192.168.122.16 + mac_addr: "52:54:00:de:3d:99" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: ctlplane + prefix_length_v4: 24 + skip_nm: false + internalapi: + interface_name: enp6s0.120 + ip_v4: 172.17.0.16 + mac_addr: "52:54:00:63:20:20" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: internalapi + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 120 + octavia: + interface_name: enp6s0.124 + ip_v4: 172.23.0.16 + mac_addr: "52:54:00:1e:24:1a" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: octavia + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 124 + storage: + interface_name: enp6s0.121 + ip_v4: 172.18.0.16 + mac_addr: "52:54:00:23:e0:13" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: storage + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 121 + tenant: + interface_name: enp6s0.122 + ip_v4: 172.19.0.16 + mac_addr: "52:54:00:29:56:14" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: tenant + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 122 networker-0: hostname: networker-0 name: networker-0 diff --git a/automation/net-env/uni02beta.yaml b/automation/net-env/uni02beta.yaml index c4de01cd9..38e0d7bf3 100644 --- a/automation/net-env/uni02beta.yaml +++ b/automation/net-env/uni02beta.yaml @@ -387,7 +387,7 @@ instances: storage: interface_name: enp6s0.121 ip_v4: 172.18.0.13 - mac_addr: "52:54:00:23:e0:fg" + mac_addr: "52:54:00:23:e0:10" mtu: 1500 netmask_v4: 255.255.255.0 network_name: storage @@ -406,6 +406,177 @@ instances: prefix_length_v4: 24 skip_nm: false vlan_id: 122 + ocp-4: + hostname: osasinfra-worker-1 + name: ocp-4 + networks: + ctlplane: + interface_name: enp6s0 + ip_v4: 192.168.122.14 + mac_addr: "52:54:00:de:3d:97" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: ctlplane + prefix_length_v4: 24 + skip_nm: false + internalapi: + interface_name: enp6s0.120 + ip_v4: 172.17.0.14 + mac_addr: "52:54:00:63:20:1e" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: internalapi + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 120 + octavia: + interface_name: enp6s0.124 + ip_v4: 172.23.0.14 + mac_addr: "52:54:00:1e:24:18" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: octavia + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 124 + storage: + interface_name: enp6s0.121 + ip_v4: 172.18.0.14 + mac_addr: "52:54:00:23:e0:11" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: storage + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 121 + tenant: + interface_name: enp6s0.122 + ip_v4: 172.19.0.14 + mac_addr: "52:54:00:29:56:12" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: tenant + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 122 + ocp-5: + hostname: osasinfra-worker-2 + name: ocp-5 + networks: + ctlplane: + interface_name: enp6s0 + ip_v4: 192.168.122.15 + mac_addr: "52:54:00:de:3d:98" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: ctlplane + prefix_length_v4: 24 + skip_nm: false + internalapi: + interface_name: enp6s0.120 + ip_v4: 172.17.0.15 + mac_addr: "52:54:00:63:20:1f" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: internalapi + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 120 + octavia: + interface_name: enp6s0.124 + ip_v4: 172.23.0.15 + mac_addr: "52:54:00:1e:24:19" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: octavia + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 124 + storage: + interface_name: enp6s0.121 + ip_v4: 172.18.0.15 + mac_addr: "52:54:00:23:e0:12" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: storage + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 121 + tenant: + interface_name: enp6s0.122 + ip_v4: 172.19.0.15 + mac_addr: "52:54:00:29:56:13" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: tenant + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 122 + ocp-6: + hostname: osasinfra-worker-3 + name: ocp-6 + networks: + ctlplane: + interface_name: enp6s0 + ip_v4: 192.168.122.16 + mac_addr: "52:54:00:de:3d:99" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: ctlplane + prefix_length_v4: 24 + skip_nm: false + internalapi: + interface_name: enp6s0.120 + ip_v4: 172.17.0.16 + mac_addr: "52:54:00:63:20:20" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: internalapi + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 120 + octavia: + interface_name: enp6s0.124 + ip_v4: 172.23.0.16 + mac_addr: "52:54:00:1e:24:1a" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: octavia + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 124 + storage: + interface_name: enp6s0.121 + ip_v4: 172.18.0.16 + mac_addr: "52:54:00:23:e0:13" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: storage + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 121 + tenant: + interface_name: enp6s0.122 + ip_v4: 172.19.0.16 + mac_addr: "52:54:00:29:56:14" + mtu: 1500 + netmask_v4: 255.255.255.0 + network_name: tenant + parent_interface: enp6s0 + prefix_length_v4: 24 + skip_nm: false + vlan_id: 122 networker-0: hostname: networker-0 name: networker-0 diff --git a/automation/vars/uni02beta.yaml b/automation/vars/uni02beta.yaml index cfac920cc..5d7a6fb68 100644 --- a/automation/vars/uni02beta.yaml +++ b/automation/vars/uni02beta.yaml @@ -2,7 +2,22 @@ vas: uni02beta: stages: - - name: nncp-configuration + - pre_stage_run: + - name: Apply taint on worker-3 (Test Operator node) + type: cr + definition: + spec: + taints: + - effect: NoSchedule + key: testOperator + value: 'true' + - effect: NoExecute + key: testOperator + value: 'true' + kind: Node + resource_name: worker-3 + state: patched + name: nncp-configuration path: examples/dt/uni02beta/control-plane/networking/nncp wait_conditions: - >- diff --git a/examples/dt/uni02beta/README.md b/examples/dt/uni02beta/README.md index 74779cb67..b31b6fb7f 100644 --- a/examples/dt/uni02beta/README.md +++ b/examples/dt/uni02beta/README.md @@ -6,10 +6,12 @@ Focused on components with NFS-based backends. ## Node topology -| Node role | Machine Type | Count | -| ----------------- | ------------ | ----- | -| Compact OpenShift | vm | 3 | -| Compute nodes | vm | 2 | +| Node role | Machine Type | Count | +| ----------------------------------------- | ------------ | ----- | +| OpenShift masters (dedicated to OpenShift) | vm | 3 | +| OpenShift workers (OpenStack control plane)| vm | 3 | +| OpenShift worker (Test Operator) | vm | 1 | +| Compute nodes | vm | 2 | ## Services, enabled features and configurations diff --git a/examples/dt/uni02beta/control-plane/networking/nncp/kustomization.yaml b/examples/dt/uni02beta/control-plane/networking/nncp/kustomization.yaml index a64169617..80cbe9127 100644 --- a/examples/dt/uni02beta/control-plane/networking/nncp/kustomization.yaml +++ b/examples/dt/uni02beta/control-plane/networking/nncp/kustomization.yaml @@ -66,6 +66,132 @@ replacements: fieldPaths: - spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip + # Static Node IPs: node-4 + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_4.internalapi_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_4.tenant_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_4.ctlplane_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_4.storage_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip + + # Static Node IPs: node-5 + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_5.internalapi_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_5.tenant_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_5.ctlplane_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_5.storage_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip + + # Static Node IPs: node-6 + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_6.internalapi_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_6.tenant_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[name=tenant].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_6.ctlplane_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.ip + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_6.storage_ip + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip + # prefix-length: node-3 - source: kind: ConfigMap @@ -108,6 +234,132 @@ replacements: fieldPaths: - spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length + # prefix-length: node-4 + - source: + kind: ConfigMap + name: network-values + fieldPath: data.ctlplane.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.internalapi.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.tenant.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[name=tenant].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.storage.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length + + # prefix-length: node-5 + - source: + kind: ConfigMap + name: network-values + fieldPath: data.ctlplane.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.internalapi.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.tenant.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[name=tenant].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.storage.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length + + # prefix-length: node-6 + - source: + kind: ConfigMap + name: network-values + fieldPath: data.ctlplane.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[type=linux-bridge].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.internalapi.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[name=internalapi].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.tenant.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[name=tenant].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.storage.prefix-length + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length + - source: kind: ConfigMap name: network-values @@ -120,6 +372,42 @@ replacements: - metadata.name - spec.nodeSelector.[kubernetes.io/hostname] + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_4.name + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-4 + fieldPaths: + - metadata.name + - spec.nodeSelector.[kubernetes.io/hostname] + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_5.name + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-5 + fieldPaths: + - metadata.name + - spec.nodeSelector.[kubernetes.io/hostname] + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.node_6.name + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: node-6 + fieldPaths: + - metadata.name + - spec.nodeSelector.[kubernetes.io/hostname] + patches: - target: kind: NodeNetworkConfigurationPolicy diff --git a/examples/dt/uni02beta/control-plane/networking/nncp/nodes.yaml b/examples/dt/uni02beta/control-plane/networking/nncp/nodes.yaml index 0771797b4..c73f57aa7 100644 --- a/examples/dt/uni02beta/control-plane/networking/nncp/nodes.yaml +++ b/examples/dt/uni02beta/control-plane/networking/nncp/nodes.yaml @@ -5,3 +5,24 @@ metadata: name: node-3 labels: osp/nncm-config-type: standard +--- +apiVersion: nmstate.io/v1 +kind: NodeNetworkConfigurationPolicy +metadata: + name: node-4 + labels: + osp/nncm-config-type: standard +--- +apiVersion: nmstate.io/v1 +kind: NodeNetworkConfigurationPolicy +metadata: + name: node-5 + labels: + osp/nncm-config-type: standard +--- +apiVersion: nmstate.io/v1 +kind: NodeNetworkConfigurationPolicy +metadata: + name: node-6 + labels: + osp/nncm-config-type: standard diff --git a/examples/dt/uni02beta/control-plane/networking/nncp/values.yaml b/examples/dt/uni02beta/control-plane/networking/nncp/values.yaml index 2564c4ed1..82a3a2373 100644 --- a/examples/dt/uni02beta/control-plane/networking/nncp/values.yaml +++ b/examples/dt/uni02beta/control-plane/networking/nncp/values.yaml @@ -28,11 +28,29 @@ data: ctlplane_ip: 192.168.122.12 storage_ip: 172.18.0.7 node_3: - name: ostest-worker-0 + name: worker-0 internalapi_ip: 172.17.0.8 tenant_ip: 172.19.0.8 ctlplane_ip: 192.168.122.13 storage_ip: 172.18.0.8 + node_4: + name: worker-1 + internalapi_ip: 172.17.0.9 + tenant_ip: 172.19.0.9 + ctlplane_ip: 192.168.122.14 + storage_ip: 172.18.0.9 + node_5: + name: worker-2 + internalapi_ip: 172.17.0.10 + tenant_ip: 172.19.0.10 + ctlplane_ip: 192.168.122.15 + storage_ip: 172.18.0.10 + node_6: + name: worker-3 + internalapi_ip: 172.17.0.11 + tenant_ip: 172.19.0.11 + ctlplane_ip: 192.168.122.16 + storage_ip: 172.18.0.11 ctlplane: dnsDomain: ctlplane.example.com