Skip to content

Commit dd301d0

Browse files
Merge pull request #493 from Jaganathancse/nfv_networker_ovs_dpdk
NFV EDPM OVS DPDK with Netoworker OVS DPDK This changes are to add the deployment VA for NFV EDPM OVS DPDK with Netoworker OVS DPDK nodes. Reviewed-by: Christophe Fontaine Reviewed-by: Jaganathan Palanisamy <[email protected]> Reviewed-by: Andrew Bays <[email protected]>
2 parents 2f8a43b + 9a5e321 commit dd301d0

31 files changed

+1356
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
control-plane.yaml
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# OpenStack OvS DPDK
2+
3+
**Based on OpenStack K8S operators from the "main" branch of the [OpenStack Operator repo](https://github.com/openstack-k8s-operators/openstack-operator/commit/6e30bb9ab9d7b4fc7a05d6413e4b141443d7c70a) on Jan 27th, 2025**
4+
5+
This is a collection of CR templates that represent a validated Red Hat OpenStack Services on OpenShift deployment that has the following characteristics:
6+
7+
- 3 master/worker combo-node OpenShift cluster
8+
- 3-replica Galera database
9+
- RabbitMQ
10+
- OVN networking
11+
- Network isolation over a single NIC
12+
- 2 compute nodes
13+
- 2 networker nodes
14+
- OvS DPDK using ml2 OVN
15+
16+
## Considerations
17+
18+
1. These CRs are validated for the overall functionality of the OSP cloud deployed, but they nonetheless require customization for the particular environment in which they are utilized. In this sense they are _templates_ meant to be consumed and tweaked to fit the specific constraints of the hardware available.
19+
20+
2. The CRs are applied against an OpenShift cluster in _stages_. That is, there is an ordering in which each grouping of CRs is fed to the cluster. It is _not_ a case of simply taking all CRs from all stages and applying them all at once.
21+
22+
3. In stages 1 and 2 [kustomize](https://kustomize.io/) is used to generate the CRs dynamically. The `*-values.yaml` file(s) must be updated to fit your environment. kustomize version 5 or newer required.
23+
24+
4.In stage 3 [kustomize](https://kustomize.io/) is used to generate the dataplane CRs dynamically. The edpm/values.yaml file must be updated to fit your environment. kustomize version 5 or newer required.
25+
26+
## Stages
27+
28+
All stages must be executed in the order listed below. Everything is required unless otherwise indicated.
29+
30+
1. [Install the OpenStack K8S operators and their dependencies](../../../common/)
31+
2. [Configuring networking and deploy the OpenStack control plane](control-plane.md)
32+
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/ovs-dpdk directory
14+
```
15+
cd architecture/examples/va/nfv/ovs-dpdk
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: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Configuring and deploying the dataplane and networker
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+
Change to the nfv/ovs-dpdk-networker/networker directory
14+
```
15+
cd architecture/examples/va/nfv/ovs-dpdk-networker/networker
16+
```
17+
Edit the [nodeset/values.yaml](networker/nodeset/values.yaml) file to suit
18+
your environment.
19+
```
20+
vi nodeset/values.yaml
21+
```
22+
Generate the networker nodesets CRs.
23+
```
24+
kustomize build nodeset > networker-nodeset.yaml
25+
```
26+
27+
Change to the nfv/ovs-dpdk-networker/edpm directory
28+
```
29+
cd architecture/examples/va/nfv/ovs-dpdk-networker/edpm
30+
```
31+
Edit the [nodeset/values.yaml](edpm/nodeset/values.yaml) and [deployment/values.yaml](edpm/deployment/values.yaml) files to suit
32+
your environment.
33+
```
34+
vi nodeset/values.yaml
35+
vi deployment/values.yaml
36+
```
37+
Generate the dataplane nodeset CR.
38+
```
39+
kustomize build nodeset > dataplane-nodeset.yaml
40+
41+
```
42+
Generate the dataplane deployment CR.
43+
```
44+
kustomize build deployment > dataplane-deployment.yaml
45+
```
46+
47+
## Create CRs
48+
Create the nodeset CR
49+
```
50+
oc apply -f dataplane-nodeset.yaml
51+
```
52+
Wait for dataplane nodeset setup to finish
53+
```
54+
oc wait osdpns openstack-edpm --for condition=SetupReady --timeout=600s
55+
```
56+
57+
Start the deployment
58+
```
59+
oc apply -f dataplane-deployment.yaml
60+
```
61+
62+
Wait for dataplane deployment to finish
63+
```
64+
oc wait osdpns openstack-edpm --for condition=Ready --timeout=40m
65+
```
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dataplane-nodeset.yaml
2+
dataplane-deployment.yaml
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dataplane-deployment.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-networker/edpm/deployment
7+
# - https://github.com/openstack-k8s-operators/architecture/va/nfv/ovs-dpdk-networker/edpm/deployment?ref=main
8+
## It's possible to replace ../../../../../../va/nfv/ovs-dpdk-networker/edpm/deployment/ with a git checkout URL as per:
9+
## https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md
10+
11+
resources:
12+
- values.yaml
13+
14+
patches:
15+
- target:
16+
kind: OpenStackDataPlaneDeployment
17+
name: edpm-deployment
18+
patch: |
19+
- op: add
20+
path: /spec/nodeSets/-
21+
value: openstack-networker
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# yamllint disable rule:line-length
2+
# local-config: referenced, but not emitted by kustomize
3+
---
4+
apiVersion: v1
5+
kind: ConfigMap
6+
metadata:
7+
name: edpm-deployment-values
8+
annotations:
9+
config.kubernetes.io/local-config: "true"
10+
data: {}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dataplane-nodeset.yaml
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
5+
components:
6+
- ../../../../../../va/nfv/ovs-dpdk-networker/edpm/nodeset
7+
# - https://github.com/openstack-k8s-operators/architecture/va/nfv/ovs-dpdk-networker/edpm/nodeset?ref=main
8+
## It's possible to replace ../../../../../../va/nfv/ovs-dpdk-networker/edpm/nodeset/ with a git checkout URL as per:
9+
## https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md
10+
11+
resources:
12+
- values.yaml

0 commit comments

Comments
 (0)