Prefix zuul-specific resources with instance name

The current version of the operator creates all the resources with a
non-templated name.  By doing this, it becomes impossible to deploy
more than one cluster instance within the same namespace.

Change-Id: Ia994bafade7b10c489d44f9dcf4ba20e8c59f5ba
This commit is contained in:
Michael Kelly 2022-08-18 10:30:12 -07:00
parent b3e7319314
commit ddabcf073e
No known key found for this signature in database
GPG Key ID: 77F7FE93040ECF3E
8 changed files with 42 additions and 41 deletions

View File

@ -6,5 +6,5 @@
apiVersion: operator.zuul-ci.org/v1alpha2
kind: Zuul
metadata:
name: zuul
name: my
spec: "{{ spec }}"

View File

@ -11,5 +11,5 @@
paths:
- path: /
backend:
serviceName: zuul-web
serviceName: my-zuul-web
servicePort: 9000

View File

@ -1,5 +1,5 @@
- name: Get preview service ip
command: kubectl get svc zuul-preview -o jsonpath='{.spec.ports[0].nodePort}'
command: kubectl get svc my-zuul-preview -o jsonpath='{.spec.ports[0].nodePort}'
register: _preview_port
- name: Connect to the preview service

View File

@ -11,7 +11,7 @@
containers:
- name: test-registry
image: quay.io/containers/podman:latest
command: ['podman', '--log-level=debug', 'login', '--tls-verify=false', 'zuul-registry', '-u', 'testuser', '-p', 'testpass']
command: ['podman', '--log-level=debug', 'login', '--tls-verify=false', 'my-zuul-registry', '-u', 'testuser', '-p', 'testpass']
securityContext:
privileged: true
restartPolicy: Never

View File

@ -2,22 +2,22 @@
shell: |
for idx in $(seq 90); do
date;
kubectl get statefulset zuul-scheduler 2> /dev/null && break || :
kubectl get statefulset my-zuul-scheduler 2> /dev/null && break || :
sleep 10;
done
- name: Wait for scheduler deployment
command: timeout 10m kubectl rollout status statefulset/zuul-scheduler
command: timeout 10m kubectl rollout status statefulset/my-zuul-scheduler
- name: Wait 8 minutes for scheduler to settle
command: kubectl logs pod/zuul-scheduler-0
command: kubectl logs pod/my-zuul-scheduler-0
register: _scheduler_log
until: "'Config priming complete' in _scheduler_log.stdout"
delay: 10
retries: 48
- name: Wait for executor deployment
command: timeout 10m kubectl rollout status statefulset/zuul-executor
command: timeout 10m kubectl rollout status statefulset/my-zuul-executor
- name: Wait 8 minutes for kube launcher to settle
command: kubectl logs deployment/nodepool-launcher-kube-cluster

View File

@ -3,7 +3,7 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: zuul-registry-tls
name: {{ instance_name }}-zuul-registry-tls
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -11,7 +11,7 @@ metadata:
app.kubernetes.io/component: zuul-registry-tls
spec:
keyEncoding: pkcs8
secretName: zuul-registry-tls
secretName: {{ instance_name }}-zuul-registry-tls
commonName: client
usages:
- digital signature
@ -26,7 +26,7 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: zuul-registry
name: {{ instance_name }}-zuul-registry
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -48,7 +48,7 @@ spec:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zuul-registry
name: {{ instance_name }}-zuul-registry
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -56,7 +56,7 @@ metadata:
app.kubernetes.io/component: zuul-registry
spec:
replicas: {{ spec.registry.count }}
serviceName: zuul-registry
serviceName: {{ instance_name }}-zuul-registry
selector:
matchLabels:
app.kubernetes.io/name: zuul
@ -88,18 +88,18 @@ spec:
- name: zuul-registry-tls
mountPath: /tls
readOnly: true
- name: zuul-registry
- name: data
mountPath: /storage
volumes:
- name: zuul-registry-config
secret:
secretName: zuul-registry-generated-config
secretName: {{ instance_name }}-zuul-registry-generated-config
- name: zuul-registry-tls
secret:
secretName: {{ spec.registry.tls.secretName }}
volumeClaimTemplates:
- metadata:
name: zuul-registry
name: data
spec:
accessModes:
- ReadWriteOnce

View File

