Harbor CICD 구성 (jenkins, secret)
Jenkins Credentials
별다른 특이점 없이 사용자 계정 및 패스워드 로 이루어진 구성
Harbor에서 프로젝트 생성: moon-dev
echo "[Docker Image] Harbor Start"
def img = docker.build("${HARBOR_IMAGE_NAME}:latest", buildArgs)
docker.withRegistry("${HARBOR_REPO_URL}", "${HARBOR_REPO_CREDENTIALS_ID}") {
retry(3) {
try{
img.push("${BUILD_NUMBER}")
img.push("latest")
} catch (e) {
sleep(10)
throw e
}
}
}
Robot 계정 생성 (CI/CD용)
새 로롯 계정 생성
pull push 권한 부여
Kubernetes 측 설정 / imagePullSecrets 등록 (Harbor 인증)
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
네트워크 접근 가능 여부
harbor secret을 네임스페이스에 등록하여 사용하는 방법
kubectl create secret docker-registry harbor-secret \
--docker-server=harbor-dev.x2bee.com \
--docker-username=robot$moon-dev+harbor-robot \
--docker-password=xxxxxxxxxxxxxxxxx \
--namespace=moon-dev
템플릿 내용
spec:
containers:
- name: {{ .Values.application.name }}
image: harbor-dev.x2bee.com/moon-dev/moon-x2bee-api-common:latest
imagePullSecrets:
- name: harbor-secret
harbor secret을 어플리케이션에 등록하여 사용하는 방법
아래와 같이 템플릿 등록하여 사용하려고 시도해보았으나 Sync 단계에서 실패