Update zuul_cluster to use cr metadata
Also refactor the roles to share group_vars and common tasks
This commit is contained in:
parent
9cbe822f81
commit
996737d56d
18
README.md
18
README.md
@ -65,7 +65,7 @@ $ oc logs zuul-operator-c64756f66-rbdmg -c operator
|
||||
```
|
||||
$ oc apply -f - <<EOF
|
||||
apiVersion: zuul-ci.org/v1alpha1
|
||||
kind: Zuul
|
||||
kind: ZuulService
|
||||
metadata:
|
||||
name: example-zuul
|
||||
spec:
|
||||
@ -80,7 +80,19 @@ spec:
|
||||
EOF
|
||||
zuul.zuul-ci.org/example-zuul created
|
||||
|
||||
$ oc get zuul
|
||||
$ oc get zuulservice
|
||||
NAME AGE
|
||||
example-zuul 16s
|
||||
example-zuul 10s
|
||||
|
||||
$ oc get pods
|
||||
example-zuul-executor-696f969c4-6cpjv 1/1 Running 0 8s
|
||||
example-zuul-scheduler-77b6cf7967-ksh64 1/1 Running 0 11s
|
||||
example-zuul-web-5f744f89c9-qjp9l 1/1 Running 0 6s
|
||||
example-zuul-zk-0 1/1 Running 0 22s
|
||||
|
||||
$ oc get svc
|
||||
example-zuul-web ClusterIP 172.30.209.181 <none> 80/TCP 41s
|
||||
|
||||
$ curl 172.30.209.181/api/info
|
||||
{"info": {"capabilities": {"job_history": false}, "websocket_url": null, "stats": {"prefix": null, "type": "graphite", "url": null}}}
|
||||
```
|
||||
|
@ -1,25 +1,7 @@
|
||||
---
|
||||
namespace: "default"
|
||||
state: "present"
|
||||
|
||||
zuul_app_name: "zuul"
|
||||
zuul_cluster_name: "zuul"
|
||||
|
||||
zuul_version: "latest" #"3.7.1"
|
||||
zuul_image_name: "docker.io/zuul/zuul"
|
||||
zuul_image_name_scheduler: "{{ zuul_image_name }}-scheduler:{{ zuul_version }}"
|
||||
zuul_image_name_merger: "{{ zuul_image_name }}-merger:{{ zuul_version }}"
|
||||
zuul_image_name_executor: "{{ zuul_image_name }}-executor:{{ zuul_version }}"
|
||||
zuul_image_name_web: "{{ zuul_image_name }}-web:{{ zuul_version }}"
|
||||
zuul_service_account_name: "zuul-operator"
|
||||
|
||||
zuul_configmap_name: "{{ zuul_cluster_name }}-config"
|
||||
|
||||
zk_cluster_name: "example-zk"
|
||||
zk_api_version: "zookeeper.pravega.io/v1beta1"
|
||||
|
||||
|
||||
# Default cr spec
|
||||
meta:
|
||||
name: demozuul
|
||||
tenants: []
|
||||
connections: []
|
||||
merger:
|
||||
@ -28,3 +10,23 @@ executor:
|
||||
instances: 1
|
||||
web:
|
||||
instances: 1
|
||||
namespace: "{{ meta.namespace|default('default') }}"
|
||||
state: "present"
|
||||
|
||||
zuul_app_name: "zuul"
|
||||
zuul_cluster_name: "{{ meta.name }}"
|
||||
|
||||
zuul_version: "latest" #"3.7.1"
|
||||
zuul_image_name_base: "docker.io/zuul/zuul"
|
||||
zuul_image_name:
|
||||
scheduler: "{{ zuul_image_name_base }}-scheduler:{{ zuul_version }}"
|
||||
merger: "{{ zuul_image_name_base }}-merger:{{ zuul_version }}"
|
||||
executor: "{{ zuul_image_name_base }}-executor:{{ zuul_version }}"
|
||||
web: "{{ zuul_image_name_base }}-web:{{ zuul_version }}"
|
||||
zuul_service_account_name: "zuul-operator"
|
||||
zuul_image_pull_policy: "IfNotPresent"
|
||||
|
||||
zuul_configmap_name: "{{ zuul_cluster_name }}-config"
|
||||
|
||||
zk_cluster_name: "{{ zuul_cluster_name }}-zk"
|
||||
zk_api_version: "zookeeper.pravega.io/v1beta1"
|
||||
|
@ -3,8 +3,8 @@
|
||||
k8s:
|
||||
state: "{{ state }}"
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: "{{ zuul_configmap_name }}-scheduler"
|
||||
namespace: "{{ namespace }}"
|
||||
@ -28,20 +28,34 @@
|
||||
|
||||
{% for connection in connections %}
|
||||
[connection {{ connection["name"] }}]
|
||||
driver={{ connection["driver"] }}
|
||||
server={{ connection["server"] }}
|
||||
{% for k, v in connection.items() %}{% if k != "name" %}
|
||||
{{ k }}={{ v }}
|
||||
{% endif %}{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
"main.yaml": |
|
||||
{{ tenants|to_yaml }}
|
||||
register: scheduler_config
|
||||
|
||||
- name: Register if tenant config changed
|
||||
set_fact:
|
||||
tenant_config_updated: >-
|
||||
{% if (scheduler_config is changed and
|
||||
scheduler_config.diff and
|
||||
'main.yaml' in scheduler_config.diff[-1][1]) %}True
|
||||
{% endif %}
|
||||
|
||||
- debug:
|
||||
msg: "Tenant config is updated"
|
||||
when: tenant_config_updated
|
||||
|
||||
- name: Create the zuul service configmap
|
||||
k8s:
|
||||
state: "{{ state }}"
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: "{{ zuul_configmap_name }}"
|
||||
namespace: "{{ namespace }}"
|
||||
@ -51,15 +65,20 @@
|
||||
data:
|
||||
"zuul.conf": |
|
||||
[gearman]
|
||||
server=zuul-scheduler
|
||||
server={{ zuul_cluster_name }}-scheduler
|
||||
port=4730
|
||||
|
||||
[zookeeper]
|
||||
hosts={{ zk_cluster_name }}-client:2181
|
||||
|
||||
[web]
|
||||
listen_address=0.0.0.0
|
||||
port=9000
|
||||
|
||||
{% for connection in connections %}
|
||||
[connection {{ connection["name"] }}]
|
||||
driver={{ connection["driver"] }}
|
||||
server={{ connection["server"] }}
|
||||
{% for k, v in connection.items() %}{% if k != "name" %}
|
||||
{{ k }}={{ v }}
|
||||
{% endif %}{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
|
@ -1 +0,0 @@
|
||||
zuul_image_pull_policy: IfNotPresent
|
47
ansible/roles/deploy/tasks/create_deployment.yaml
Normal file
47
ansible/roles/deploy/tasks/create_deployment.yaml
Normal file
@ -0,0 +1,47 @@
|
||||
- name: Create Deployment
|
||||
k8s:
|
||||
state: "{{ state }}"
|
||||
definition:
|
||||
kind: "Deployment"
|
||||
apiVersion: "extensions/v1beta1"
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-{{ deployment_name }}"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
annotations:
|
||||
configHash: ""
|
||||
spec:
|
||||
replicas: "{{ deployment_replicas|default(1) }}"
|
||||
selector:
|
||||
matchLabels:
|
||||
app: "{{ zuul_cluster_name }}-{{ deployment_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
template:
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-{{ deployment_name }}"
|
||||
labels:
|
||||
app: "{{ zuul_cluster_name }}-{{ deployment_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
containers:
|
||||
- name: "{{ zuul_cluster_name }}-{{ deployment_name }}"
|
||||
image: "{{ zuul_image_name[deployment_name] }}"
|
||||
imagePullPolicy: "{{ zuul_image_pull_policy }}"
|
||||
ports: "{{ deployment_ports|default([]) }}"
|
||||
volumeMounts:
|
||||
- mountPath: "/etc/zuul"
|
||||
name: zuul-config-volume
|
||||
readOnly: true
|
||||
- mountPath: "/var/lib/zuul"
|
||||
name: zuul-data-volume
|
||||
command:
|
||||
- "zuul-{{ deployment_name }}"
|
||||
- "-d"
|
||||
volumes:
|
||||
- name: zuul-config-volume
|
||||
configMap:
|
||||
name: "{{ deployment_config|default(zuul_configmap_name) }}"
|
||||
- name: zuul-data-volume
|
||||
emptyDir: {}
|
18
ansible/roles/deploy/tasks/create_service.yaml
Normal file
18
ansible/roles/deploy/tasks/create_service.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
- name: Create Service
|
||||
k8s:
|
||||
state: "{{ state }}"
|
||||
definition:
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-{{ service_name }}"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: "{{ zuul_cluster_name }}-{{ service_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
ports: "{{ service_ports }}"
|
@ -1,229 +1,56 @@
|
||||
---
|
||||
- name: Scheduler Deployment
|
||||
k8s:
|
||||
definition:
|
||||
kind: "Deployment"
|
||||
apiVersion: "extensions/v1beta1"
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-scheduler"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-scheduler"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: "{{ zuul_app_name }}-scheduler"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
template:
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-scheduler"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-scheduler"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
serviceAccountName: "{{ zuul_service_account_name }}"
|
||||
containers:
|
||||
- name: zuul-scheduler
|
||||
image: "{{ zuul_image_name_scheduler }}"
|
||||
imagePullPolicy: "{{ zuul_image_pull_policy }}"
|
||||
ports:
|
||||
- containerPort: 4730
|
||||
protocol: "TCP"
|
||||
volumeMounts:
|
||||
- mountPath: "/etc/zuul"
|
||||
name: zuul-config-volume
|
||||
readOnly: true
|
||||
- mountPath: "/var/lib/zuul"
|
||||
name: zuul-data-volume
|
||||
command:
|
||||
- "zuul-scheduler"
|
||||
- "-d"
|
||||
volumes:
|
||||
- name: zuul-config-volume
|
||||
configMap:
|
||||
name: "{{ zuul_configmap_name }}-scheduler"
|
||||
- name: zuul-data-volume
|
||||
emptyDir: {}
|
||||
vars:
|
||||
deployment_name: scheduler
|
||||
deployment_ports:
|
||||
- containerPort: 4730
|
||||
protocol: "TCP"
|
||||
deployment_config: "{{ zuul_configmap_name }}-scheduler"
|
||||
include_tasks: "./create_deployment.yaml"
|
||||
register: sched_deployment
|
||||
|
||||
- name: Create Scheduler service
|
||||
k8s:
|
||||
state: "{{ state }}"
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-scheduler"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: "{{ zuul_app_name }}-scheduler"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
ports:
|
||||
- name: "gearman"
|
||||
port: 4730
|
||||
protocol: TCP
|
||||
when: (services_lookup|default([])|length==0)
|
||||
- name: Scheduler service
|
||||
vars:
|
||||
service_name: scheduler
|
||||
service_ports:
|
||||
- name: "gearman"
|
||||
port: 4730
|
||||
protocol: TCP
|
||||
include_tasks: "./create_service.yaml"
|
||||
|
||||
- name: Reload scheduler
|
||||
include_tasks: "./reload_scheduler.yaml"
|
||||
when:
|
||||
- sched_deployment is not changed
|
||||
- tenant_config_updated
|
||||
|
||||
- name: Merger Deployment
|
||||
k8s:
|
||||
definition:
|
||||
kind: "Deployment"
|
||||
apiVersion: "extensions/v1beta1"
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-merger"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-merger"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
replicas: "{{ merger.instances }}"
|
||||
selector:
|
||||
matchLabels:
|
||||
app: "{{ zuul_app_name }}-merger"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
template:
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-merger"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-merger"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
serviceAccountName: "{{ zuul_service_account_name }}"
|
||||
containers:
|
||||
- name: zuul-merger
|
||||
image: "{{ zuul_image_name_merger }}"
|
||||
imagePullPolicy: "{{ zuul_image_pull_policy }}"
|
||||
volumeMounts:
|
||||
- mountPath: "/etc/zuul"
|
||||
name: zuul-config-volume
|
||||
readOnly: true
|
||||
- mountPath: "/var/lib/zuul"
|
||||
name: zuul-data-volume
|
||||
command:
|
||||
- "zuul-merger"
|
||||
- "-d"
|
||||
volumes:
|
||||
- name: zuul-config-volume
|
||||
configMap:
|
||||
name: "{{ zuul_configmap_name }}"
|
||||
- name: zuul-data-volume
|
||||
emptyDir: {}
|
||||
vars:
|
||||
deployment_name: merger
|
||||
deployment_replicas: "{{ merger.instances }}"
|
||||
include_tasks: "./create_deployment.yaml"
|
||||
|
||||
- name: Executor Deployment
|
||||
k8s:
|
||||
definition:
|
||||
kind: "Deployment"
|
||||
apiVersion: "extensions/v1beta1"
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-executor"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-executor"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
replicas: "{{ executor.instances }}"
|
||||
selector:
|
||||
matchLabels:
|
||||
app: "{{ zuul_app_name }}-executor"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
template:
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-executor"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-executor"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
serviceAccountName: "{{ zuul_service_account_name }}"
|
||||
containers:
|
||||
- name: zuul-executor
|
||||
image: "{{ zuul_image_name_executor }}"
|
||||
imagePullPolicy: "{{ zuul_image_pull_policy }}"
|
||||
volumeMounts:
|
||||
- mountPath: "/etc/zuul"
|
||||
name: zuul-config-volume
|
||||
readOnly: true
|
||||
- mountPath: "/var/lib/zuul"
|
||||
name: zuul-data-volume
|
||||
command:
|
||||
- "zuul-executor"
|
||||
- "-d"
|
||||
volumes:
|
||||
- name: zuul-config-volume
|
||||
configMap:
|
||||
name: "{{ zuul_configmap_name }}"
|
||||
- name: zuul-data-volume
|
||||
emptyDir: {}
|
||||
vars:
|
||||
deployment_name: executor
|
||||
deployment_replicas: "{{ executor.instances }}"
|
||||
include_tasks: "./create_deployment.yaml"
|
||||
|
||||
- name: Web Deployment
|
||||
k8s:
|
||||
definition:
|
||||
kind: "Deployment"
|
||||
apiVersion: "extensions/v1beta1"
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-web"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-web"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
replicas: "{{ web.instances }}"
|
||||
selector:
|
||||
matchLabels:
|
||||
app: "{{ zuul_app_name }}-web"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
template:
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-web"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}-web"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
serviceAccountName: "{{ zuul_service_account_name }}"
|
||||
containers:
|
||||
- name: zuul-web
|
||||
image: "{{ zuul_image_name_web }}"
|
||||
imagePullPolicy: "{{ zuul_image_pull_policy }}"
|
||||
volumeMounts:
|
||||
- mountPath: "/etc/zuul"
|
||||
name: zuul-config-volume
|
||||
readOnly: true
|
||||
- mountPath: "/var/lib/zuul"
|
||||
name: zuul-data-volume
|
||||
command:
|
||||
- "zuul-web"
|
||||
- "-d"
|
||||
volumes:
|
||||
- name: zuul-config-volume
|
||||
configMap:
|
||||
name: "{{ zuul_configmap_name }}"
|
||||
- name: zuul-data-volume
|
||||
emptyDir: {}
|
||||
vars:
|
||||
deployment_name: web
|
||||
deployment_replicas: "{{ web.instances }}"
|
||||
deployment_ports:
|
||||
- containerPort: 9000
|
||||
protocol: "TCP"
|
||||
include_tasks: "./create_deployment.yaml"
|
||||
|
||||
- name: Create Web service
|
||||
k8s:
|
||||
state: "{{ state }}"
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: "{{ zuul_cluster_name }}-web"
|
||||
namespace: "{{ namespace }}"
|
||||
labels:
|
||||
app: "{{ zuul_app_name }}"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: "{{ zuul_app_name }}-web"
|
||||
zuul_cluster: "{{ zuul_cluster_name }}"
|
||||
ports:
|
||||
- name: "web"
|
||||
port: 9000
|
||||
protocol: TCP
|
||||
targetPort: 9000
|
||||
- name: Web Service
|
||||
vars:
|
||||
service_name: web
|
||||
service_ports:
|
||||
- name: "web"
|
||||
port: 80
|
||||
protocol: TCP
|
||||
targetPort: 9000
|
||||
include_tasks: "./create_service.yaml"
|
||||
|
3
ansible/roles/deploy/tasks/reload_scheduler.yaml
Normal file
3
ansible/roles/deploy/tasks/reload_scheduler.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- name: Add scheduler pod to the inventory
|
||||
command: echo TODO...
|
@ -1,2 +0,0 @@
|
||||
---
|
||||
state: "present"
|
@ -1,6 +1,7 @@
|
||||
---
|
||||
- set_fact:
|
||||
label_selector_value: "zuul_cluster={{ zuul_cluster_name }},app={{ zuul_app_name }}"
|
||||
sched_selector_value: "zuul_cluster={{ zuul_cluster_name }},app={{ zuul_cluster_name }}-scheduler"
|
||||
|
||||
- name: lookup k8s secrets
|
||||
set_fact:
|
||||
@ -10,19 +11,15 @@
|
||||
set_fact:
|
||||
zk_cr_lookup: "{{ lookup('k8s', api_version=zk_api_version, kind='ZookeeperCluster', namespace=namespace, resource_name=zk_cluster_name) }}"
|
||||
|
||||
- name: lookup k8s configmap
|
||||
- name: lookup scheduler pod
|
||||
set_fact:
|
||||
configmap_lookup: "{{ lookup('k8s', api_version='v1', kind='ConfigMap', namespace=namespace, resource_name=zuul_configmap_name) }}"
|
||||
zuul_scheduler_pod: "{{ lookup('k8s', api_version='v1', kind='Pod', namespace=namespace, label_selector=sched_selector_value) }}"
|
||||
|
||||
- name: lookup k8s Zuul cluster service
|
||||
set_fact:
|
||||
services_lookup: "{{ lookup('k8s', api_version='v1', kind='Service', namespace=namespace, label_selector=label_selector_value) }}"
|
||||
|
||||
- name: lookup k8s Zuul cluster deployment
|
||||
- name: lookup k8s Zuul deployment
|
||||
set_fact:
|
||||
zuul_deployment_lookup: "{{ lookup('k8s', api_version='extensions/v1beta1', kind='Deployment', namespace=namespace, resource_name=zuul_cluster_name) }}"
|
||||
|
||||
- name: Get currently deployed Zuul image name
|
||||
- name: get currently deployed Zuul image name
|
||||
set_fact:
|
||||
current_deployed_image: "{{ zuul_deployment_lookup.spec.template.spec.containers['name'=='zuul'].image }}"
|
||||
when: zuul_deployment_lookup.spec is defined
|
||||
|
@ -3,6 +3,8 @@
|
||||
gather_facts: no
|
||||
tasks:
|
||||
- debug: msg="Running Zuul Operator Playbook"
|
||||
- name: Show the env
|
||||
command: env
|
||||
- import_role:
|
||||
name: get_status
|
||||
- import_role:
|
||||
|
@ -1,5 +1,5 @@
|
||||
apiVersion: zuul-ci.org/v1alpha1
|
||||
kind: Zuul
|
||||
apiVersion: operator.zuul-ci.org/v1alpha1
|
||||
kind: ZuulService
|
||||
metadata:
|
||||
name: example-zuul
|
||||
spec:
|
||||
|
@ -1,18 +1,19 @@
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: zuuls.zuul-ci.org
|
||||
name: zuulservices.operator.zuul-ci.org
|
||||
spec:
|
||||
group: zuul-ci.org
|
||||
group: operator.zuul-ci.org
|
||||
names:
|
||||
kind: Zuul
|
||||
listKind: ZuulList
|
||||
plural: zuuls
|
||||
singular: zuul
|
||||
kind: ZuulService
|
||||
listKind: ZuulServiceList
|
||||
plural: zuulservices
|
||||
singular: zuulservice
|
||||
shortNames:
|
||||
- zuul
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
version: v1alpha1
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
|
@ -55,7 +55,7 @@ rules:
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- zuul-ci.org
|
||||
- operator.zuul-ci.org
|
||||
resources:
|
||||
- '*'
|
||||
verbs:
|
||||
|
@ -1,23 +0,0 @@
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: zuul-operator
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: zuul-operator
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: zuul-operator
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: zookeeper-operator
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: zuul-operator
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: zookeeper-operator
|
||||
apiGroup: rbac.authorization.k8s.io
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
- version: v1alpha1
|
||||
group: zuul-ci.org
|
||||
kind: Zuul
|
||||
group: operator.zuul-ci.org
|
||||
kind: ZuulService
|
||||
playbook: /opt/ansible/zuul.yaml
|
||||
|
Loading…
x
Reference in New Issue
Block a user