--- 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: jenkins-operator:6f33fe82-dirty 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: 30Mi requests: cpu: 100m memory: 20Mi env: - name: WATCH_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true volumes: - name: cert secret: defaultMode: 420 secretName: webhook-server-cert terminationGracePeriodSeconds: 10 --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: webhook-certificate namespace: default spec: duration: 2160h renewBefore: 360h secretName: webhook-server-cert dnsNames: - webhook-service.default.svc - webhook-service.default.svc.cluster.local issuerRef: kind: Issuer name: selfsigned --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: selfsigned namespace: default spec: selfSigned: {} --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: creationTimestamp: null name: validating-webhook-configuration annotations: cert-manager.io/inject-ca-from: default/webhook-certificate webhooks: - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: webhook-service namespace: default path: /validate-jenkins-io-v1alpha2-jenkins failurePolicy: Fail name: vjenkins.kb.io rules: - apiGroups: - jenkins.io apiVersions: - v1alpha2 operations: - CREATE - UPDATE resources: - jenkins sideEffects: None --- apiVersion: v1 kind: Service metadata: name: webhook-service namespace: default spec: ports: - port: 443 targetPort: 9443 selector: control-plane: controller-manager ---