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:
parent
b3e7319314
commit
ddabcf073e
|
@ -6,5 +6,5 @@
|
|||
apiVersion: operator.zuul-ci.org/v1alpha2
|
||||
kind: Zuul
|
||||
metadata:
|
||||
name: zuul
|
||||
name: my
|
||||
spec: "{{ spec }}"
|
||||
|
|
|
@ -11,5 +11,5 @@
|
|||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: zuul-web
|
||||
serviceName: my-zuul-web
|
||||
servicePort: 9000
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue