test: Introduce Helm-based functional test

This change introduces an operator functional test that is related to
the existing template-based functional test (and indeed re-uses most
elements of it).  The primary differences are:

(1) we do the install using helm
(2) the operator deployment derives its name from the helm app name

This test also configure the helm chart such that the PXC operator and
cert-manager are installed as this an underlying requirement of the
test.

Change-Id: Ibd8add5fffbe8bff798ccffebfb3c0c5eb17f619
This commit is contained in:
Michael Kelly 2022-11-28 22:50:05 -08:00
parent 7a03b9627d
commit 7909c7d1a9
No known key found for this signature in database
GPG Key ID: 77F7FE93040ECF3E
2 changed files with 43 additions and 3 deletions

View File

@ -16,14 +16,29 @@
- job:
description: Operator integration tests with Kubernetes
name: zuul-operator-functional-k8s
abstract: true
parent: zuul-operator-functional
pre-run:
- playbooks/zuul-operator-functional/pre-k8s.yaml
- playbooks/zuul-operator-functional/install_templates.yaml
nodeset: ubuntu-bionic
vars:
namespace: 'default'
- job:
description: Operator integration tests with Kubernetes using templates
name: zuul-operator-functional-k8s-template
parent: zuul-operator-functional-k8s
pre-run:
- playbooks/zuul-operator-functional/install_templates.yaml
- job:
description: Operation integration tests with Kubernetes using helm
name: zuul-operator-functional-k8s-helm
parent: zuul-operator-functional-k8s
pre-run:
- playbooks/zuul-operator-functional/pre-k8s.yaml
- playbooks/zuul-operator-functional/install_helm.yaml
- job:
description: Image and buildset registry job
name: zuul-operator-build-image
@ -113,7 +128,9 @@
- zuul-nox-docs
- zuul-operator-helm-lint
- zuul-operator-build-image
- zuul-operator-functional-k8s:
- zuul-operator-functional-k8s-template:
dependencies: zuul-operator-build-image
- zuul-operator-functional-k8s-helm:
dependencies: zuul-operator-build-image
gate:
jobs:
@ -121,8 +138,10 @@
- zuul-nox-docs
- zuul-operator-helm-lint
- zuul-operator-upload-image
- zuul-operator-functional-k8s:
- zuul-operator-functional-k8s-template:
dependencies: zuul-operator-upload-image
- zuul-operator-functional-k8s-helm:
dependencies: zuul-operator-build-image
promote:
jobs:
- zuul-promote-nox-docs

View File

@ -0,0 +1,21 @@
- name: install and start zuul operator
hosts: all
roles:
- role: ensure-helm
vars:
helm_version: 3.10.1
vars:
# Override this if you are running the operator interactively
# locally for development.
install_operator: true
zuul_work_dir: "{{ zuul.projects['opendev.org/zuul/zuul-operator'].src_dir }}"
tasks:
- name: Install Operator
when: install_operator
command: helm install --set image.tag=latest,cert-manager.enabled=true,pxc-operator.enabled=true test helm/zuul-operator
args:
chdir: "{{ zuul_work_dir }}"
- name: Wait for operator deployment
when: install_operator
command: timeout 8m kubectl rollout status deployment/test-zuul-operator