Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CD
- Prometheus
- 모의해킹
- 스크레이핑
- linkerd
- sonarqube
- gitlab ci
- Resource
- 웹 취약점
- GitLab
- DevOps
- Kubernetes
- deploy
- docker
- scraping
- eks
- Jenkins
- Monitoring
- CI/CD
- helm
- gitlab cd
- 크롤링
- ECR
- argocd
- Grafana
- 웹 해킹
- Service Mesh
- opentelemetry
- CI
- Crawling
Archives
- Today
- Total
ㅡ.ㅡ
[Jenkins] Docker Image Tagging 본문
Gitlat Repo Jenkinsfile 수정
Argocd에서 사용되는 Helm Repo에 저장된 이미지의 태그 값을 업데이트하여 ArgoCD에서 변경 사항을 감지하게하는 과정이다.
- Clone repository
push된 저장소를 불러오는 과정으로 JenkinsAgent로 저장소의 파일들을 복사한다.
또한 이미지의 태그값으로 사용할 COMMIT_ID_SHORT값을 추출한다. - Image Tag Update
기존에 불러온 APP의 저장소를 삭제하고 Gitlab credentials을 사용해 Helm저장소를 불러온다.
Clone repository Stage에서 values.yaml파일에 저장된 tag값을 추출한 COMMIT_ID_SHORT 값으로 변경 후 push를한다.
Gitlab credentials의 비밀번호 값에 $가 들어가있었더니 해당 값으로부터 뒤의 문자열은 다잘려나가는 오류가 있었다(인증실패). 해당 버전 문제인지.. 구문 분석이 안되는거 일수도있을것같다.
Jenkinsfile
pipeline {
agent any
environment {
dockerImage = ""
GITLAB_URL = "http or https를 제외한 Gitlab 주소"
ECR_URL = "https를 제외한 ECR 주소"
}
stages {
stage("Clone repository") {
steps {
checkout scm
script {
env.GIT_COMMIT_SHORT = env.GIT_COMMIT.take(8)
}
}
}
stage("Image Tag Update") {
steps {
checkout([$class: 'GitSCM',
branches: [[name: '*/main']],
extensions: [[
$class: "CleanBeforeCheckout",
deleteUntrackedNestedRepositories: true
]],
userRemoteConfigs: [[
credentialsId: "Gitlab credentials(계정)",
url: "http://${env.GITLAB_URL}/helm/springboot.git"
]]
])
script {
sh "sed -i 's|tag: .*|tag: ${env.GIT_COMMIT_SHORT}|' values파일"
sh "git config --global user.name 계정"
sh "git config --global user.email 이메일"
withCredentials([usernamePassword(credentialsId: 'Gitlab credentials(계정)', usernameVariable: 'USERNAME', passwordVariable:'PASSWORD')]) {
sh "git add ."
sh "git commit -m 'Ref ${env.gitlabSourceNamespace}/${env.gitlabSourceRepoName}@${env.GIT_COMMIT_SHORT}'"
sh "git push http://${USERNAME}:${PASSWORD}@${env.GITLAB_URL}/helm/springboot HEAD:main"
}
}
}
}
}
}
)
'WorkFlow' 카테고리의 다른 글
[Jenkins] CI/ECR (0) | 2021.10.09 |
---|---|
[Gitlab] CD/Argocd (0) | 2021.10.01 |
[Argocd] Argocd, Argo-Rollouts (0) | 2021.09.29 |
[Jenkins] Gitlab Repo 연동 (0) | 2021.09.28 |
[Jenkins] Jenkins (0) | 2021.09.26 |