A Kubernetes Operator for Zuul
Go to file
Michael Kelly 49ea14b9bc
helm: Add a basic helm chart for zuul-operator
This change introduces a basic helm chart for the zuul-operator to
make it easier to (un)install is from a given Kubernetes cluster.  The
chart is a combination of the trimmed down output from 'helm create'
combined with some details from the existing Kubernetes templates in
the repository.

Notable differences from the existing templates are as follows:

- ClusterRole, ClusterRoleBinding, and ServiceAccount are all in
  separate template files

- we use the named role in the binding instead of using the
  cluster-admin role, which provides greater access than an operator
  should require

- any references to namespaces are removed as they will be controlled
  by 'helm install'

Notable deficiencies are as follows:

- no readiness probe or liveness probe (this was a pre-existing
  problem in the Kubernetes templates)

- not 100% clear if the listed role permissions are exactly what's
  required

Depends-on: https://review.opendev.org/c/zuul/zuul-jobs/+/861799
Change-Id: I4c31d2e59f140277afe02077551544458c141412
2023-05-18 14:39:47 -07:00
build Update the docker images to python 3.10 2022-10-14 14:48:00 -07:00
deploy deploy: Surface disk_limit_per_job in operator CRD 2023-05-18 14:20:33 -07:00
doc Allow the specification of storageClassName in PVCs 2022-11-02 22:33:08 -07:00
helm/zuul-operator helm: Add a basic helm chart for zuul-operator 2023-05-18 14:39:47 -07:00
playbooks/zuul-operator-functional Prefix managed resources with instance name 2023-05-18 14:39:47 -07:00
tools Add static node to functional test 2021-08-05 07:34:49 -07:00
zuul_operator Prefix managed resources with instance name 2023-05-18 14:39:47 -07:00
.git-blame-ignore-revs Add reformat changes to the blame ignore list 2020-07-08 13:20:57 -04:00
.gitignore Convert docs from tox to nox 2023-02-24 20:50:29 -08:00
.gitreview Add .gitreview and .zuul.yaml 2019-06-27 07:41:10 -07:00
.zuul.yaml helm: Add a basic helm chart for zuul-operator 2023-05-18 14:39:47 -07:00
LICENSE Initial commit 2019-04-02 10:01:37 +00:00
Makefile Add docs 2021-07-23 10:27:04 -07:00
README.md Bump API version to v1alpha2 2021-07-20 13:16:58 -07:00
noxfile.py Add remaining nox sessions based on tox.ini 2023-02-24 21:04:59 -08:00
requirements.txt kopf: Upgrade kopf to at least 1.35.0 2022-10-14 08:38:56 -07:00
setup.cfg Convert linters from tox to nox 2023-02-24 21:00:46 -08:00
setup.py Use kopf operator framework 2021-07-20 13:16:07 -07:00
tox.ini Switch docs theme to versioned RTD 2021-12-16 11:22:21 -08:00

README.md

Zuul Operator

Build the image

$ make image

Install the operator

$ make install
kubectl apply -f deploy/crds/zuul-ci_v1alpha2_zuul_crd.yaml -f deploy/rbac.yaml -f deploy/operator.yaml

Look for operator pod and check it's output

$ kubectl get pods
NAME                            READY     STATUS    RESTARTS   AGE
zuul-operator-c64756f66-rbdmg   2/2       Running   0          3s
$ kubectl logs zuul-operator-c64756f66-rbdmg
[...]
{"level":"info","ts":1554197305.5853095,"logger":"cmd","msg":"Go Version: go1.10.3"}
{"level":"info","ts":1554197305.5854425,"logger":"cmd","msg":"Go OS/Arch: linux/amd64"}
{"level":"info","ts":1554197305.5854564,"logger":"cmd","msg":"Version of operator-sdk: v0.6.0"}
{"level":"info","ts":1554197305.5855,"logger":"cmd","msg":"Watching namespace.","Namespace":"default"}
[...]

Usage

$ kubectl apply -f - <<EOF
apiVersion: operator.zuul-ci.org/v1alpha2
kind: Zuul
metadata:
  name: example-zuul
spec:

EOF
zuul.zuul-ci.org/example-zuul created