A Kubernetes Operator for Zuul
Go to file
James E. Blair 900528164e Fix config update detection
We are supposed to update zuul/nodepool when the relevant secrets
are updated.  We do that by subscribing to changes on all secrets
in the system, then check to see if they are ones that we're watching
and if so, run the appropriate operator methods.

We only updated the list of secrets to watch on startup, which means
that from a clean start where a zuul was added, we would not add
the new secrets to our list.  This change updates the list after every
time that the zuul resource is created or updated.

Change-Id: Ib6191367eb2596eba560b9c570140f33866c005f
2021-08-05 07:35:09 -07:00
build Use kopf operator framework 2021-07-20 13:16:07 -07:00
deploy Add support for zuul-registry 2021-07-23 10:27:06 -07:00
doc Document externalConfig 2021-08-05 07:35:08 -07:00
playbooks/zuul-operator-functional Add static node to functional test 2021-08-05 07:34:49 -07:00
tools Add static node to functional test 2021-08-05 07:34:49 -07:00
zuul_operator Fix config update detection 2021-08-05 07:35:09 -07:00
.git-blame-ignore-revs Add reformat changes to the blame ignore list 2020-07-08 13:20:57 -04:00
.gitignore Use kopf operator framework 2021-07-20 13:16:07 -07:00
.gitreview Add .gitreview and .zuul.yaml 2019-06-27 07:41:10 -07:00
.zuul.yaml Flake8 cleanups 2021-07-23 10:27:10 -07:00
CONTRIBUTE.md Add initial withCertManager input toggle 2020-04-15 00:04:21 +00: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
requirements.txt Use kopf operator framework 2021-07-20 13:16:07 -07:00
setup.cfg Use kopf operator framework 2021-07-20 13:16:07 -07:00
setup.py Use kopf operator framework 2021-07-20 13:16:07 -07:00
tox.ini Flake8 cleanups 2021-07-23 10:27:10 -07:00

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