@ -26,7 +26,7 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: zuul-executor
name: {{ instance_name }}-zuul-executor
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -49,7 +49,7 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: zuul-web
name: {{ instance_name }}-zuul-web
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -71,7 +71,7 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: zuul-fingergw
name: {{ instance_name }}-zuul-fingergw
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -93,7 +93,7 @@ spec:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zuul-scheduler
name: {{ instance_name }}-zuul-scheduler
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -101,7 +101,7 @@ metadata:
app.kubernetes.io/component: zuul-scheduler
spec:
replicas: 1
serviceName: zuul-scheduler
serviceName: {{ instance_name }}-zuul-scheduler
selector:
matchLabels:
app.kubernetes.io/name: zuul
@ -130,7 +130,7 @@ spec:
- name: zuul-tenant-config
mountPath: /etc/zuul/tenant
readOnly: true
- name: zuul-scheduler
- name: data
mountPath: /var/lib/zuul
- name: zookeeper-client-tls
mountPath: /tls/client
@ -146,7 +146,7 @@ spec:
volumes:
- name: zuul-config
secret:
secretName: zuul-config
secretName: {{ instance_name }}-zuul-config
- name: zuul-tenant-config
secret:
secretName: {{ zuul_tenant_secret }}
@ -162,7 +162,7 @@ spec:
{%- endfor %}
volumeClaimTemplates:
- metadata:
name: zuul-scheduler
name: data
spec:
accessModes:
- ReadWriteOnce
@ -176,7 +176,7 @@ spec:
apiVersion: apps/v1
kind: Deployment
metadata:
name: zuul-web
name: {{ instance_name }}-zuul-web
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -217,7 +217,7 @@ spec:
volumes:
- name: zuul-config
secret:
secretName: zuul-config
secretName: {{ instance_name }}-zuul-config
- name: zookeeper-client-tls
secret:
secretName: zookeeper-client-tls
@ -225,7 +225,7 @@ spec:
apiVersion: apps/v1
kind: Deployment
metadata:
name: zuul-fingergw
name: {{ instance_name }}-zuul-fingergw
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -265,7 +265,7 @@ spec:
volumes:
- name: zuul-config
secret:
secretName: zuul-config
secretName: {{ instance_name }}-zuul-config
- name: zookeeper-client-tls
secret:
secretName: zookeeper-client-tls
@ -273,14 +273,14 @@ spec:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zuul-executor
name: {{ instance_name }}-zuul-executor
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
app.kubernetes.io/part-of: zuul
app.kubernetes.io/component: zuul-executor
spec:
serviceName: zuul-executor
serviceName: {{ instance_name }}-zuul-executor
replicas: {{ spec.executor.count }}
podManagementPolicy: Parallel
selector:
@ -345,7 +345,7 @@ spec:
emptyDir: {}
- name: zuul-config
secret:
secretName: zuul-config
secretName: {{ instance_name }}-zuul-config
- name: zookeeper-client-tls
secret:
secretName: {{ spec.zookeeper.secretName }}
@ -368,14 +368,14 @@ spec:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zuul-merger
name: {{ instance_name }}-zuul-merger
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
app.kubernetes.io/part-of: zuul
app.kubernetes.io/component: zuul-merger
spec:
serviceName: zuul-merger
serviceName: {{ instance_name }}-zuul-merger
replicas: {{ spec.merger.count }}
podManagementPolicy: Parallel
selector:
@ -423,7 +423,7 @@ spec:
emptyDir: {}
- name: zuul-config
secret:
secretName: zuul-config
secretName: {{ instance_name }}-zuul-config
- name: zookeeper-client-tls
secret:
secretName: {{ spec.zookeeper.secretName }}
@ -438,7 +438,7 @@ spec:
apiVersion: v1
kind: Service
metadata:
name: zuul-preview
name: {{ instance_name }}-zuul-preview
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -460,7 +460,7 @@ spec:
apiVersion: apps/v1
kind: Deployment
metadata:
name: zuul-preview
name: {{ instance_name }}-zuul-preview
labels:
app.kubernetes.io/name: zuul
app.kubernetes.io/instance: {{ instance_name }}
@ -491,4 +491,4 @@ spec:
containerPort: 80
env:
- name: ZUUL_API_URL
value: http://zuul-web/
value: http://{{ instance_name }}-zuul-web/

View File

@ -86,7 +86,7 @@ class Zuul:
registry_tls = registry.setdefault('tls', {})
self.manage_registry_cert = ('secretName' not in registry_tls)
registry_tls.setdefault('secretName', 'zuul-registry-tls')
registry_tls.setdefault('secretName', f'{name}-zuul-registry-tls')
self.spec.setdefault('imagePrefix', 'docker.io/zuul')
self.spec.setdefault('imagePullSecrets', [])
@ -239,7 +239,8 @@ class Zuul:
m.update(text.encode('utf8'))
self.zuul_conf_sha = m.hexdigest()
utils.update_secret(self.api, self.namespace, 'zuul-config',
utils.update_secret(self.api, self.namespace,
f'{self.name}-zuul-config',
string_data={'zuul.conf': text})
def parse_zk_string(self, hosts):
@ -368,7 +369,7 @@ class Zuul:
reg = registry_yaml['registry']
if 'public-url' not in reg:
reg['public-url'] = 'https://zuul-registry'
reg['public-url'] = f'https://{self.name}-zuul-registry'
reg['address'] = '0.0.0.0'
reg['port'] = 9000
reg['tls-cert'] = '/tls/tls.crt'
@ -381,7 +382,7 @@ class Zuul:
text = yaml.dump(registry_yaml)
utils.update_secret(self.api, self.namespace,
'zuul-registry-generated-config',
f'{self.name}-zuul-registry-generated-config',
string_data={'registry.yaml': text})
def create_registry(self):