# Jenkins Helm Chart — default values # All tuneable parameters are here. # Override per-environment with: helm install -f values-prod.yaml # -- Namespace where Jenkins is deployed namespace: jenkins # -- Number of Jenkins pods (should stay 1 — Jenkins is stateful) replicaCount: 1 image: # -- Jenkins image repository: jenkins/jenkins tag: lts-jdk17 pullPolicy: IfNotPresent service: type: ClusterIP # -- Jenkins web UI port httpPort: 8080 # -- Jenkins agent JNLP port agentPort: 50000 ingress: enabled: true # -- Hostname for Jenkins web UI host: jenkins.thedevops.dev # -- cert-manager ClusterIssuer name certIssuer: letsencrypt-http # -- TLS secret name tlsSecretName: jenkins-tls persistence: enabled: true # -- Storage class (longhorn, local-path, etc.) storageClass: longhorn # -- PVC size for jenkins_home size: 20Gi accessMode: ReadWriteOnce claimName: jenkins-home # -- Security context — fsGroup 1000 required for jenkins_home permissions securityContext: fsGroup: 1000 # -- RBAC — creates ServiceAccount, ClusterRole, ClusterRoleBinding rbac: enabled: true serviceAccountName: jenkins clusterRoleName: jenkins-deployer # -- Resource limits/requests resources: requests: cpu: 200m memory: 512Mi limits: cpu: 1000m memory: 2Gi # -- Mount containerd socket for Docker CLI access containerd: enabled: true socketPath: /run/k3s/containerd/containerd.sock # -- initContainers install Docker CLI and kubectl into shared volume initContainers: installDocker: enabled: true image: docker:24-cli installKubectl: enabled: true image: alpine:3.19 kubectlVersion: v1.28.0 # -- Extra environment variables for Jenkins container extraEnv: - name: JENKINS_OPTS value: "--httpPort=8080"