--- apiVersion: v1 kind: ServiceAccount metadata: name: jenkins-operator --- # permissions to do leader election. apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: leader-election-role rules: - apiGroups: - "" - coordination.k8s.io resources: - configmaps - leases verbs: - get - list - watch - create - update - patch - delete - apiGroups: - "" resources: - events verbs: - create - patch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: leader-election-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: leader-election-role subjects: - kind: ServiceAccount name: jenkins-operator --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: jenkins-operator rules: - apiGroups: - apps resources: - daemonsets - deployments - replicasets - statefulsets verbs: - '*' - apiGroups: - apps - jenkins-operator resources: - deployments/finalizers verbs: - update - apiGroups: - build.openshift.io resources: - buildconfigs - builds verbs: - get - list - watch - apiGroups: - "" resources: - configmaps - secrets - services verbs: - create - get - list - update - watch - apiGroups: - "" resources: - events verbs: - create - get - list - patch - watch - apiGroups: - "" resources: - persistentvolumeclaims verbs: - get - list - watch - apiGroups: - "" resources: - pods verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - pods - pods/exec verbs: - '*' - apiGroups: - "" resources: - pods/log verbs: - get - list - watch - apiGroups: - "" resources: - pods/portforward verbs: - create - apiGroups: - "" resources: - serviceaccounts verbs: - create - get - list - update - watch - apiGroups: - image.openshift.io resources: - imagestreams verbs: - get - list - watch - apiGroups: - jenkins.io resources: - '*' verbs: - '*' - apiGroups: - jenkins.io resources: - jenkins verbs: - create - delete - get - list - patch - update - watch - apiGroups: - jenkins.io resources: - jenkins/finalizers verbs: - update - apiGroups: - jenkins.io resources: - jenkins/status verbs: - get - patch - update - apiGroups: - rbac.authorization.k8s.io resources: - rolebindings - roles verbs: - create - get - list - update - watch - apiGroups: - route.openshift.io resources: - routes verbs: - create - get - list - update - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: jenkins-operator subjects: - kind: ServiceAccount name: jenkins-operator --- apiVersion: apps/v1 kind: Deployment metadata: name: jenkins-operator labels: control-plane: controller-manager spec: selector: matchLabels: control-plane: controller-manager replicas: 1 template: metadata: labels: control-plane: controller-manager spec: serviceAccountName: jenkins-operator securityContext: runAsUser: 65532 containers: - command: - /manager args: - --leader-elect image: virtuslab/jenkins-operator:v0.7.1 name: jenkins-operator imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 100m memory: 90Mi requests: cpu: 100m memory: 60Mi env: - name: WATCH_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace terminationGracePeriodSeconds: 10