Standardized test bundles for deploying OpenShift operator operands during certification testing.
The certsuite batch script installs operators via OLM but has no generic way to install their operands. Without operands running, many certification tests can't exercise real workloads. This repo fills that gap.
certsuite script this repo
───────────────── ─────────
1. Install operator via OLM
2. Wait for CSV to succeed
3. Clone this repo ──────────────────► operator-map.yaml
4. Look up operator name ────────────► → bundle path
5. oc apply -f 00-prerequisites.yaml ► namespaces, RBAC (if present)
6. oc apply -f 01-operand-crs.yaml ──► deploy operand CRs
7. Run 02-validate.sh ───────────────► polls until operand is healthy
8. Run certification tests
9. oc delete -f teardown.yaml ───────► cleanup
| Operator | Source Repo |
|---|---|
| amq-broker-rhel8 | activemq-artemis-operator |
| metallb-operator | metallb-operator |
| nfd | cluster-nfd-operator |
| numaresources-operator | numaresources-operator |
| ocs-operator | ocs-operator |
| openshift-gitops-operator | gitops-operator |
| ptp-operator | ptp-operator |
| redhat-oadp-operator | oadp-operator |
| sriov-fec | sriov-fec-operator |
| vault-secrets-operator | vault-secrets-operator |
Each operator bundle lives under bundles/<operator-name>/:
bundles/metallb-operator/
00-prerequisites.yaml # (optional) Namespaces, RBAC, ConfigMaps
01-operand-crs.yaml # Operand CRs to apply (default uncommented, others commented out)
02-validate.sh # Exits 0 when operand is healthy
metadata.yaml # Operator info, health checks
teardown.yaml # Minimal CR refs for oc delete
Machine-readable metadata for the operator and health checks:
operator:
name: metallb-operatorrepository: https://github.com/openshift/metallb-operatorinstall:
namespace: metallb-systemchannel: stablecatalog_source: redhat-operatorsoperand:
primary_cr: 01-operand-crs.yamlkind: MetalLBhealth_check:
timeout_seconds: 300conditions:
- type: Availablestatus: "True"Contains all available CRs for the operator. The default CR is uncommented; additional CRs are commented out and can be enabled by uncommenting them before a run:
# Default operand CR for metallb-operator# Uncomment additional CRs below to deploy them# ---apiVersion: metallb.io/v1beta1kind: MetalLBmetadata:
name: metallbnamespace: metallb-system# ---# Source: metallb.io_v1beta1_ipaddresspool.yaml# apiVersion: metallb.io/v1beta1# kind: IPAddressPool# ...Polls until the operand reaches a healthy state. Accepts namespace as $1:
./bundles/metallb-operator/02-validate.sh metallb-systemContains just enough to delete the operand (apiVersion, kind, metadata):
apiVersion: metallb.io/v1beta1kind: MetalLBmetadata:
name: metallbnamespace: metallb-system- Create
bundles/<operator-name>/directory - Create
01-operand-crs.yamlwith all sample CRs from the operator'sconfig/samples— leave the default CR uncommented, comment out the rest - Create
02-validate.sh(must bechmod +x) that polls for operand readiness - Create
metadata.yamlwith operator info and health check config - Create
teardown.yamlwith the CR(s) to delete - (Optional) Create
00-prerequisites.yamlfor namespaces, RBAC, ConfigMaps - Add an entry to
operator-map.yaml:
operators:
my-operator:
bundle_path: bundles/my-operatorrepository: https://github.com/org/my-operatordescription: "My operator description"