Cloud & DevOps/CICD 6

[Jenkins] Jenkins agent 파드에 toleration 추가하는 방법

Jenkins의 agent를 JCasC로 관리하고 있습니다.Taint가 있는 노드에 agent를 배치할 필요가 있어서, toleration을 추가하는 방법을 알아보았습니다. Jenkins 관리 -> Clouds 메뉴에서 Pod Template을 보면, NodeSelector, Annotation 등 은 있지만, Toleration을 추가하는 메뉴가 없는 것을 확인할 수 있습니다.또한, 공식 문서의 Pod template 설정에도 toleration key가 없습니다. 이렇게 직접적으로 지원하지 않는 파드 설정은 yaml 키를 사용해서 설정할 수 있습니다. jenkins: clouds: - kubernetes: - label: "do-no..

Cloud & DevOps/CICD 2024.08.31

[Jenkins] JCasC로 프로젝트(job) 이름 규칙 정하기

개요 Jenkins를 관리할 때 프로젝트 이름에 규칙을 지정하고 준수가 필요하다면 Jenkins 관리 > 시스템 설정 > Restrict project naming 메뉴에서 정규식으로 지정할 수 있다. 하지만 helm으로 k8s 클러스터에 배포한 경우 JCasC로 설정을 하지 않으면 pod 재생성 시 설정이 지워져 다시 설정이 필요하다. 매번 설정을 다시 하는 것이 번거롭기 때문에 JCasC에 포함하여 helm으로 함께 배포하고자 한다. JCasC 란? Jenkins Configuration as Code의 약자로 Jenkins 설정을 UI가 아닌 코드로 지정하는 기능이다. ldap, 보안 설정 등 다양한 설정을 지정할 수 있으며, 설정이 코드에 남기 때문에 동일한 설정으로 여러 서버를 생성하거나 복구하..

Cloud & DevOps/CICD 2023.02.18

[Jenkins] jnlp agent

개요 kubernetes에 hem을 통해 jenkins를 배포할 때 Master는 statefulset으로, Agent는 Job 실행 시마다 Pod로 뜨게 설정할 수 있다. 이때 Master와 Agent를 연결하기 위해 JNLP(Java Network Launch Protocol)를 사용하고, 기본 agent 이미지인 jenkins/inbound-agent에 포함되어 있다. K8S에서 jnlp agent 사용하기 Jenkins를 k8s에 배포할 때 helm 차트를 주로 활용한다. values.yaml 파일에 아래 처럼 agent 설정이 포함되어있다. jenkins/inbound-agent 이미지에 tag로 다양한 버전을 지정할 수 있는데, controller와 일치하는 jdk 버전이 포함된 이미지(ex...

Cloud & DevOps/CICD 2023.02.18

[Gitlab] Private registry에 등록된 Docker image 사용 방법

Gitlab에서 Public이 아닌 Private registry에 등록된 docker image를 사용할 때가 있습니다. 이때 Gitlab CI/CD 변수 설정을 통해 image를 받아올 수 있습니다. 1. Docker registry 'username:password' Base64 인코딩 echo username:password | base64 2. Gitlab CI/CD 변수 설정 Gitlab repo -> Settings -> CI/CD -> Variable 추가 Key : DOCKER_AUTH_CONFIG Value : { "auths": { "Private Registry URL": { "auth": "(Base64 인코딩 값)" }, "Private Registry 2 URL": { "aut..

Cloud & DevOps/CICD 2023.01.03

Docker Machine deprecated에 따른 gitlab 오류 현상

[현상] 운영 중인 Gitlab 서버의 runner 세팅 과정에서 docker image 다운로드 시 에러가 발생했습니다. [해결방안] 해당 Gitlab runner에서는 Docker Machine을 사용하고 있었고, Docker에서 Docker Machine을 deprecate함에 따라 url 변경이 필요한 것으로 확인됐습니다. 아래와 같이 config.toml 파일에 아래 config를 추가하고 gitlab runner 컨테이너를 재기동 하는 것으로 해결했습니다. [runners.machine] ... MachineOptions = [ "engine-install-url=https://releases.rancher.com/install-docker/19.03.9.sh", ... ] 추후 Gitlab ..

Cloud & DevOps/CICD 2022.07.11

Jenkins로 Terraform 자원 배포하기

0. 사전 준비 사항 Github 계정 Jenkins 서버 Terraform backend용 S3, DynamoDB 1. Terraform 플러그인 설치 [Jenkins] 1-1) Jenkins 관리 > 플러그인 관리 > 설치 가능 > terraform 검색 후 설치 1-2) Jenkins 관리 > Global Tool Configuration Terraform > Terraform installations > Add Terraform 클릭 1-3) Jenkins 서버 Terraform CLI 설치 링크 : https://www.terraform.io/downloads> 참고) Jenkins를 Docker Image로 배포한 경우 Docker Image 수정 필요 2. 신규 레파지토리 생성 및 파일 업로..

Cloud & DevOps/CICD 2022.05.08
반응형