Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions automation/mocks/ovs-dpdk-sriov-ipv6-2nodesets.yaml
1 change: 1 addition & 0 deletions automation/mocks/ovs-dpdk-sriov-ipv6.yaml
2 changes: 2 additions & 0 deletions automation/mocks/ovs-dpdk-sriov.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ cifmw_baremetal_hosts:
compute-0:
connection: ipmi://10.10.100.100
boot_mode: UEFI
label: openstack
nics:
- mac: "89:9a:b7:cb:4a:3f"
network: provision
Expand All @@ -12,6 +13,7 @@ cifmw_baremetal_hosts:
compute-1:
connection: ipmi://10.10.100.101
boot_mode: UEFI
label: openstack-2
nics:
- mac: "53:b0:4d:06:56:ea"
network: provision
Expand Down
66 changes: 66 additions & 0 deletions automation/vars/ovs-dpdk-sriov-ipv6-2nodesets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
vas:
ovs-dpdk-sriov-ipv6-2nodesets:
stages:
- name: nncp-configuration
path: examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets/nncp
wait_conditions:
- >-
oc -n openstack wait nncp
-l osp/nncm-config-type=standard
--for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured
--timeout=60s
values:
- name: network-values
src_file: values.yaml
build_output: nncp.yaml

- name: control-plane
path: examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets
wait_conditions:
- >-
oc -n openstack wait osctlplane controlplane --for condition=Ready
--timeout=1200s
values:
- name: network-values
src_file: ./nncp/values.yaml
- name: service-values
src_file: service-values.yaml
build_output: control-plane.yaml

- name: edpm-nodeset
path: examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/edpm/nodeset
wait_conditions:
- >-
oc -n openstack wait
osdpns openstack-edpm --for condition=SetupReady
--timeout=90m
values:
- name: edpm-nodeset-values
src_file: values.yaml
build_output: nodeset.yaml

- name: edpm-nodeset2
path: examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/edpm/nodeset2
wait_conditions:
- >-
oc -n openstack wait
osdpns openstack-edpm-2 --for condition=SetupReady
--timeout=90m
values:
- name: edpm-nodeset2-values
src_file: values.yaml
build_output: nodeset2.yaml

- name: edpm-deployment
path: examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/edpm/deployment
wait_conditions:
- >-
oc -n openstack
wait openstackdataplanedeployments.dataplane.openstack.org
edpm-deployment
--for condition=Ready --timeout=60m
values:
- name: edpm-deployment-values
src_file: values.yaml
build_output: deployment.yaml
53 changes: 53 additions & 0 deletions automation/vars/ovs-dpdk-sriov-ipv6.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
vas:
ovs-dpdk-sriov-ipv6:
stages:
- name: nncp-configuration
path: examples/va/nfv/ovs-dpdk-sriov-ipv6/nncp
wait_conditions:
- >-
oc -n openstack wait nncp
-l osp/nncm-config-type=standard
--for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured
--timeout=60s
values:
- name: network-values
src_file: values.yaml
build_output: nncp.yaml

- name: control-plane
path: examples/va/nfv/ovs-dpdk-sriov-ipv6
wait_conditions:
- >-
oc -n openstack wait osctlplane controlplane --for condition=Ready
--timeout=1200s
values:
- name: network-values
src_file: nncp/values.yaml
- name: service-values
src_file: service-values.yaml
build_output: control-plane.yaml

- name: edpm-nodeset
path: examples/va/nfv/ovs-dpdk-sriov/edpm/nodeset
wait_conditions:
- >-
oc -n openstack wait
osdpns openstack-edpm --for condition=SetupReady
--timeout=90m
values:
- name: edpm-nodeset-values
src_file: values.yaml
build_output: nodeset.yaml

- name: edpm-deployment
path: examples/va/nfv/ovs-dpdk-sriov/edpm/deployment
wait_conditions:
- >-
oc -n openstack wait
osdpns openstack-edpm --for condition=Ready
--timeout=60m
values:
- name: edpm-deployment-values
src_file: values.yaml
build_output: deployment.yaml
2 changes: 2 additions & 0 deletions examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
nncp.yaml
control-plane.yaml
27 changes: 27 additions & 0 deletions examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Deployed Topology - NFV/OVS-DPDK-SRIOV with IPv6 and 2 nodesets

Deploys an OVS-DPDK-SRIOV environment with IPv6 as the primary IP stack and 2 different nodesets.
It is an extension of the regular OVS-DPDK-SRIOV scenario, so all information in that scenario is
valid here too. Check [OpenStack OVS DPDK SRIOV](../../../va/nfv/ovs-dpdk-sriov/README.md)

## Purpose

This scenario is needed when compute nodes used to deploy OpenStack dataplane
are different (different nics, cpu, memory, ...) so a different nodeset can
be created for each different compute node.

This DT is based on OVS-DPDK-SRIOV VA with two key additions:
- IPv6 networking: All control plane and data plane networks use IPv6 addresses (2620:cf:cf:XXXX::/64 subnets)
- Multiple nodesets: Configures 2 separate nodesets to support heterogeneous compute nodes

## Stages

All stages must be executed in the order listed below. Everything is required unless otherwise indicated.
Stages are the same than the OVS-DPDK-SRIOV scenario, the only difference is that it will
be created 2 nodesets instead of just 1

1. [Install the OpenStack K8S operators and their dependencies](../../../common/)
2. [Configuring networking and deploy the OpenStack control plane](control-plane.md)
3. [Configure and deploy the data plane](dataplane.md)


