Skip to content

Commit 3ed50e2

Browse files
authored
Merge pull request #482 from rdiazcam/nfv_networker_poc
[NFV] Deploy Networker in ovs-dpdk-sriov scenario
2 parents 0562737 + b432e3d commit 3ed50e2

File tree

26 files changed

+1026
-1
lines changed

26 files changed

+1026
-1
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
cifmw_baremetal_hosts:
3+
networker-0:
4+
connection: ipmi://10.10.100.100
5+
boot_mode: UEFI
6+
nics:
7+
- mac: "6c:fe:54:3f:87:00"
8+
network: provision
9+
credentials_file: "/home/user/foo.yaml"
10+
root_device_hint_field: "wwnWithExtension"
11+
root_device_hint: "0x6ec2a72046f72f002b65936fbccfe6d7"
12+
label: openstack-networker
13+
compute-0:
14+
connection: ipmi://10.10.100.101
15+
boot_mode: UEFI
16+
nics:
17+
- mac: "6c:fe:54:3f:b4:90"
18+
network: provision
19+
credentials_file: "/home/user/foo.yaml"
20+
root_device_hint_field: "wwnWithExtension"
21+
root_device_hint: "0x6ec2a72046f746002b659a0cbb08577e"
22+
label: openstack-compute
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
vas:
3+
ovs-dpdk-sriov-networker:
4+
stages:
5+
- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-networker/nncp
6+
wait_conditions:
7+
- >-
8+
oc -n openstack wait nncp
9+
-l osp/nncm-config-type=standard
10+
--for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured
11+
--timeout=60s
12+
values:
13+
- name: network-values
14+
src_file: values.yaml
15+
build_output: nncp.yaml
16+
17+
- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-networker
18+
wait_conditions:
19+
- >-
20+
oc -n openstack wait osctlplane controlplane --for condition=Ready
21+
--timeout=20m
22+
values:
23+
- name: network-values
24+
src_file: ./nncp/values.yaml
25+
- name: service-values
26+
src_file: service-values.yaml
27+
build_output: control-plane.yaml
28+
29+
- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-networker/edpm/networkers
30+
wait_conditions:
31+
- >-
32+
oc -n openstack wait openstackdataplanenodeset
33+
networker-nodes
34+
--for condition=SetupReady
35+
--timeout=30m
36+
values:
37+
- name: edpm-networker-nodeset-values
38+
src_file: values.yaml
39+
build_output: edpm-networker-nodeset.yaml
40+
41+
- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-networker/edpm/computes
42+
wait_conditions:
43+
- >-
44+
oc -n openstack wait openstackdataplanenodeset
45+
compute-nodes
46+
--for condition=SetupReady
47+
--timeout=30m
48+
values:
49+
- name: edpm-compute-nodeset-values
50+
src_file: values.yaml
51+
build_output: edpm-compute-nodeset.yaml
52+
53+
- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-networker/edpm/deployment
54+
wait_conditions:
55+
- >-
56+
oc -n openstack wait openstackdataplanedeployment
57+
edpm-deployment
58+
--for condition=Ready
59+
--timeout=90m
60+
values:
61+
- name: edpm-deployment-values
62+
src_file: values.yaml
63+
build_output: edpm-deployment.yaml
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
nncp.yaml
2+
control-plane.yaml
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Deployed Topology - NFV/OVS-DPDK-SRIOV with Networker Nodeset
2+
3+
This DT is intended to deploy OVS-DPDK SRIOV setup with a compute nodeset and a
4+
networker nodeset. It is an extension of the standard OVS-DPDK SRIOV scenario
5+
(which only deploys a compute nodset).
6+
Check [OpenStack OVS DPDK SRIOV](../../../va/nfv/ovs-dpdk-sriov/README.md).
7+
8+
## Purpose
9+
10+
This DT is based on OVS-DPDK VA and allows to deploy the standard scenario but
11+
adding a networker nodeset to be able to run OVN composable services on
12+
dedicated networker nodes.
13+
14+
## Stages
15+
16+
All stages must be executed in the order listed below. Everything is required
17+
unless otherwise indicated.
18+
The stages are the same as those in the OVS-DPDK SRIOV scenario. The only
19+
difference is that a networker-nodeset will be deployed instead of just a
20+
compute-nodeset.
21+
22+
1. [Install the OpenStack K8S operators and their dependencies](../../../common/)
23+
2. [Configuring networking and deploy the OpenStack control plane](control-plane.md)
24+
3. [Configure and deploy the data plane](dataplane.md)
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Configuring networking and deploy the OpenStack control plane
2+
3+
## Assumptions
4+
5+
- A storage class called `local-storage` should already exist.
6+
7+
## Initialize
8+
9+
Switch to the "openstack" namespace
10+
```
11+
oc project openstack
12+
```
13+
Change to the nfv/nfv-ovs-dpdk-sriov-networker directory
14+
```
15+
cd examples/dt/nfv/nfv-ovs-dpdk-sriov-networker
16+
```
17+
Edit the [nncp/values.yaml](nncp/values.yaml) and
18+
[service-values.yaml](service-values.yaml) files to suit
19+
your environment.
20+
```
21+
vi nncp/values.yaml
22+
vi service-values.yaml
23+
```
24+
25+
## Apply node network configuration
26+
27+
Generate the node network configuration
28+
```
29+
kustomize build nncp > nncp.yaml
30+
```
31+
32+
Apply the NNCP CRs
33+
```
34+
oc apply -f nncp.yaml
35+
```
36+
Wait for NNCPs to be available
37+
```
38+
oc wait nncp -l osp/nncm-config-type=standard --for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured --timeout=300s
39+
```
40+
41+
## Apply networking and control-plane configuration
42+
43+
Generate the control-plane and networking CRs.
44+
```
45+
kustomize build > control-plane.yaml
46+
```
47+
Apply the CRs
48+
```
49+
oc apply -f control-plane.yaml
50+
```
51+
52+
Wait for control plane to be available
53+
```
54+
oc wait osctlplane controlplane --for condition=Ready --timeout=600s
55+
```
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Configuring and deploying the dataplane
2+
3+
## Assumptions
4+
5+
- The [control plane](control-plane.md) has been created and successfully deployed
6+
7+
## Initialize
8+
9+
Switch to the "openstack" namespace:
10+
```
11+
oc project openstack
12+
```
13+
14+
Change to the `nfv/nfv-ovs-dpdk-sriov-networker/edpm directory:
15+
16+
```
17+
cd examples/dt/nfv/nfv-ovs-dpdk-sriov-networker
18+
```
19+
20+
Edit the [edpm/computes/values.yaml](edpm/computes/values.yaml),
21+
[edpm/networkers/values.yaml](edpm/networkers/values.yaml) and
22+
[edpm/deployment/values.yaml](edpm/deployment/values.yaml) files to suit your
23+
environment.
24+
25+
Generate the dataplane nodesets CRs:
26+
```
27+
kustomize build edpm/networkers > edpm/networkers/edpm-networker-nodeset.yaml
28+
kustomize build edpm/computes > edpm/computes/edpm-compute-nodeset.yaml
29+
```
30+
31+
Generate the dataplane deployment CR:
32+
```
33+
kustomize build edpm/deployment > edpm/deployment/edpm-deployment.yaml
34+
```
35+
36+
## Apply the CRs
37+
Apply the nodesets CRs:
38+
```
39+
oc apply -f edpm/networkers/edpm-networker-nodeset.yaml
40+
oc apply -f edpm/computes/edpm-compute-nodeset.yaml
41+
```
42+
43+
Wait for dataplane nodesets setup to finish:
44+
```
45+
oc wait osdpns compute-nodes --for condition=SetupReady --timeout=45m
46+
oc wait osdpns networker-nodes --for condition=SetupReady --timeout=45m
47+
```
48+
49+
Apply the deployment:
50+
```
51+
oc apply -f edpm/deployment/edpm-deployment.yaml
52+
```
53+
54+
Wait for dataplane deployment to finish
55+
```
56+
oc wait osdpns networker-nodes --for condition=Ready --timeout=90m
57+
oc wait osdpns compute-nodes --for condition=Ready --timeout=90m
58+
```
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
edpm-compute-nodeset.yaml
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
5+
components:
6+
- ../../../../../../va/nfv/ovs-dpdk-sriov/edpm/compute-nodeset
7+
# - https://github.com/openstack-k8s-operators/architecture/va/nfv/ovs-dpdk-sriov/edpm/compute-nodeset?ref=main
8+
## It's possible to replace ../../../../../../va/nfv/ovs-dpdk-sriov/edpm/compute-nodeset/ with a git checkout URL
9+
## as per: https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md
10+
11+
resources:
12+
- values.yaml
13+
14+
patches:
15+
- target:
16+
kind: OpenStackDataPlaneNodeSet
17+
name: .*
18+
patch: |-
19+
- op: replace
20+
path: /metadata/name
21+
value: compute-nodes

0 commit comments

Comments
 (0)