diff --git a/helm/jenkins/values.yaml b/helm/jenkins/values.yaml new file mode 100644 index 0000000..18e45aa --- /dev/null +++ b/helm/jenkins/values.yaml @@ -0,0 +1,79 @@ +# 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"