55 changes: 55 additions & 0 deletions examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets/control-plane.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Configuring networking and deploy the OpenStack control plane

## Assumptions

- A storage class called `local-storage` should already exist.

## Initialize

Switch to the "openstack" namespace
```
oc project openstack
```
Change to the nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets directory
```
cd examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets
```
Edit the [nncp/values.yaml](nncp/values.yaml) and
[service-values.yaml](service-values.yaml) files to suit
your environment.
```
vi nncp/values.yaml
vi service-values.yaml
```

## Apply node network configuration

Generate the node network configuration
```
kustomize build nncp > nncp.yaml
```

Apply the NNCP CRs
```
oc apply -f nncp.yaml
```
Wait for NNCPs to be available
```
oc wait nncp -l osp/nncm-config-type=standard --for jsonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured --timeout=300s
```

## Apply networking and control-plane configuration

Generate the control-plane and networking CRs.
```
kustomize build > control-plane.yaml
```
Apply the CRs
```
oc apply -f control-plane.yaml
```

Wait for control plane to be available
```
oc wait osctlplane controlplane --for condition=Ready --timeout=600s
```
60 changes: 60 additions & 0 deletions examples/dt/nfv/nfv-ovs-dpdk-sriov-ipv6-2nodesets/dataplane.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Configuring and deploying the dataplane

## Assumptions

- The [control plane](control-plane.md) has been created and successfully deployed

## Initialize

Switch to the "openstack" namespace
```
oc project openstack
```
Change to the nfv/nfv-ovs-dpdk-sriov-2nodesets/edpm directory

> **Note**: The IPv6 2-nodesets scenario reuses the dataplane configuration from the standard
> nfv-ovs-dpdk-sriov-2nodesets scenario, as there are no differences in the EDPM configuration
> between IPv4 and IPv6 deployments. The IPv6 networking is configured at the
> control plane level (NNCP and service values).

```
cd examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/edpm
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be the v6 path?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR adds the nfv-ovs-dpdk-sriov-ipv6-2nodesets directory. The readme files do not say to use this directory though. I originally thought this was a lack of editing after doing a copy/paste, but I also see that the edpm directory does not exist for the added nfv-ovs-dpdk-sriov-ipv6-2nodesets directory.

Are you sure this readme file is correct? In the 2-nodeset v6 sceario do they still use the v4 edpm directory? If so how and when do they use the nfv-ovs-dpdk-sriov-ipv6-2nodesets directory?

This should be clear from reading the .md files but it's not clear to me right now since I have the above questions.

[fultonj@stybba nfv{nfv_ipv6}]$ ll
total 4.0K
drwxr-xr-x. 4 fultonj fultonj  162 Jan  6 10:27 nfv-ovs-dpdk-sriov-networker
drwxr-xr-x. 5 fultonj fultonj 4.0K Jan  6 10:27 nfv-ovs-dpdk-sriov-hci
drwxr-xr-x. 4 fultonj fultonj  162 Jan  6 10:27 nfv-ovs-dpdk-sriov-2nodesets
drwxr-xr-x. 3 fultonj fultonj  150 Jan 12 15:18 nfv-ovs-dpdk-sriov-ipv6-2nodesets
[fultonj@stybba nfv{nfv_ipv6}]$ find . -name edpm
./nfv-ovs-dpdk-sriov-2nodesets/edpm
./nfv-ovs-dpdk-sriov-networker/edpm
[fultonj@stybba nfv{nfv_ipv6}]$ 

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated readme

```
Edit the [nodeset/values.yaml](edpm/nodeset/values.yaml), [nodeset2/values.yaml](edpm/nodeset2/values.yaml)
and [deployment/values.yaml](deployment/values.yaml) files to suit your environment.
```
vi nodeset/values.yaml
vi nodeset2/values.yaml
vi deployment/values.yaml
```
Generate the dataplane nodesets CRs.
```
kustomize build nodeset > dataplane-nodeset.yaml
kustomize build nodeset2 > dataplane-nodeset2.yaml
```
Generate the dataplane deployment CR.
```
kustomize build deployment > dataplane-deployment.yaml
```

## Create CRs
Create the nodesets CRs
```
oc apply -f dataplane-nodeset.yaml
oc apply -f dataplane-nodeset2.yaml
```
Wait for dataplane nodesets setup to finish
```
oc wait osdpns openstack-edpm --for condition=SetupReady --timeout=600s
oc wait osdpns openstack-edpm-2 --for condition=SetupReady --timeout=600s
```

Start the deployment
```
oc apply -f dataplane-deployment.yaml
```

Wait for dataplane deployment to finish
```
oc wait osdpns openstack-edpm --for condition=Ready --timeout=40m
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

components:
- ../../../../va/nfv/ovs-dpdk-sriov/
# - https://github.com/openstack-k8s-operators/architecture/va/nfv/ovs-dpdk-sriov?ref=main
## It's possible to replace ../../../../va/nfv/ovs-dpdk-sriov/ with a git checkout URL as per:
## https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md

resources:
- nncp/values.yaml
- service-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

transformers:
# Set namespace to OpenStack on all namespaced objects without a namespace
- |-
apiVersion: builtin
kind: NamespaceTransformer
metadata:
name: _ignored_
namespace: openstack
setRoleBindingSubjects: none
unsetOnly: true
fieldSpecs:
- path: metadata/name
kind: Namespace
create: true

components:
- ../../../../../lib/nncp_ipv6

resources:
- values.yaml
Loading