| @ -0,0 +1,3 @@ | |||
| # Kubernetes Manifests for Jenkins Deployment | |||
| Refer https://devopscube.com/setup-jenkins-on-kubernetes-cluster/ for step by step process to use these manifests. | |||
| @ -0,0 +1,28 @@ | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRole | |||
| metadata: | |||
| name: jenkins-admin | |||
| rules: | |||
| - apiGroups: [""] | |||
| resources: ["*"] | |||
| verbs: ["*"] | |||
| --- | |||
| apiVersion: v1 | |||
| kind: ServiceAccount | |||
| metadata: | |||
| name: jenkins-admin | |||
| namespace: devops-tools | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRoleBinding | |||
| metadata: | |||
| name: jenkins-admin | |||
| roleRef: | |||
| apiGroup: rbac.authorization.k8s.io | |||
| kind: ClusterRole | |||
| name: jenkins-admin | |||
| subjects: | |||
| - kind: ServiceAccount | |||
| name: jenkins-admin | |||
| namespace: devops-tools | |||
| @ -0,0 +1,45 @@ | |||
| kind: StorageClass | |||
| apiVersion: storage.k8s.io/v1 | |||
| metadata: | |||
| name: local-storage | |||
| provisioner: kubernetes.io/no-provisioner | |||
| volumeBindingMode: WaitForFirstConsumer | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolume | |||
| metadata: | |||
| name: jenkins-pv-volume | |||
| labels: | |||
| type: local | |||
| spec: | |||
| storageClassName: local-storage | |||
| claimRef: | |||
| name: jenkins-pv-claim | |||
| namespace: devops-tools | |||
| capacity: | |||
| storage: 10Gi | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| local: | |||
| path: /mnt/Externo/Jenkins | |||
| nodeAffinity: | |||
| required: | |||
| nodeSelectorTerms: | |||
| - matchExpressions: | |||
| - key: kubernetes.io/hostname | |||
| operator: In | |||
| values: | |||
| - imac | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolumeClaim | |||
| metadata: | |||
| name: jenkins-pv-claim | |||
| namespace: devops-tools | |||
| spec: | |||
| storageClassName: local-storage | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| resources: | |||
| requests: | |||
| storage: 3Gi | |||
| @ -0,0 +1,59 @@ | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: jenkins | |||
| namespace: devops-tools | |||
| spec: | |||
| replicas: 1 | |||
| selector: | |||
| matchLabels: | |||
| app: jenkins-server | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: jenkins-server | |||
| spec: | |||
| securityContext: | |||
| fsGroup: 1000 | |||
| runAsUser: 1000 | |||
| serviceAccountName: jenkins-admin | |||
| containers: | |||
| - name: jenkins | |||
| image: jenkins/jenkins:lts | |||
| # OPTIONAL: check for new floating-tag LTS releases whenever the pod is restarted: | |||
| imagePullPolicy: Always | |||
| resources: | |||
| limits: | |||
| memory: "2Gi" | |||
| cpu: "1000m" | |||
| requests: | |||
| memory: "500Mi" | |||
| cpu: "500m" | |||
| ports: | |||
| - name: httpport | |||
| containerPort: 8080 | |||
| - name: jnlpport | |||
| containerPort: 50000 | |||
| livenessProbe: | |||
| httpGet: | |||
| path: "/login" | |||
| port: 8080 | |||
| initialDelaySeconds: 90 | |||
| periodSeconds: 10 | |||
| timeoutSeconds: 5 | |||
| failureThreshold: 5 | |||
| readinessProbe: | |||
| httpGet: | |||
| path: "/login" | |||
| port: 8080 | |||
| initialDelaySeconds: 60 | |||
| periodSeconds: 10 | |||
| timeoutSeconds: 5 | |||
| failureThreshold: 3 | |||
| volumeMounts: | |||
| - name: jenkins-data | |||
| mountPath: /var/jenkins_home | |||
| volumes: | |||
| - name: jenkins-data | |||
| persistentVolumeClaim: | |||
| claimName: jenkins-pv-claim | |||
| @ -0,0 +1,17 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: jenkins-service | |||
| namespace: devops-tools | |||
| annotations: | |||
| prometheus.io/scrape: 'true' | |||
| prometheus.io/path: / | |||
| prometheus.io/port: '8080' | |||
| spec: | |||
| selector: | |||
| app: jenkins-server | |||
| type: NodePort | |||
| ports: | |||
| - port: 8080 | |||
| targetPort: 8080 | |||
| nodePort: 32000 | |||
| @ -0,0 +1,4 @@ | |||
| apiVersion: v1 | |||
| kind: Namespace | |||
| metadata: | |||
| name: devops-tools | |||