jenkins 20

[Jenkins] K8s - Found class io.fabric8.kubernetes.api.model.VolumeFluent$EmptyDirNested, but interface was expected

개요 사용하고 있는 AWS EKS의 Kubernetes 1.24 버전이 2024년 1월에 EOS 될 예정이라 버전 업그레이드가 필요한 상황이다. 따라서 업그레이드 작업 전 테스트 클러스터에서 서비스가 정상적으로 동작하는지 검증하는 과정을 진행하고 있다. 그중 Jenkins Pipeline이 정상적으로 동작하지 않았던 내용을 기록해 둔다. 현상 운영 환경에서 정상적으로 동작하는 Pipeline을 복사하여 빌드하면 아래와 같은 출력과 함께 장시간 대기한다. Pipeline은 kubernetes Agent에서 동작하도록 구성되어 있어 실행하면 Pipeline 동작을 위한 Pod가 생성되어야 했는데 Pod도 생성이 되지 않았다. 달리 확인할 부분이 없어 Jenkins 포드의 Jenkins 컨테이너 로그를 확인해..

Jenkins 2023.12.04

[Jenkins] Pipeline - 조건문 if

개요 2023.11.08 - [Jenkins] Pipeline - for 반복문 에서는 Jenkins 파이프라인에서 반복문을 사용하는 방법을 확인했는데, 이번 글에서는 조건문 if를 사용해보려고 한다. if 문 소괄호 내에 조건절을 기재하고, 중괄호를 블록을 묶는다. if(condition) { statement #1 statement #2 ... } else{ statement #3 statement #4 } 사용 예시 아래 예시는 간단히 boolean형 데이터로 초기화한 변수 값에 따라 분기 처리한 파이프라인이다. true 또는 false를 사용할 때는 전체 소문자로 기재한다. pipeline { agent any stages { stage('Example') { steps { script { boo..

Jenkins 2023.11.09

[Jenkins] Pipeline - 반복문 for

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용 2023.11.07 - [Jenkins] Pipeline - 동적 변수 사용 위 두 개 글에서 Jenkins Pipeline 상에서의 변수 사용에 대해서 알아보았는데, 이번 글에서는 반복문을 사용해보려고 한다. for 문 script 블록 내에서 다른 프로그래밍 언어처럼 for 문을 사용할 수 있다. for (int i = 0; i < 10; ++i) { echo "$i" } 예시 ) pipeline { agent any stages { stage('Example') { steps { script { for (int i = 0; i < 3; ++i) { echo "$i" } } } } } } for - in 만약 반복 ..

Jenkins 2023.11.08

