jenkins - choisungwook/portfolio GitHub Wiki

default ingress 설정

이 예제는 ingress subapth를 사용합니다.

controller:
  image: "choisunguk/jenkins"
  tag: "v5"
  serviceType: ClusterIP
  jenkinsUriPrefix: "/jenkins1"
  installPlugins: []

  ingress:
    enabled: true
    hostName: "choilab.com"
    path: "/jenkins1"

docker.sock 마운트

controller:
  image: "choisunguk/jenkins"
  tag: "v5"
  serviceType: ClusterIP
  jenkinsUriPrefix: "/jenkins1"
  installPlugins: []

  ingress:
    enabled: true
    hostName: "choilab.com"
    path: "/jenkins1"

persistence:
  volumes:
  - name: docker-sock
    hostPath:
      type: Socket
      path: /var/run/docker.sock
  mounts:
  - mountPath: /var/run/docker.sock
    name: docker-sock

cert-manager 연동 예제

이 예제는 dns-01 solver을 사용하고 cloudflare를 사용합니다.

cloudflare 액세스토큰 secret 생성

apiVersion: v1
kind: Secret
metadata:
  name: cloudflare-api-token-secret
  namespace: jenkins
type: Opaque
stringData:
  api-token: <your-token>

issuer 생성

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: jenkins-prodissuser
  namespace: jenkins
spec:
  acme:
    # The ACME server URL
    server: https://acme-v02.api.letsencrypt.org/directory
    # Email address used for ACME registration
    email: <your email>
    # Name of a secret used to store the ACME account private key
    privateKeySecretRef:
      name: jenkins-prodissuser
    # Enable the challenge provider
    solvers:
      - dns01:
          cloudflare:
            email: <your email>
            apiTokenSecretRef:
              name: cloudflare-api-token-secret #cloudflare api token
              key: api-token

helm override_values.yaml

controller:
  image: "choisunguk/jenkins"
  tag: "v5"
  serviceType: ClusterIP
  installPlugins: []

  ingress:
    enabled: true
    hostName: "jenkins.choilab.xyz"
    tls:
    - secretName: certmanager-jenkins
      hosts:
        - jenkins.choilab.xyz

    annotations:
      cert-manager.io/issuer: "jenkins-prodissuser"

nodeselector 예제

이 예제는 docker라벨이 활성화된 워커노드에 nodeselector를 설정하는 예제입니다.

label 설정

kubectl label nodes <your-node-name> docker=activate

override_values.yaml

controller:
  image: "choisunguk/jenkins"
  tag: "v5"
  serviceType: ClusterIP
  installPlugins: []

  nodeSelector:
    docker: activate

agent:
  nodeSelector:
    docker: activate
⚠️ **GitHub.com Fallback** ⚠️