Skip to content

Commit

Permalink
CRs for uni-alpha
Browse files Browse the repository at this point in the history
Signed-off-by: Pragadeeswaran Sathyanarayanan <[email protected]>
  • Loading branch information
psathyan committed Mar 5, 2024
1 parent c858786 commit b8f9bf7
Show file tree
Hide file tree
Showing 18 changed files with 930 additions and 0 deletions.
34 changes: 34 additions & 0 deletions automation/vars/uni01alpha.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
vas:
uni01alpha:
stages:
- path: examples/dt/uni01alpha/nncp
validations:
- >-
oc -n openstack wait nncp
-l osp/nncm-config-type=standard
--for jsoonpath='{.status.conditions[0].reason}'=SuccessfullyConfigured
--timeout=60s
values:
- name: network-values
src_file: values.yaml
build_output: nncp.yaml

- path: examples/dt/uni01alpha
validations:
- >-
oc -n openstack wait openstackcontrolplane
controlplane
--for condition=Ready
values:
- name: network-values
src_file: none
build_output: control-plane.yaml

- path: examples/dt/uni01alpha/edpm
validations:
- >-
oc -n openstack wait openstackdataplanedeployment
edpm-deployment
--for condition=Ready
--timeout=1200s
11 changes: 11 additions & 0 deletions dt/uni01alpha/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Deployed Topology - Alpha

If you are looking for information on how to deploy the alpha based DT, then
please the [README](../../examples/dt/uni01alpha/README.md) in the examples
directory.

This directory `dt/uni01alpha/`, exists so that the
[kustomization.yaml](../../examples/dt/uni01alpha/kustomization.yaml) in
the examples directory of uni01alpha topology, reference it by path as a
component. It's contents are likely uninteresting unless you want to understand
how kustomize was implemented in this repository.
20 changes: 20 additions & 0 deletions dt/uni01alpha/edpm/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component

transformers:
- |-
apiVersion: builtin
kind: NamespaceTransformer
metadata:
name: _ignored_
namespace: openstack
setRoleBindingSubjects: none
unsetOnly: true
fieldSpecs:
- path: metadata/name
kind: Namespace
create: true
components:
- ../../../lib/dataplane
164 changes: 164 additions & 0 deletions dt/uni01alpha/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
---
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component

transformers:
- |-
apiVersion: builtin
kind: NamespaceTransformer
metadata:
name: _ignored_
namespace: openstack
setRoleBindingSubjects: none
unsetOnly: true
fieldSpecs:
- path: metadata/name
kind: Namespace
create: true
components:
- ../../lib/networking
- ../../lib/control-plane

replacements:
- source:
kind: ConfigMap
name: service-values
fieldPath: data.cinderVolumes.customServiceConfig
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.cinder.template.cinderVolumes.customServiceConfig

- source:
kind: ConfigMap
name: service-values
fieldPath: data.cinderBackup.customServiceConfig
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.cinder.template.cinderBackup.customServiceConfig
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.cinderBackup.replicas
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.cinder.template.cinderBackup.replicas
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.glance.default.replicas
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.glance.template.glanceAPIs.default.replicas
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.glance.customServiceConfig
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.glance.template.customServiceConfig
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.glance.default.replicas
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.glance.template.glanceAPIs.default.replicas
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.swift.enabled
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.swift.enabled
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.ironic.enabled
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.ironic.enabled
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.octavia.enabled
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.octavia.enabled
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.telemetry.enabled
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.telemetry.enabled
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.telemetry.autoscaling.enabled
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.telemetry.template.autoscaling.enabled
options:
create: true

- source:
kind: ConfigMap
name: service-values
fieldPath: data.telemetry.ceilometer.enabled
targets:
- select:
kind: OpenStackControlPlane
fieldPaths:
- spec.telemetry.template.ceilometer.enabled
options:
create: true
12 changes: 12 additions & 0 deletions dt/uni01alpha/namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
apiVersion: builtin
kind: NamespaceTransformer
metadata:
name: _ignored_
namespace: openstack
setRoleBindingSubjects: none
unsetOnly: true
fieldSpecs:
- path: metadata/name
kind: Namespace
create: true
1 change: 1 addition & 0 deletions examples/dt/uni01alpha/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
control-plane.yaml
112 changes: 112 additions & 0 deletions examples/dt/uni01alpha/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Deployed Topology - Alpha

This document contains a list of integration test suites that would be
executed against the below specified topology of Red Hat OpenStack Services
on OpenShift. It also contains a collection of custom resources (CRs) for
deploying the test environment.

## Purpose

This topology is used for executing integration tests that evaluate the
`default` backends of the below mentioned services.

## Environment

### Nodes

| Role | Machine Type | Count |
| ---- | ------------ | ----- |
| Compact OpenShift | vm | 3 |
| OpenStack Compute | vm | 2 |
| Networker | vm | 3 |
| Test nodes | vm | 2 |

### Networks

| Name | Type | Interface |
| ---- | ---- | --------- |
| Provisioning | untagged | nic1 |
| Machine | untagged | nic2 |
| RH OSP | trunk | nic3 |

#### Networks in RH OSP

| Name | Type |
| ---- | ---- |
| ctlplane | untagged |
| internalapi | VLAN tagged |
| Storage | VLAN tagged |
| Tenant | VLAN tagged |

### Services, enabled features and configurations

| Service | configuration | Lock-in coverage? |
| ---------------- | ---------------- | ------------------ |
| Cinder | LVM/iSCSI/lioadm | Must have |
| Cinder Backup | Swift | Must have |
| Glance | Swift | Must have |
| Swift | (default) | Must have |
| Octavia | (amphora) | Must have |
| Horizon | N/A | Must have |
| Barbican | (default) | Must have |
| Telemetry | | Must have |
| Ironic | | Must have |

#### Support services

The following table lists services which are not the main focus of the testing
(which may be covered by additional scenarios), but are required for the DT to
work properly and can be deployed with any/default configuration.

| Service | Reason |
| ---------------- |------------------ |
| Neutron | needed by other services |
| Nova | needed by scenario testing |
| Keystone | needed by all services |

### Additional configuration

- Always-on, default services and features: TLSe
- Two additional fake baremetal nodes
- Availability zones for OVN

#### iSCSI

It is assumed *iSCSI* services are enabled in all nodes participating in the
Red Hat OpenShift cluster. If not, a `MachineConfig` similar to the below one
is applied. The node needs to be *rebooted* after applying the configuration.

```YAML
---
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
service: cinder
name: 90-master-cinder-enable-iscsid
spec:
config:
ignition:
version: 3.2.0
systemd:
units:
- enabled: true
name: iscsid.service
```
## Testing
| Test framework | When to run | Special configuration |
| ---------------- | -------------------- | ----------------------|
| relevant volume tests | tempest stage | |
| relevant image tests | tempest stage | |
| relevant object-storage tests | tempest stage | |
| relevant octavia tests | tempest stage | |
| horizon integration | own stage (post-tempest)| |
## Workflow
1. [Install the OpenStack K8S operators and their dependencies](../../common/README.md)
2. [Configure and deploy the OpenStack control plane](control-plane.md)
3. [Configure and deploy the OpenStack data plane](data-plane.md)
Loading

0 comments on commit b8f9bf7

Please sign in to comment.