diff --git a/.zuul.yaml b/.zuul.yaml index 1028fdc54..99b5d7265 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -72,6 +72,54 @@ ip: 172.18.0.5 tenant: ip: 172.19.0.5 +- job: + name: nova-operator-kuttl-cell-delete + parent: nova-operator-base + dependencies: ["openstack-meta-content-provider"] + roles: + - zuul: github.com/openstack-k8s-operators/ci-framework + description: | + This job deploy a basic "Compute Starter Kit" topology + https://www.openstack.org/software/sample-configs#compute-starter-kit + that is the minium set of openstack services required to boot a vm. + pre-run: + - ci/nova-operator-kuttl-cell-delete/playbooks/deploy-deps.yaml + run: + - ci/nova-operator-kuttl-cell-delete/playbooks/run-kuttl.yaml + nodeset: centos-9-medium-crc-extracted-2-39-0-3xl + vars: + collection_namespace_override: "nova-kuttl-cell-delete-tests" + zuul_log_collection: true + extra-vars: + crc_ci_bootstrap_networking: + networks: + default: + range: 192.168.122.0/24 + mtu: 1500 + internal-api: + vlan: 20 + range: 172.17.0.0/24 + storage: + vlan: 21 + range: 172.18.0.0/24 + tenant: + vlan: 22 + range: 172.19.0.0/24 + instances: + controller: + networks: + default: + ip: 192.168.122.11 + crc: + networks: + default: + ip: 192.168.122.10 + internal-api: + ip: 172.17.0.5 + storage: + ip: 172.18.0.5 + tenant: + ip: 172.19.0.5 - job: name: nova-operator-tempest-multinode parent: podified-multinode-edpm-deployment-crc-3comp @@ -211,6 +259,7 @@ - nova-operator-kuttl - nova-operator-tempest-multinode - nova-operator-tempest-multinode-ceph + - nova-operator-kuttl-cell-delete - pragma: implied-branch-matchers: True diff --git a/test/kuttl/test-suites/cell-delete-tests/common/cleanup-nova.yaml b/test/kuttl/test-suites/cell-delete-tests/common/cleanup-nova.yaml new file mode 100644 index 000000000..55caf71d6 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/common/cleanup-nova.yaml @@ -0,0 +1,7 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +delete: +- apiVersion: nova.openstack.org/v1beta1 + kind: Nova + name: nova-kuttl-cell + namespace: nova-kuttl-cell-delete-tests diff --git a/test/kuttl/test-suites/cell-delete-tests/config.yaml b/test/kuttl/test-suites/cell-delete-tests/config.yaml new file mode 100644 index 000000000..52464bafd --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/config.yaml @@ -0,0 +1,14 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestSuite +reportFormat: JSON +reportName: kuttl-default-results +namespace: nova-kuttl-cell-delete-tests +# we could set this lower, but the initial image pull can take a while +timeout: 300 +parallel: 1 +skipDelete: true +testDirs: + - test/kuttl/test-suites/cell-delete-tests/ +suppress: + - events +artifactsDir: test/kuttl/test-suites/cell-delete-tests/output diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/OpenStackControlPlane.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/OpenStackControlPlane.yaml new file mode 100644 index 000000000..f76d003d9 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/OpenStackControlPlane.yaml @@ -0,0 +1,21 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack +spec: + storageClass: "crc-csi-hostpath-provisioner" + tls: + ingress: + enabled: true + podLevel: + enabled: false + ironic: + enabled: false + template: + ironicConductors: [] + manila: + enabled: false + template: + manilaShares: {} + horizon: + enabled: false diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/infra.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/infra.yaml new file mode 100644 index 000000000..1dd64e878 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/infra.yaml @@ -0,0 +1,32 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack +spec: + mariadb: + enabled: false + galera: + enabled: true + templates: + openstack: + storageRequest: 500M + openstack-cell1: + storageRequest: 500M + rabbitmq: + templates: + rabbitmq: + replicas: 1 + rabbitmq-cell1: + replicas: 1 + memcached: + templates: + memcached: + replicas: 1 + ovn: + enabled: false + template: + ovnController: + external-ids: + ovn-encap-type: geneve + ovs: + enabled: false diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/keystone.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/keystone.yaml new file mode 100644 index 000000000..97f568e7b --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/keystone.yaml @@ -0,0 +1,9 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack +spec: + keystone: + template: + databaseInstance: openstack + secret: osp-secret diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/kustomization.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/kustomization.yaml new file mode 100644 index 000000000..0a0ec3454 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/kustomization.yaml @@ -0,0 +1,43 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: nova-kuttl-cell-delete-tests + +secretGenerator: +- literals: + - AdminPassword=password + - DbRootPassword=password + - DatabasePassword=password + - KeystoneDatabasePassword=password + - PlacementPassword=password + - PlacementDatabasePassword=password + - GlancePassword=password + - GlanceDatabasePassword=password + - NeutronPassword=password + - NeutronDatabasePassword=password + - NovaPassword=password + - NovaAPIDatabasePassword=password + - NovaCell0DatabasePassword=password + - NovaCell1DatabasePassword=password + - MetadataSecret=42 + name: osp-secret +generatorOptions: + disableNameSuffixHash: true + labels: + type: osp-secret + +resources: +- namespace.yaml +- OpenStackControlPlane.yaml + +patches: +- patch: |- + apiVersion: core.openstack.org/v1beta1 + kind: OpenStackControlPlane + metadata: + name: openstack + spec: + secret: osp-secret +- path: infra.yaml +- path: keystone.yaml +- path: placement.yaml +- path: nova.yaml diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/namespace.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/namespace.yaml new file mode 100644 index 000000000..68e0205cd --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nova-kuttl-cell-delete-tests diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/nova.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/nova.yaml new file mode 100644 index 000000000..289dfc1b2 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/nova.yaml @@ -0,0 +1,7 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack +spec: + nova: + enabled: false diff --git a/test/kuttl/test-suites/cell-delete-tests/deps/placement.yaml b/test/kuttl/test-suites/cell-delete-tests/deps/placement.yaml new file mode 100644 index 000000000..ed54e8c42 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/deps/placement.yaml @@ -0,0 +1,9 @@ +apiVersion: core.openstack.org/v1beta1 +kind: OpenStackControlPlane +metadata: + name: openstack +spec: + placement: + template: + databaseInstance: openstack + secret: osp-secret diff --git a/test/kuttl/test-suites/cell-delete-tests/tests/00-cleanup-nova.yaml b/test/kuttl/test-suites/cell-delete-tests/tests/00-cleanup-nova.yaml new file mode 120000 index 000000000..23d51de43 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/tests/00-cleanup-nova.yaml @@ -0,0 +1 @@ +../common/cleanup-nova.yaml \ No newline at end of file diff --git a/test/kuttl/test-suites/cell-delete-tests/tests/01-assert.yaml b/test/kuttl/test-suites/cell-delete-tests/tests/01-assert.yaml new file mode 100644 index 000000000..54312a821 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/tests/01-assert.yaml @@ -0,0 +1,623 @@ +apiVersion: nova.openstack.org/v1beta1 +kind: Nova +metadata: + finalizers: + - openstack.org/nova + name: nova-kuttl-cell + namespace: nova-kuttl-cell-delete-tests +spec: + apiDatabaseInstance: openstack + apiDatabaseAccount: nova-api + apiMessageBusInstance: rabbitmq + apiServiceTemplate: + customServiceConfig: "" + replicas: 1 + resources: {} + cellTemplates: + cell0: + cellDatabaseInstance: openstack + cellDatabaseAccount: nova-cell0 + cellMessageBusInstance: rabbitmq + conductorServiceTemplate: + customServiceConfig: "" + replicas: 1 + resources: {} + hasAPIAccess: true + metadataServiceTemplate: + enabled: false + noVNCProxyServiceTemplate: + enabled: false + cell1: + cellDatabaseInstance: openstack-cell1 + cellDatabaseAccount: nova-cell1 + cellMessageBusInstance: rabbitmq-cell1 + conductorServiceTemplate: + customServiceConfig: "" + replicas: 1 + resources: {} + hasAPIAccess: true + metadataServiceTemplate: + enabled: false + noVNCProxyServiceTemplate: + enabled: true + customServiceConfig: "" + replicas: 1 + resources: {} + keystoneInstance: keystone + metadataServiceTemplate: + enabled: true + customServiceConfig: "" + replicas: 1 + resources: {} + passwordSelectors: + metadataSecret: MetadataSecret + service: NovaPassword + schedulerServiceTemplate: + customServiceConfig: "" + replicas: 1 + resources: {} + secret: osp-secret + serviceUser: nova +status: + apiServiceReadyCount: 1 + metadataServiceReadyCount: 1 + schedulerServiceReadyCount: 1 + conditions: + - message: Setup complete + reason: Ready + status: "True" + type: Ready + - message: Input data complete + reason: Ready + status: "True" + type: InputReady + - message: Setup complete + reason: Ready + status: "True" + type: KeystoneServiceReady + - message: MariaDBAccount creation complete + reason: Ready + status: "True" + type: MariaDBAccountReady + - message: ' Memcached instance has been provisioned' + reason: Ready + status: "True" + type: MemcachedReady + - message: DB create completed + reason: Ready + status: "True" + type: NovaAPIDBReady + - message: API message bus creation successfully + reason: Ready + status: "True" + type: NovaAPIMQReady + - message: Setup complete + reason: Ready + status: "True" + type: NovaAPIReady + - message: All DBs created successfully + reason: Ready + status: "True" + type: NovaAllCellDBReady + - message: All NovaCells are ready + reason: Ready + status: "True" + type: NovaAllCellReady + - message: All message busses created successfully + reason: Ready + status: "True" + type: NovaAllCellsMQReady + - message: Setup complete + reason: Ready + status: "True" + type: NovaMetadataReady + - message: Setup complete + reason: Ready + status: "True" + type: NovaSchedulerReady + - message: RoleBinding created + reason: Ready + status: "True" + type: RoleBindingReady + - message: Role created + reason: Ready + status: "True" + type: RoleReady + - message: ServiceAccount created + reason: Ready + status: "True" + type: ServiceAccountReady +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + openshift.io/scc: anyuid + labels: + service: nova-api + name: nova-kuttl-cell-api-0 +status: + containerStatuses: + - image: quay.io/podified-antelope-centos9/openstack-nova-api:current-podified + name: nova-kuttl-cell-api-api + ready: true + started: true + - image: quay.io/podified-antelope-centos9/openstack-nova-api:current-podified + name: nova-kuttl-cell-api-log + ready: true + started: true +--- +apiVersion: v1 +kind: Pod +metadata: + labels: + service: nova-scheduler + name: nova-kuttl-cell-scheduler-0 + ownerReferences: + - apiVersion: apps/v1 + blockOwnerDeletion: true + controller: true + kind: StatefulSet + name: nova-kuttl-cell-scheduler +status: + containerStatuses: + - image: quay.io/podified-antelope-centos9/openstack-nova-scheduler:current-podified + name: nova-kuttl-cell-scheduler-scheduler + ready: true + started: true +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + openshift.io/scc: anyuid + labels: + service: nova-metadata + statefulset.kubernetes.io/pod-name: nova-kuttl-cell-metadata-0 + name: nova-kuttl-cell-metadata-0 + ownerReferences: + - apiVersion: apps/v1 + blockOwnerDeletion: true + controller: true + kind: StatefulSet + name: nova-kuttl-cell-metadata +status: + containerStatuses: + - image: quay.io/podified-antelope-centos9/openstack-nova-api:current-podified + name: nova-kuttl-cell-metadata-log + ready: true + started: true + - image: quay.io/podified-antelope-centos9/openstack-nova-api:current-podified + name: nova-kuttl-cell-metadata-metadata + ready: true + started: true +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + openshift.io/scc: anyuid + labels: + cell: cell0 + service: nova-conductor + statefulset.kubernetes.io/pod-name: nova-kuttl-cell-cell0-conductor-0 + name: nova-kuttl-cell-cell0-conductor-0 + ownerReferences: + - apiVersion: apps/v1 + blockOwnerDeletion: true + controller: true + kind: StatefulSet + name: nova-kuttl-cell-cell0-conductor +status: + containerStatuses: + - image: quay.io/podified-antelope-centos9/openstack-nova-conductor:current-podified + name: nova-kuttl-cell-cell0-conductor-conductor + ready: true + started: true +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + openshift.io/scc: anyuid + labels: + cell: cell1 + service: nova-conductor + statefulset.kubernetes.io/pod-name: nova-kuttl-cell-cell1-conductor-0 + name: nova-kuttl-cell-cell1-conductor-0 + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: StatefulSet + name: nova-kuttl-cell-cell1-conductor +status: + containerStatuses: + - image: quay.io/podified-antelope-centos9/openstack-nova-conductor:current-podified + name: nova-kuttl-cell-cell1-conductor-conductor + ready: true + started: true +--- +apiVersion: v1 +kind: Service +metadata: + labels: + endpoint: internal + service: nova-api + name: nova-internal + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaAPI + name: nova-kuttl-cell-api +spec: + ports: + - name: nova-internal + selector: + service: nova-api +--- +apiVersion: v1 +kind: Service +metadata: + labels: + endpoint: public + service: nova-api + name: nova-public + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaAPI + name: nova-kuttl-cell-api +spec: + ports: + - name: nova-public + selector: + service: nova-api +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-api.openstack.org/name: nova-kuttl-cell-api + name: nova-kuttl-cell-api-config-data + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaAPI + name: nova-kuttl-cell-api +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-conductor.openstack.org/name: nova-kuttl-cell-cell0-conductor + name: nova-kuttl-cell-cell0-conductor-config-data + namespace: nova-kuttl-cell-delete-tests + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaConductor + name: nova-kuttl-cell-cell0-conductor +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-conductor.openstack.org/name: nova-kuttl-cell-cell0-conductor + name: nova-kuttl-cell-cell0-conductor-scripts + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaConductor + name: nova-kuttl-cell-cell0-conductor +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-conductor.openstack.org/name: nova-kuttl-cell-cell1-conductor + name: nova-kuttl-cell-cell1-conductor-config-data + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaConductor + name: nova-kuttl-cell-cell1-conductor +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-conductor.openstack.org/name: nova-kuttl-cell-cell1-conductor + name: nova-kuttl-cell-cell1-conductor-scripts + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaConductor + name: nova-kuttl-cell-cell1-conductor +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-metadata.openstack.org/name: nova-kuttl-cell-metadata + name: nova-kuttl-cell-metadata-config-data + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaMetadata + name: nova-kuttl-cell-metadata +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-scheduler.openstack.org/name: nova-kuttl-cell-scheduler + name: nova-kuttl-cell-scheduler-config-data + ownerReferences: + - blockOwnerDeletion: true + controller: true + kind: NovaScheduler + name: nova-kuttl-cell-scheduler +--- +apiVersion: v1 +kind: Secret +metadata: + labels: + nova-cell.openstack.org/name: nova-kuttl-cell-cell1 + name: nova-kuttl-cell-cell1-compute-config + ownerReferences: + - apiVersion: nova.openstack.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: NovaCell + name: nova-kuttl-cell-cell1 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: nova-kuttl-cell-api + namespace: nova-kuttl-cell-delete-tests + ownerReferences: + - apiVersion: nova.openstack.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: NovaAPI + name: nova-kuttl-cell-api +spec: + replicas: 1 + selector: + matchLabels: + service: nova-api + serviceName: "" + template: + metadata: + labels: + service: nova-api +status: + availableReplicas: 1 + currentReplicas: 1 + readyReplicas: 1 + replicas: 1 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: nova-kuttl-cell-metadata + namespace: nova-kuttl-cell-delete-tests + ownerReferences: + - apiVersion: nova.openstack.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: NovaMetadata + name: nova-kuttl-cell-metadata +spec: + replicas: 1 + selector: + matchLabels: + service: nova-metadata + template: + metadata: + labels: + service: nova-metadata +status: + availableReplicas: 1 + currentReplicas: 1 + readyReplicas: 1 + replicas: 1 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: nova-kuttl-cell-scheduler + namespace: nova-kuttl-cell-delete-tests + ownerReferences: + - apiVersion: nova.openstack.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: NovaScheduler + name: nova-kuttl-cell-scheduler +spec: + replicas: 1 + selector: + matchLabels: + service: nova-scheduler + template: + metadata: + labels: + service: nova-scheduler +status: + availableReplicas: 1 + currentReplicas: 1 + readyReplicas: 1 + replicas: 1 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: nova-kuttl-cell-cell0-conductor + namespace: nova-kuttl-cell-delete-tests + ownerReferences: + - apiVersion: nova.openstack.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: NovaConductor + name: nova-kuttl-cell-cell0-conductor +spec: + replicas: 1 + selector: + matchLabels: + cell: cell0 + service: nova-conductor + template: + metadata: + labels: + cell: cell0 + service: nova-conductor +status: + availableReplicas: 1 + currentReplicas: 1 + readyReplicas: 1 + replicas: 1 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: nova-kuttl-cell-cell1-conductor + namespace: nova-kuttl-cell-delete-tests + ownerReferences: + - apiVersion: nova.openstack.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: NovaConductor + name: nova-kuttl-cell-cell1-conductor +spec: + replicas: 1 + selector: + matchLabels: + cell: cell1 + service: nova-conductor + template: + metadata: + labels: + cell: cell1 + service: nova-conductor +status: + availableReplicas: 1 + currentReplicas: 1 + readyReplicas: 1 + replicas: 1 +--- +apiVersion: batch/v1 +kind: CronJob +metadata: + labels: + service: nova-conductor + name: nova-kuttl-cell-cell0-db-purge + namespace: nova-kuttl-cell-delete-tests +spec: + concurrencyPolicy: Forbid + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + completions: 1 + parallelism: 1 + template: + spec: + containers: + - args: + - -c + - /usr/local/bin/kolla_start + command: + - /bin/bash + env: + - name: ARCHIVE_AGE + value: "30" + - name: KOLLA_BOOTSTRAP + value: "true" + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + - name: PURGE_AGE + value: "90" + image: quay.io/podified-antelope-centos9/openstack-nova-conductor:current-podified + name: nova-manage + securityContext: + runAsUser: 42436 + volumeMounts: + - mountPath: /var/lib/openstack/config + name: config-data + - mountPath: /var/lib/openstack/bin + name: scripts + - mountPath: /var/lib/kolla/config_files/config.json + name: config-data + subPath: nova-conductor-dbpurge-config.json + restartPolicy: OnFailure + serviceAccount: nova-nova-kuttl-cell + serviceAccountName: nova-nova-kuttl-cell + volumes: + - name: config-data + secret: + secretName: nova-kuttl-cell-cell0-conductor-config-data + - name: scripts + secret: + secretName: nova-kuttl-cell-cell0-conductor-scripts + schedule: 0 0 * * * + successfulJobsHistoryLimit: 3 + suspend: false +status: {} +--- +apiVersion: batch/v1 +kind: CronJob +metadata: + labels: + service: nova-conductor + name: nova-kuttl-cell-cell1-db-purge + namespace: nova-kuttl-cell-delete-tests +spec: + concurrencyPolicy: Forbid + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + completions: 1 + parallelism: 1 + template: + spec: + containers: + - args: + - -c + - /usr/local/bin/kolla_start + command: + - /bin/bash + env: + - name: ARCHIVE_AGE + value: "30" + - name: KOLLA_BOOTSTRAP + value: "true" + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + - name: PURGE_AGE + value: "90" + image: quay.io/podified-antelope-centos9/openstack-nova-conductor:current-podified + name: nova-manage + securityContext: + runAsUser: 42436 + volumeMounts: + - mountPath: /var/lib/openstack/config + name: config-data + - mountPath: /var/lib/openstack/bin + name: scripts + - mountPath: /var/lib/kolla/config_files/config.json + name: config-data + subPath: nova-conductor-dbpurge-config.json + restartPolicy: OnFailure + serviceAccount: nova-nova-kuttl-cell + serviceAccountName: nova-nova-kuttl-cell + volumes: + - name: config-data + secret: + secretName: nova-kuttl-cell-cell1-conductor-config-data + - name: scripts + secret: + secretName: nova-kuttl-cell-cell1-conductor-scripts + schedule: 0 0 * * * + successfulJobsHistoryLimit: 3 + suspend: false +status: {} diff --git a/test/kuttl/test-suites/cell-delete-tests/tests/01-deploy.yaml b/test/kuttl/test-suites/cell-delete-tests/tests/01-deploy.yaml new file mode 100644 index 000000000..8c1addcd5 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/tests/01-deploy.yaml @@ -0,0 +1,6 @@ +apiVersion: nova.openstack.org/v1beta1 +kind: Nova +metadata: + name: nova-kuttl-cell +spec: + secret: osp-secret diff --git a/test/kuttl/test-suites/cell-delete-tests/tests/02-assert.yaml b/test/kuttl/test-suites/cell-delete-tests/tests/02-assert.yaml new file mode 100644 index 000000000..a0151166e --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/tests/02-assert.yaml @@ -0,0 +1,125 @@ +apiVersion: nova.openstack.org/v1beta1 +kind: Nova +metadata: + finalizers: + - openstack.org/nova + name: nova-kuttl-cell + namespace: nova-kuttl-cell-delete-tests +status: + apiServiceReadyCount: 1 + metadataServiceReadyCount: 1 + schedulerServiceReadyCount: 1 + conditions: + - message: Setup complete + reason: Ready + status: "True" + type: Ready + - message: Input data complete + reason: Ready + status: "True" + type: InputReady + - message: Setup complete + reason: Ready + status: "True" + type: KeystoneServiceReady + - message: MariaDBAccount creation complete + reason: Ready + status: "True" + type: MariaDBAccountReady + - message: ' Memcached instance has been provisioned' + reason: Ready + status: "True" + type: MemcachedReady + - message: DB create completed + reason: Ready + status: "True" + type: NovaAPIDBReady + - message: API message bus creation successfully + reason: Ready + status: "True" + type: NovaAPIMQReady + - message: Setup complete + reason: Ready + status: "True" + type: NovaAPIReady + - message: All DBs created successfully + reason: Ready + status: "True" + type: NovaAllCellDBReady + - message: All NovaCells are ready + reason: Ready + status: "True" + type: NovaAllCellReady + - message: All message busses created successfully + reason: Ready + status: "True" + type: NovaAllCellsMQReady + - message: Setup complete + reason: Ready + status: "True" + type: NovaMetadataReady + - message: Setup complete + reason: Ready + status: "True" + type: NovaSchedulerReady + - message: RoleBinding created + reason: Ready + status: "True" + type: RoleBindingReady + - message: Role created + reason: Ready + status: "True" + type: RoleReady + - message: ServiceAccount created + reason: Ready + status: "True" + type: ServiceAccountReady +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + openshift.io/scc: anyuid + labels: + service: nova-api + name: nova-kuttl-cell-api-0 +status: + containerStatuses: + - name: nova-kuttl-cell-api-api + ready: true + started: true + - name: nova-kuttl-cell-api-log + ready: true + started: true +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + openshift.io/scc: anyuid + labels: + service: nova-metadata + statefulset.kubernetes.io/pod-name: nova-kuttl-cell-metadata-0 + name: nova-kuttl-cell-metadata-0 + ownerReferences: + - apiVersion: apps/v1 + blockOwnerDeletion: true + controller: true + kind: StatefulSet + name: nova-kuttl-cell-metadata +status: + containerStatuses: + - name: nova-kuttl-cell-metadata-log + ready: true + started: true + - name: nova-kuttl-cell-metadata-metadata + ready: true + started: true + +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +namespaced: true +commands: + - command: echo oc get -n $NAMESPACE pod/nova-cell1-novncproxy-0 --ignore-not-found + - command: echo oc get -n $NAMESPACE pod/nova-cell1-conductor-0--ignore-not-found diff --git a/test/kuttl/test-suites/cell-delete-tests/tests/02-delete-cell-nova.yaml b/test/kuttl/test-suites/cell-delete-tests/tests/02-delete-cell-nova.yaml new file mode 100644 index 000000000..f1b5d904e --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/tests/02-delete-cell-nova.yaml @@ -0,0 +1,5 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - script: | + oc patch -n nova-kuttl-cell-delete-tests nova/nova-kuttl-cell --type='json' -p='[{"op": "remove", "path": "/spec/cellTemplates/cell1"}]' diff --git a/test/kuttl/test-suites/cell-delete-tests/tests/03-cleanup-nova.yaml b/test/kuttl/test-suites/cell-delete-tests/tests/03-cleanup-nova.yaml new file mode 120000 index 000000000..49b58eee9 --- /dev/null +++ b/test/kuttl/test-suites/cell-delete-tests/tests/03-cleanup-nova.yaml @@ -0,0 +1 @@ +00-cleanup-nova.yaml \ No newline at end of file