apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
  namespace: monitoring
  labels:
    app: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: jenkins
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "8080"
        prometheus.io/path: "/prometheus"
    spec:
      serviceAccountName: jenkins
      securityContext:
        fsGroup: 1000 
        runAsUser: 0
      containers:
      - name: jenkins
        image: yurak/jenkins:latest
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: jenkins-persistent-storage
          mountPath: /var/jenkins_home
        - name: docker-socket-volume
          mountPath: /var/run/docker.sock
        env:
        - name: PROMETHEUS_NAMESPACE
          value: "monitoring"
      volumes:
      - name: jenkins-persistent-storage
        persistentVolumeClaim:
          claimName: jenkins-pvc
      - name: docker-socket-volume
        hostPath:
          path: /var/run/docker.sock
          type: File
