Add handling of empty WATCH_NAMESPACE value of jenkins.namespace (#609)
* Add note that jenkins.namespace also affects jenkins-operator resources * Add handling of empty WATCH_NAMESPACE value of jenkins.namespace If jenkins.namespace is set to "", it leads to WATCH_NAMESPACE environment value of Jenkins Operator itself to be set to "", which leads that operator watches all namespaces (see https://github.com/jenkinsci/kubernetes-operator/issues/77#issuecomment-523727092). This case requires custom handling: instead of creating role and role_binding we need to create clusterrole and clusterrolebinding with the required permissions. * Bump chart version * Fix grammar as suggested by @Sig00rd Co-authored-by: Sig00rd <sz.fugas@gmail.com>
This commit is contained in:
parent
2d1a67afb9
commit
aedc2aff59
|
|
@ -1,11 +1,13 @@
|
||||||
{{ define "jenkins-operator.role" }}
|
{{ define "jenkins-operator.role" }}
|
||||||
{{ $namespace := . }}
|
{{ $namespace := . }}
|
||||||
---
|
---
|
||||||
kind: Role
|
kind: {{ if eq $namespace "" }}ClusterRole{{ else }}Role{{ end }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
metadata:
|
metadata:
|
||||||
name: jenkins-operator
|
name: jenkins-operator
|
||||||
|
{{- if ne $namespace "" }}
|
||||||
namespace: {{ $namespace }}
|
namespace: {{ $namespace }}
|
||||||
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- apps
|
- apps
|
||||||
|
|
@ -171,4 +173,4 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,28 @@ roleRef:
|
||||||
kind: Role
|
kind: Role
|
||||||
name: jenkins-operator
|
name: jenkins-operator
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
{{ if ne .Release.Namespace .Values.jenkins.namespace }}
|
{{ if eq .Values.jenkins.namespace "" }}
|
||||||
|
{{- /*
|
||||||
|
# This is a special case when .Values.jenkins.namespace is equal to empty
|
||||||
|
# string which leads to WATCH_NAMESPACE env of jenkins-operator to be set to
|
||||||
|
# empty string and leads to operator actually watching all namespaces. In this
|
||||||
|
# case we need to create clusterrole and clusterrolebinding instead of role and
|
||||||
|
# rolebinding
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
name: jenkins-operator
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: jenkins-operator
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
roleRef:
|
||||||
|
kind: ClusterRole
|
||||||
|
name: jenkins-operator
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
{{ else if ne .Release.Namespace .Values.jenkins.namespace }}
|
||||||
---
|
---
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
|
@ -27,4 +48,4 @@ roleRef:
|
||||||
kind: Role
|
kind: Role
|
||||||
name: jenkins-operator
|
name: jenkins-operator
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ jenkins:
|
||||||
# namespace is the namespace where the resources will be deployed
|
# namespace is the namespace where the resources will be deployed
|
||||||
# It's not recommended to use default namespace
|
# It's not recommended to use default namespace
|
||||||
# Create new namespace for jenkins (called e.g. jenkins)
|
# Create new namespace for jenkins (called e.g. jenkins)
|
||||||
|
# Note: this affects roles and rolebindings for jenkins operator itself
|
||||||
namespace: default
|
namespace: default
|
||||||
|
|
||||||
# labels are injected into metadata labels field
|
# labels are injected into metadata labels field
|
||||||
|
|
@ -139,7 +140,7 @@ jenkins:
|
||||||
# slave Jenkins service
|
# slave Jenkins service
|
||||||
# See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service for details
|
# See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service for details
|
||||||
#slaveService:
|
#slaveService:
|
||||||
|
|
||||||
# LivenessProbe for Jenkins Master pod
|
# LivenessProbe for Jenkins Master pod
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 12
|
failureThreshold: 12
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue