From 4a04e98877c1369165411d2bf34a6c0a26814dbd Mon Sep 17 00:00:00 2001 From: Hemanth Nakkina Date: Wed, 23 Aug 2023 09:51:55 +0530 Subject: [PATCH] Add functional tests Add zuul yaml Add functional tests Premit charm to run on juju 3.1 Change-Id: I7bf691860a8d8521fa927fbb1eb50041871791fb --- charms/ceilometer-k8s/.zuul.yaml | 11 +++ charms/ceilometer-k8s/metadata.yaml | 2 +- .../ceilometer-k8s/tests/bundles/smoke.yaml | 93 +++++++++++++++++++ charms/ceilometer-k8s/tests/tests.yaml | 31 ++++++- 4 files changed, 133 insertions(+), 4 deletions(-) create mode 100644 charms/ceilometer-k8s/.zuul.yaml create mode 100644 charms/ceilometer-k8s/tests/bundles/smoke.yaml diff --git a/charms/ceilometer-k8s/.zuul.yaml b/charms/ceilometer-k8s/.zuul.yaml new file mode 100644 index 00000000..3975fa6e --- /dev/null +++ b/charms/ceilometer-k8s/.zuul.yaml @@ -0,0 +1,11 @@ +- project: + templates: + - openstack-python3-charm-jobs + - openstack-cover-jobs + - microk8s-func-test + vars: + charm_build_name: ceilometer-k8s + juju_channel: 3.1/stable + juju_classic_mode: false + microk8s_channel: 1.26-strict/stable + microk8s_classic_mode: false diff --git a/charms/ceilometer-k8s/metadata.yaml b/charms/ceilometer-k8s/metadata.yaml index 6ac72a1b..bdf24f77 100644 --- a/charms/ceilometer-k8s/metadata.yaml +++ b/charms/ceilometer-k8s/metadata.yaml @@ -12,7 +12,7 @@ bases: channel: 22.04/stable assumes: - k8s-api - - juju >= 3.2 + - juju >= 3.1 tags: - openstack source: https://opendev.org/openstack/charm-ceilometer-k8s diff --git a/charms/ceilometer-k8s/tests/bundles/smoke.yaml b/charms/ceilometer-k8s/tests/bundles/smoke.yaml new file mode 100644 index 00000000..48125a29 --- /dev/null +++ b/charms/ceilometer-k8s/tests/bundles/smoke.yaml @@ -0,0 +1,93 @@ +bundle: kubernetes +applications: + + mysql: + charm: ch:mysql-k8s + channel: 8.0/stable + scale: 1 + trust: false + + # Currently traefik is required for networking things. + # If this isn't present, the units will hang at "installing agent". + traefik: + charm: ch:traefik-k8s + channel: 1.0/stable + scale: 1 + trust: true + + traefik-public: + charm: ch:traefik-k8s + channel: 1.0/stable + scale: 1 + trust: true + options: + kubernetes-service-annotations: metallb.universe.tf/address-pool=public + + # required for nova + rabbitmq: + charm: ch:rabbitmq-k8s + channel: 3.9/edge + scale: 1 + trust: true + + keystone: + charm: ch:keystone-k8s + channel: 2023.1/edge + scale: 1 + trust: true + options: + admin-role: admin + storage: + fernet-keys: 5M + credential-keys: 5M + gnocchi: + charm: ch:gnocchi-k8s + channel: 2023.1/edge + scale: 1 + trust: true + ceilometer: + charm: ../../ceilometer-k8s.charm + scale: 1 + trust: true + resources: + ceilometer-central-image: ghcr.io/openstack-snaps/ceilometer-consolidated:2023.1 + ceilometer-notification-image: ghcr.io/openstack-snaps/ceilometer-consolidated:2023.1 + aodh: + charm: ch:aodh-k8s + channel: 2023.1/edge + scale: 1 + trust: true + +relations: +- - traefik:ingress + - keystone:ingress-internal +- - traefik-public:ingress + - keystone:ingress-public + +- - mysql:database + - keystone:database + +- - mysql:database + - aodh:database +- - rabbitmq:amqp + - aodh:amqp +- - keystone:identity-service + - aodh:identity-service +- - traefik:ingress + - aodh:ingress-internal +- - traefik-public:ingress + - aodh:ingress-public + +- - mysql:database + - gnocchi:database +- - traefik:ingress + - gnocchi:ingress-internal +- - traefik-public:ingress + - gnocchi:ingress-public +- - keystone:identity-service + - gnocchi:identity-service + +- - rabbitmq:amqp + - ceilometer:amqp +- - keystone:identity-credentials + - ceilometer:identity-credentials diff --git a/charms/ceilometer-k8s/tests/tests.yaml b/charms/ceilometer-k8s/tests/tests.yaml index 34e47f18..c5587f17 100644 --- a/charms/ceilometer-k8s/tests/tests.yaml +++ b/charms/ceilometer-k8s/tests/tests.yaml @@ -3,8 +3,9 @@ gate_bundles: smoke_bundles: - smoke configure: - - zaza.openstack.charm_tests.keystone.setup.add_tempest_roles -tests: [] + - zaza.charm_tests.noop.setup.basic_setup +tests: + - zaza.charm_tests.noop.tests.NoopTest tests_options: trust: - smoke @@ -15,4 +16,28 @@ tests_options: default: smoke: True -target_deploy_status: [] +target_deploy_status: + traefik: + workload-status: active + workload-status-message-regex: '^$' + traefik-public: + workload-status: active + workload-status-message-regex: '^$' + keystone: + workload-status: active + workload-status-message-regex: '^$' + mysql: + workload-status: active + workload-status-message-regex: '^.*$' + rabbitmq: + workload-status: active + workload-status-message-regex: '^.*$' + ceilometer: + workload-status: active + workload-status-message-regex: '^.*$' + aodh: + workload-status: active + workload-status-message-regex: '^.*$' + gnocchi: + workload-status: blocked + workload-status-message-regex: '^.*ceph.*$'