--- apiVersion: v1 kind: ServiceAccount metadata: name: jenkins namespace: spinnaker --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: spinnaker name: jenkins-master-role rules: - apiGroups: [""] resources: ["pods", "pods/exec", "pods/log", "persistentvolumeclaims"] verbs: ["*"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: jenkins-rolebinding namespace: spinnaker subjects: - kind: ServiceAccount name: jenkins namespace: spinnaker roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: jenkins-master-role apiGroup: rbac.authorization.k8s.io --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: jenkins-pvc namespace: spinnaker spec: storageClassName: standard resources: requests: storage: 1Gi accessModes: - ReadWriteOnce --- # apiVersion: extensions/v1beta1 apiVersion: apps/v1 kind: Deployment metadata: name: jenkins namespace: spinnaker labels: app: jenkins spec: replicas: 1 selector: matchLabels: app: jenkins template: metadata: labels: app: jenkins spec: serviceAccountName: jenkins securityContext: runAsGroup: 1000 runAsUser: 1000 fsGroup: 1000 containers: - name: jenkin-master image: jenkins/jenkins:2.204.6-jdk11 env: - name: JAVA_OPTS value: -Djenkins.install.runSetupWizard=false ports: - name: http-port containerPort: 8080 - name: jnlp-port containerPort: 50000 volumeMounts: - name: jenkins-vol mountPath: /var/jenkins_home initContainers: - name: increase-fd-ulimit image: busybox command: ["sh", "-c", "ulimit -n 65536"] securityContext: privileged: true volumes: - name: jenkins-vol persistentVolumeClaim: claimName: jenkins-pvc --- # Service for accessing jenkins-UI apiVersion: v1 kind: Service metadata: name: jenkins namespace: spinnaker spec: type: LoadBalancer ports: - port: 8080 targetPort: 8080 selector: app: jenkins --- # Service for jenkins-agents apiVersion: v1 kind: Service metadata: name: jenkins-agent namespace: spinnaker spec: ports: - port: 50000 targetPort: 50000 name: slavelistener selector: app: jenkins --- # Jenkins images can be used # image: jenkins/jenkins # image: jenkinsci/blueocean # image: jenkins/jenkins:2.176.3/2.204.1