Skip to content

Commit

Permalink
Add Storage NFS network for Manila to uni04delta
Browse files Browse the repository at this point in the history
Manila tests need to connect to the share for both cephfs
and ganesha tests, and they use a special (openstack)
network for that [1].

This patch adds the NFS storage network (storagenfs)
with VLAN 24 and range 172.21.0.0/24 in uni04delta.

The storagenfs network is connected to ceph and compute
EDPM nodes. A NNCP, NAD, L2Advertisement and IPAddressPool
are defined for the NFS network so that a pod in k8s can
connect to it; such as the tempest pod which will perform
storage tests.

TODO: update Manila CRDs to use this network.

[1] https://opendev.org/openstack/manila-tempest-plugin/src/branch/master/manila_tempest_tests/config.py#L99

Jira: https://issues.redhat.com/browse/OSPRH-7417

Signed-off-by: John Fulton <[email protected]>
  • Loading branch information
fultonj committed Aug 29, 2024
1 parent 449b690 commit 928cbe2
Show file tree
Hide file tree
Showing 10 changed files with 211 additions and 0 deletions.
34 changes: 34 additions & 0 deletions examples/dt/uni04delta/control-plane/nncp/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,21 @@ data:
tenant_ip: 172.19.0.5
ctlplane_ip: 192.168.122.10
storage_ip: 172.18.0.5
storagenfs_ip: 172.21.0.5
node_1:
name: master-1
internalapi_ip: 172.17.0.6
tenant_ip: 172.19.0.6
ctlplane_ip: 192.168.122.11
storage_ip: 172.18.0.6
storagenfs_ip: 172.21.0.6
node_2:
name: master-2
internalapi_ip: 172.17.0.7
tenant_ip: 172.19.0.7
ctlplane_ip: 192.168.122.12
storage_ip: 172.18.0.7
storagenfs_ip: 172.21.0.7

ctlplane:
dnsDomain: ctlplane.example.com
Expand Down Expand Up @@ -127,6 +130,37 @@ data:
}
}
storagenfs:
dnsDomain: storagenfs.example.com
subnets:
- allocationRanges:
- end: 172.21.0.250
start: 172.21.0.100
cidr: 172.21.0.0/24
gateway: 172.21.0.1
name: subnet1
vlan: 24
mtu: 1500
prefix-length: 24
iface: storagenfs
vlan: 24
base_iface: enp6s0
lb_addresses:
- 172.21.0.80-172.21.0.90
net-attach-def: |
{
"cniVersion": "0.3.1",
"name": "storagenfs",
"type": "macvlan",
"master": "storagenfs",
"ipam": {
"type": "whereabouts",
"range": "172.21.0.0/24",
"range_start": "172.21.0.100",
"range_end": "172.21.0.250"
}
}
storagemgmt:
dnsDomain: storagemgmt.example.com
subnets:
Expand Down
8 changes: 8 additions & 0 deletions examples/dt/uni04delta/edpm-pre-ceph/nodeset/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ data:
subnetName: subnet1
- name: storagemgmt
subnetName: subnet1
- name: storagenfs
subnetName: subnet1

nodes:
edpm-ceph-0:
Expand All @@ -111,6 +113,8 @@ data:
subnetName: subnet1
- name: storageMgmt
subnetName: subnet1
- name: storagenfs
subnetName: subnet1
edpm-ceph-1:
ansible:
ansibleHost: 192.168.122.106
Expand All @@ -124,6 +128,8 @@ data:
subnetName: subnet1
- name: storageMgmt
subnetName: subnet1
- name: storagenfs
subnetName: subnet1
edpm-ceph-2:
ansible:
ansibleHost: 192.168.122.107
Expand All @@ -137,6 +143,8 @@ data:
subnetName: subnet1
- name: storageMgmt
subnetName: subnet1
- name: storagenfs
subnetName: subnet1

services:
- bootstrap
Expand Down
6 changes: 6 additions & 0 deletions examples/dt/uni04delta/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ data:
subnetName: subnet1
- name: storagemgmt
subnetName: subnet1
- name: storagenfs
subnetName: subnet1

nodes:
edpm-compute-0:
Expand All @@ -119,6 +121,8 @@ data:
subnetName: subnet1
- name: tenant
subnetName: subnet1
- name: storagenfs
subnetName: subnet1
edpm-compute-1:
ansible:
ansibleHost: 192.168.122.101
Expand All @@ -134,6 +138,8 @@ data:
subnetName: subnet1
- name: tenant
subnetName: subnet1
- name: storagenfs
subnetName: subnet1

