728x90
반응형
Jenkins의 agent를 JCasC로 관리하고 있습니다.
Taint가 있는 노드에 agent를 배치할 필요가 있어서, toleration을 추가하는 방법을 알아보았습니다.
Jenkins 관리 -> Clouds 메뉴에서 Pod Template을 보면, NodeSelector, Annotation 등 은 있지만, Toleration을 추가하는 메뉴가 없는 것을 확인할 수 있습니다.
또한, 공식 문서의 Pod template 설정에도 toleration key가 없습니다.
이렇게 직접적으로 지원하지 않는 파드 설정은 yaml 키를 사용해서 설정할 수 있습니다.
jenkins:
clouds:
- kubernetes:
- label: "do-not-use"
name: "base-template"
podRetention: "never"
serviceAccount: "default"
namespace: "jenkins"
yamlMergeStrategy: "override"
nodeSelector: "node=jenkins"
yaml: |-
apiVersion: v1
kind: Pod
spec:
tolerations:
- key: node
operator: Equal
value: jenkins
runAsUser: 1000
annotations:
- key: "karpenter.sh/do-not-disrupt"
value: "true"
containers:
- alwaysPullImage: false
image: "jenkins-slave-image:xxxx"
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
name: "jnlp"
resourceLimitEphemeralStorage: "40Gi"
resourceLimitMemory: "2Gi"
resourceRequestMemory: "2Gi"
ttyEnabled: true
workingDir: "/home/jenkins/agent"
yaml에 추가한 설정은 다른 설정과 합쳐져서 파드에 반영됩니다.
해당 방식을 활용해서 toleration 뿐만 아니라 지원하지 않는 다른 설정도 추가할 수 있습니다.
728x90
'Cloud & DevOps > CICD' 카테고리의 다른 글
[Jenkins] JCasC로 프로젝트(job) 이름 규칙 정하기 (0) | 2023.02.18 |
---|---|
[Jenkins] jnlp agent (0) | 2023.02.18 |
[Gitlab] Private registry에 등록된 Docker image 사용 방법 (0) | 2023.01.03 |
Docker Machine deprecated에 따른 gitlab 오류 현상 (0) | 2022.07.11 |
Jenkins로 Terraform 자원 배포하기 (0) | 2022.05.08 |