[Jenkins] Pipeline - 동적 변수 사용

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용에서 변수를 선언하고 사용하는 방법에 대해서 알아보았다. 이 글에서는 변수를 동적인 값으로 초기화하는 방법에 대해서 정리해두려고 한다. 방법 환경 변수나 변수는 런타임에 초기화할 수 있다. shell scripts (sh), Windows batch scripts (bat) and PowerShell scripts (powershell) 등으로 종료 상태(returnStatus)나 표준 출력(returnStdout)으로 초기화하여 사용할 수 있다. 아래 예시는 script로 전달한 명령어를 실행한 결과의 표준 출력으로 변수를 초기화한 것이다. CC = """${sh( returnStdout: true, script: 'e..

Jenkins 2023.11.07

[Jenkins] Pipeline - Credentials 사용 2

개요 2023.11.03 - [Jenkins] Pipeline - Credentials 사용 1에서는 withCredentials 블록을 이용해서 Credentials를 사용해 봤는데, 이번 글에서는 credentials() 지시문을 이용해보려고 한다. credentials 생성 부분은 생략한다. credentials() credentials 메소드는 Jenkins에 정의되어 있는 자격 증명에 접근하는 기능을 제공한다. pipeline 또는 stage 블록 내에 사용할 수 있으며, 매개변수로 사용할 credentials의 이름을 전달한다. credentials('') # 예시 user_info = credentials('jenkins-admin-user') 지원하는 credentials 타입과 변수에 저..

Jenkins 2023.11.06

[Jenkins] Pipeline - Credentials 사용 1

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용 글에 이어서 이번 글에서는 Jenkins 파이프라인 사용 시 민감정보 취급을 위한 Credentails 사용 방법에 대해 정리한다. Credentials 설정 일단 사용할 Credentails를 생성한다. 이 글에서는 사용자 정보를 저장하려고 한다. 1. 왼쪽 메뉴 > Jenkins 관리 > Credentials로 이동 2. 민감정보를 저장할 Scope를 선택 테스트 목적이므로 이 글에선 System/Global 영역으로 저장한다. 3. 민감정보 값 설정 Jenkins가 지원하는 Credentails 유형은 여러가지가 있는데, 사용 중인 환경에 설치되어 있는 플러그인에 따라 다를 수 있다. 테스트 환경에서는 아래와 같은..

Jenkins 2023.11.03

[Jenkins] pipeline - 변수 선언 및 사용

개요 2023.10.30 - [Jenkins] 파이프라인 생성 2023.10.31 - [Jenkins] Pipeline 구성 요소 2023.11.01 - [Jenkins] Pipeline - agent Section 위 글을 통해 Jenkins 파이프라인에 대해 조금씩 공부해보고 있는데, 이번 글에서는 변수를 선언하고 사용하는 방법에 대해 정리한다. Declarative Pipeline에 대해서만 작성한다. pipeline 블록 밖에서 정의 Declarative Pipeline을 사용할 때, pipeline 블록 밖에서 변수를 정의한 뒤, pipeline 안에서 변수를 참조할 수 있다. 변수 선언 변수를 선언할 때는 def 키워드를 사용하거나 생략할 수 있으며, 변수의 데이터 타입을 지정할 수 있다. (..

Jenkins 2023.11.02

[Jenkins] Pipeline - agent Section

Sections Jenkins 파이프라인에서 Section이란 Declarative Pipeline의 구성 요소로, 하나 이상의 Directives(지시문)이나 Steps를 포함한다. agent, post, stages, steps에 해당된다. agent : 전체 파이프라인 또는 특정 stage를 실행할 환경 지정 post : 파이프라인 또는 stage 실행이 완료될 때 실행되는 추가 steps 정의 stages : 하나 이상의 단계 지시문(stage directives) 정의 steps : 단계 지시문(stage directives)에서 실행할 하나 이상의 step 정의 이 글에서는 Sections 중 agent에 대해서 정리해보려고 한다. agent 전체 파이프라인 또는 특정 stage를 실행한 환경..

Jenkins 2023.11.01

[Jenkins] Pipeline 구성 요소

개요 2023.10.30 - [Jenkins] 파이프라인 생성에서 간단하게 예제를 이용해 파이프라인을 생성하고 실행해 봤는데, 이 글에서는 파이프라인을 구성하고 있는 요소에 대해 정리해보려고 한다. 구성 요소 Pipeline CD 파이프라인의 사용자 정의 모델. 일반적으로 애플리케이션을 빌드하고, 테스트한 뒤 전달하는 과정을 포함하는 전체적인 빌드 프로세스를 정의한다. Node Jenkins 환경의 일부임과 동시에 파이프라인을 실행할 수 있는 머신. Stage 전체 파이프라인을 통해 수행되는 태스크를 개념적으로 구별한 하위 집합. Jenkins 파이프라인의 상태와 진행 상황을 시각화하는 기준이 된다. Step 단일 작업. Jenkins에게 어떤 시점에 무엇을 해야 하는지 정의한다. Pipeline 구문 ..

Jenkins 2023.10.31

[Jenkins] 파이프라인 생성

Jenkins Pipeline Jenkins는 연속적인 작업을 하나의 파이프라인으로 묶어서 관리할 수 있도록 하는 Pipeline 플러그인을 제공한다. 개발자가 개발한 소프트웨어를 사용자에게 제공하기 위해서는 개발한 소스를 빌드, 테스트, 배포하는 일련의 과정이 필요하다. 개발한 소프트웨어를 유지보수하기 위해서는 위 과정이 반복적으로 발생하게 되는데, 반복적으로 발생하는 빌드, 배포 과정의 자동화와 함께 CI/CD(Continuous Integration / Continuous Delivery)라는 방법론이 자리 잡았다. Continuous Delivery (CD)는 빌드와 테스트가 완료되어 Git과 같은 버전 제어 저장소에 업로드된 소프트웨어를 사용자에게 전달하는 과정을 자동화하는 것을 의미한다. 대표..

Jenkins 2023.10.30
1 2