services:
- bootstrap
Expand Down
22 changes: 22 additions & 0 deletions lib/networking/metallb/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,17 @@ replacements:
name: storage
fieldPaths:
- spec.addresses
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.lb_addresses
targets:
- select:
group: metallb.io
kind: IPAddressPool
name: storagenfs
fieldPaths:
- spec.addresses

# Loadbalancer interfaces
- source:
Expand Down Expand Up @@ -157,3 +168,14 @@ replacements:
name: internalapi
fieldPaths:
- spec.interfaces.0
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.iface
targets:
- select:
group: metallb.io
kind: L2Advertisement
name: storagenfs
fieldPaths:
- spec.interfaces.0
11 changes: 11 additions & 0 deletions lib/networking/metallb/metallb_l2advertisement.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,14 @@ spec:
- tenant
interfaces:
- _replaced_
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: storagenfs
namespace: metallb-system
spec:
ipAddressPools:
- storagenfs
interfaces:
- _replaced_
8 changes: 8 additions & 0 deletions lib/networking/metallb/ocp_ip_pools.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@ metadata:
name: tenant
labels:
osp/lb-addresses-type: standard
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
namespace: metallb-system
name: storagenfs
labels:
osp/lb-addresses-type: standard
10 changes: 10 additions & 0 deletions lib/networking/nad/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,13 @@ replacements:
name: datacentre
fieldPaths:
- spec.config
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.net-attach-def
targets:
- select:
kind: NetworkAttachmentDefinition
name: storagenfs
fieldPaths:
- spec.config
8 changes: 8 additions & 0 deletions lib/networking/nad/ocp_networks_netattach.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,11 @@ metadata:
labels:
osp/net: datacentre
osp/net-attach-def-type: standard
---
apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
name: storagenfs
labels:
osp/net: storagenfs
osp/net-attach-def-type: standard
88 changes: 88 additions & 0 deletions lib/nncp/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,34 @@ replacements:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=storage].mtu
# storage must be above storagenfs or it will match and reset it
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.base_iface
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].vlan.base-iface
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.vlan
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].vlan.id
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.mtu
targets:
- select:
kind: NodeNetworkConfigurationPolicy
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].mtu
# ctlplane type is ethernet (not vlan)
- source:
kind: ConfigMap
Expand Down Expand Up @@ -157,6 +185,16 @@ replacements:
name: node-0
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_0.storagenfs_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: node-0
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].ipv4.address.0.ip

# Static Node IPs: node-1
- source:
Expand Down Expand Up @@ -199,6 +237,16 @@ replacements:
name: node-1
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_1.storagenfs_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: node-1
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].ipv4.address.0.ip

# Static Node IPs: node-2
- source:
Expand Down Expand Up @@ -241,6 +289,16 @@ replacements:
name: node-2
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.ip
- source:
kind: ConfigMap
name: network-values
fieldPath: data.node_2.storagenfs_ip
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: node-2
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].ipv4.address.0.ip

# prefix-length: node-0
- source:
Expand Down Expand Up @@ -283,6 +341,16 @@ replacements:
name: node-0
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: node-0
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].ipv4.address.0.prefix-length

# prefix-length: node-1
- source:
Expand Down Expand Up @@ -325,6 +393,16 @@ replacements:
name: node-1
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: node-1
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].ipv4.address.0.prefix-length

# prefix-length: node-2
- source:
Expand Down Expand Up @@ -367,6 +445,16 @@ replacements:
name: node-2
fieldPaths:
- spec.desiredState.interfaces.[name=storage].ipv4.address.0.prefix-length
- source:
kind: ConfigMap
name: network-values
fieldPath: data.storagenfs.prefix-length
targets:
- select:
kind: NodeNetworkConfigurationPolicy
name: node-2
fieldPaths:
- spec.desiredState.interfaces.[name=storagenfs].ipv4.address.0.prefix-length

# Node names
- source:
Expand Down
16 changes: 16 additions & 0 deletions lib/nncp/ocp_node_template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,22 @@ spec:
base-iface: _replaced_
id: _replaced_
mtu: 1500
- description: storagenfs vlan interface
ipv4:
address:
- ip: _replaced_
prefix-length: _replaced_
enabled: true
dhcp: false
ipv6:
enabled: false
name: storagenfs
state: up
type: vlan
vlan:
base-iface: _replaced_
id: _replaced_
mtu: 1500
- description: ctlplane interface
name: _replaced_
state: up
Expand Down

0 comments on commit 928cbe2

Please sign in to comment.