Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple nodesets for ovs-dpdk-sriov scenario #378

Closed
Closed
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
61 changes: 61 additions & 0 deletions automation/vars/ovs-dpdk-sriov-2nodesets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
vas:
ovs-dpdk-sriov-2nodesets:
stages:
- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-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

- path: examples/dt/nfv/nfv-ovs-dpdk-sriov-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

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

- 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=60m
values:
- name: edpm-nodeset2-values
src_file: values.yaml
build_output: nodeset2.yaml

- 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
9 changes: 9 additions & 0 deletions dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Deployed Topology - NFV OVS-DPDK-SRIOV with 2 different nodesets

If you are looking for information on how to deploy the OVS-DPDK-SRIOV with
2 nodesets based DT, then please see the
[README](../../../examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/README.md) in
the examples directory.

This directory 'dt/nfv/nfv-ovs-dpdk-sriov-2nodesets' expands the [one nodeset va]
(../../../va/nfv/ovs-dpdk-sriov/) with a second nodeset
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
apiVersion: v1
data:
NodeRootPassword: _replaced_
kind: Secret
metadata:
name: baremetalset-password-secret-2
namespace: openstack
type: Opaque
104 changes: 104 additions & 0 deletions dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/edpm/nodeset2/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component

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/dataplane/nodeset2

resources:
- baremetalset-password-secret.yaml
- nova_ovs_dpdk_sriov.yaml
- neutron_igmp.yaml

replacements:
- source:
kind: ConfigMap
name: edpm-nodeset2-values
fieldPath: data.root_password
targets:
- select:
kind: Secret
name: baremetalset-password-secret-2
fieldPaths:
- data.NodeRootPassword
options:
create: true

# Nova compute CPU pinning customization
- source:
kind: ConfigMap
name: edpm-nodeset2-values
fieldPath: data.nova.compute.conf
targets:
- select:
kind: ConfigMap
name: ovs-dpdk-sriov-cpu-pinning-nova-2
fieldPaths:
- data.25-cpu-pinning-nova\.conf
options:
create: true
# Nova compute PCI passthrough customization
- source:
kind: ConfigMap
name: edpm-nodeset2-values
fieldPath: data.nova.pci.conf
targets:
- select:
kind: ConfigMap
name: sriov-nova-2
fieldPaths:
- data.03-sriov-nova\.conf
options:
create: true
- source:
kind: ConfigMap
name: edpm-nodeset2-values
fieldPath: data.preProvisioned
targets:
- select:
kind: OpenStackDataPlaneNodeSet
name: openstack-edpm-2
fieldPaths:
- spec.preProvisioned
options:
create: true
- source:
kind: ConfigMap
name: edpm-nodeset2-values
fieldPath: data.baremetalSetTemplate
targets:
- select:
kind: OpenStackDataPlaneNodeSet
name: openstack-edpm-2
fieldPaths:
- spec.baremetalSetTemplate
options:
create: true
# Neutron IGMP configuration
- source:
kind: ConfigMap
name: edpm-nodeset2-values
fieldPath: data.neutron.igmp.conf
targets:
- select:
kind: ConfigMap
name: neutron-igmp-2
fieldPaths:
- data.25-igmp\.conf
options:
create: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: neutron-igmp-2
data:
25-igmp.conf: _replaced_
---
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneService
metadata:
name: neutron-ovn-igmp-2
spec:
label: neutron-ovn-igmp-2
edpmServiceType: neutron-ovn
caCerts: combined-ca-bundle
playbook: osp.edpm.neutron_ovn
dataSources:
- configMapRef:
name: neutron-igmp-2
- secretRef:
name: neutron-ovn-agent-neutron-config
tlsCerts:
default:
contents:
- dnsnames
- ips
issuer: osp-rootca-issuer-ovn
keyUsages:
- digital signature
- key encipherment
- client auth
networks:
- ctlplane
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: ovs-dpdk-sriov-cpu-pinning-nova-2
data:
25-cpu-pinning-nova.conf: _replaced_
---
apiVersion: v1
kind: ConfigMap
metadata:
name: sriov-nova-2
data:
03-sriov-nova.conf: _replaced_
---
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneService
metadata:
name: nova-custom-ovsdpdksriov-2
spec:
label: nova-custom-ovsdpdksriov-2
edpmServiceType: nova
dataSources:
- configMapRef:
name: ovs-dpdk-sriov-cpu-pinning-nova-2
- configMapRef:
name: sriov-nova-2
- secretRef:
name: nova-cell1-compute-config
- secretRef:
name: nova-migration-ssh-key
playbook: osp.edpm.nova
tlsCerts:
default:
contents:
- dnsnames
- ips
networks:
- ctlplane
issuer: osp-rootca-issuer-internal
caCerts: combined-ca-bundle
2 changes: 2 additions & 0 deletions examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
nncp.yaml
control-plane.yaml
26 changes: 26 additions & 0 deletions examples/dt/nfv/nfv-ovs-dpdk-sriov-2nodesets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Deployed Topology - NFV/OVS-DPDK-SRIOV with 2 nodesets

Deploys an OVS-DPDK-SRIOV environment 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 and it has been added just the code
to configure the second nodeset, reusing all of the other config

## 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-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-2nodesets directory
```
cd examples/dt/nfv/nfv-ovs-dpdk-sriov-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
```
Loading
Loading