Skip to content

akfmdl/helm-argocd-terraform-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

47 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

helm-argocd-terraform-tutorial

Docker, Docker Compose, Github Actions, Helm, ArgoCD, Terraform์„ ๊ฒฝํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ํŠœํ† ๋ฆฌ์–ผ์ž…๋‹ˆ๋‹ค.

Prerequisites

  • docker, docker-compose
  • k3s
  • kubectl
  • k9s
  • helm
  • argocd
  • terraform

์œ„ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋Š” install.sh์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋ฆฌ๋ˆ…์Šค ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐฉ๋ฒ•

./install.sh

ํŠœํ† ๋ฆฌ์–ผ

1. Docker Compose๋กœ ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

docker-compose.yaml ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

cd docker/nginx
sudo docker-compose up -d

http://localhost:8080 ์— ์ ‘์†ํ•˜๋ฉด nginx ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Docker cli๋กœ ์ปค์Šคํ…€ ์ด๋ฏธ์ง€ ๋นŒ๋“œ

cd docker/nginx
sudo docker build -t nginx:custom .

docker-compose.yaml ํŒŒ์ผ์— ์žˆ๋Š” ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ๋ณ€๊ฒฝ

image: nginx:custom

docker registry๊ฐ€ ์ค€๋น„๋˜์–ด์žˆ์ง€ ์•Š์„ ๊ฒฝ์šฐ, pushํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ

sudo docker-compose up -d

http://localhost:8080 ์— ์ ‘์†ํ•˜๋ฉด nginx ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. Github Actions๋กœ ์ปค์Šคํ…€ ์ด๋ฏธ์ง€ ๋นŒ๋“œ

docker cli๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  github actions๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, docker registry๊ฐ€ ์ค€๋น„๋˜์–ด์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์Šต์„ ํ•˜๊ธฐ ์ „์—, https://hub.docker.com/ ์— ๊ฐ€์ž…ํ•˜์…”์„œ public docker registry๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

branch๋ฅผ ๋ณ„๋„๋กœ ๋งŒ๋“ค์–ด์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

BRANCH="your_branch"
git checkout -b $BRANCH && git push origin $BRANCH --force

github actions์—์„œ ์‚ฌ์šฉํ•  ์‹œํฌ๋ฆฟ ๋ณ€์ˆ˜๋“ค์„ github ์ €์žฅ์†Œ -> Settings -> Secrets and variables -> Actions -> New repository secret ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

REGISTRY_URL="docker.io"
REGISTRY_USERNAME="๊ฐœ์ธ dockerhub ๊ณ„์ • ์ด๋ฆ„(์˜ˆ: goranidocker)"
REGISTRY_PASSWORD="๊ฐœ์ธ dockerhub ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ or token"

github actions์˜ workerflow ํŒŒ์ผ์—์„œ pushํ•  target branch๋ช…์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

on:
  push:
    branches:
      - $BRANCH

github actions์˜ workerflow ํŒŒ์ผ์—์„œ ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. <๊ฐœ์ธ dockerhub ๊ณ„์ • ์ด๋ฆ„>/<์ด๋ฏธ์ง€ ์ด๋ฆ„> ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

env:
  IMAGE_NAME: <๊ฐœ์ธ dockerhub ๊ณ„์ • ์ด๋ฆ„>/nginx

docker/nginx/index.html ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ณ  commit ํ›„ pushํ•ฉ๋‹ˆ๋‹ค.

<!DOCTYPE html>
<html>

<head>
    <title>Welcome</title>
</head>

<body>
    <h1>Welcome to Github Actions!</h1>
    <p>This is a custom nginx container built by github actions.</p>
</body>

</html>

์ˆ˜์ •ํ•œ ๋ชจ๋“  ํŒŒ์ผ๋“ค์„ add ํ›„ commit ํ›„ pushํ•ฉ๋‹ˆ๋‹ค.

git add .
git commit -m "update index.html and workflow"
git push origin $BRANCH --force

์ด์ œ github actions๊ฐ€ ์ž๋™์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋ฐ Registry์— ํ‘ธ์‹œ๋œ image name์€ ./charts/example/values.yaml ํŒŒ์ผ์— ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

image: docker.io/<IMAGE_NAME>/<IMAGE_TAG>

์œ„ image๋ฅผ docker-compose.yaml ํŒŒ์ผ์˜ image๋กœ ๋ฎ์–ด์”Œ์›Œ์ค๋‹ˆ๋‹ค.

image: docker.io/<IMAGE_NAME>/<IMAGE_TAG>

๋ฐฐํฌ

cd docker/nginx
sudo docker-compose up -d

http://localhost:8080 ์— ์ ‘์†ํ•˜๋ฉด nginx ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. docker/nginx/index.html์— ์žˆ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋ณด์ด๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค.(์ƒˆ๋กœ๊ณ ์นจ ํ›„ ํ™•์ธ)

4. Helm์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

helm์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

NAMESPACE="your_namespace"
helm upgrade --install nginx-chart charts/example -n $NAMESPACE --create-namespace

NodePort ํƒ€์ž…์˜ ์„œ๋น„์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

NODE_PORT=$(kubectl get svc nginx-service -n $NAMESPACE -o jsonpath='{.spec.ports[0].nodePort}')
echo $NODE_PORT
echo "http://localhost:$NODE_PORT"

http://localhost:$NODE_PORT ์— ์ ‘์†ํ•˜๋ฉด nginx ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜๊ธฐ

helm uninstall nginx-chart -n $NAMESPACE
kubectl delete namespace $NAMESPACE

5. ArgoCD๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

applicationset.yaml์˜ spec.source.targetRevision์„ ๋ฐฐํฌํ•  branch๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

sed -i "s/BRANCH/$BRANCH/g" applicationset.yaml

applicationset.yaml์˜ template.spec.destination.namespace๋ฅผ ๋ฐฐํฌํ•  namespace๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

sed -i "s/NAMESPACE/$NAMESPACE/g" applicationset.yaml

applicationset.yaml์˜ metadata.name๊ณผ template.metadata.name์„ ๋ฐฐํฌํ•  name์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

APPLICATION_NAME="๋ฐฐํฌํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„"
sed -i "s/APPLICATION_NAME/$APPLICATION_NAME/g" applicationset.yaml

k8s์— ArgoCD๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๊ณ  current context๊ฐ€ ํ•ด๋‹น ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ArgoCD์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ARGOCD_NAMESPACE="argocd๊ฐ€ ์„ค์น˜๋œ namespace"
kubectl apply -f applicationset.yaml -n $ARGOCD_NAMESPACE

ArgoCD์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐฐํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ArgoCD ์›นํŽ˜์ด์ง€์—์„œ๋„ ํ™•์ธ๊ฐ€๋Šฅํ•˜๋ฉฐ kubectl ๋ช…๋ น์–ด๋กœ๋„ ํ™•์ธ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

kubectl get applicationset -n $ARGOCD_NAMESPACE

NodePort ํƒ€์ž…์˜ ์„œ๋น„์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

NODE_PORT=$(kubectl get svc nginx-service -n $NAMESPACE -o jsonpath='{.spec.ports[0].nodePort}')
echo $NODE_PORT
echo "http://localhost:$NODE_PORT"

http://localhost:$NODE_PORT ์— ์ ‘์†ํ•˜๋ฉด nginx ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

nginx content๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  commit ํ›„ pushํ•ฉ๋‹ˆ๋‹ค. charts/example/values.yaml ํŒŒ์ผ์˜ content๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

content: This will be changed by ArgoCD

์ˆ˜์ •ํ•œ ๋ชจ๋“  ํŒŒ์ผ๋“ค์„ add ํ›„ commit ํ›„ pushํ•ฉ๋‹ˆ๋‹ค.

git add .
git commit -m "update nginx content"
git push origin $BRANCH --force

ArgoCD๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ž ์‹œ ํ›„์— ์ƒˆ๋กœ์šด pod์ด ๋ฐฐํฌ๋˜๋ฉด์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹ค ๊ฒฝ์šฐ, ArgoCD ์›นํŽ˜์ด์ง€์—์„œ Refresh ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

http://localhost:$NODE_PORT ์— ์ ‘์†ํ•ด์„œ ์œ„ ๋‚ด์šฉ์ด ๋ณด์ด๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค.

๋ณด๋„ˆ์Šค - Github Actions workflow์— Self-hoated runner ์ ์šฉ + Harbor Private Repository ์‚ฌ์šฉ

https://github.com/akfmdl/mlops-lifecycle.git ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” mlops-platform helm chart๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Self-hoated runner๋ฅผ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค. ์ด helm chart์—๋Š” ๋ถˆํ•„์š”ํ•œ sub chart๋“ค์ด ๋งŽ์œผ๋‹ˆ charts/mlops-platform/Chart.yaml ํŒŒ์ผ์—์„œ harbar, gha-runner-scale-set-controller, gha-runner-scale-set๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ sub chart๋“ค์„ ๋ชจ๋‘ ์ฃผ์„์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

helm dependency update charts/mlops-platform

helm chart๋ฅผ ์„ค์น˜ํ•  namespace๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. mlops-platform helm chart๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ mlops-platform namespace๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ namespace๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹ค ๊ฒฝ์šฐ values.yaml ๋ชจ๋“  namespace๊ด€๋ จ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

NAMESPACE="mlops-platform"
kubectl create namespace $NAMESPACE

Github actions์—์„œ ์‚ฌ์šฉํ•  ํ† ํฐ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. https://github.com/settings/tokens ์— ์ ‘์†ํ•˜์—ฌ Personal access tokens (classic)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ•„์š” ๊ถŒํ•œ:

  • repo: ๊ถŒํ•œ ์ „์ฒด

gha-runner-scale-set์—์„œ ์‚ฌ์šฉ๋  github credential secret์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • username: github ์‚ฌ์šฉ์ž ์ด๋ฆ„
  • email: github ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ
  • token: github ํ† ํฐ
kubectl create secret generic github-credential \
  --from-literal=github_username=<github_username> \
  --from-literal=github_email=<github_email> \
  --from-literal=github_token=<github_token> \
  -n $NAMESPACE

charts/mlops-platform/values.yaml ํŒŒ์ผ์— ์•„๋ž˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • githubConfigUrl: ๋ณธ์ธ์˜ github ๋ ˆํฌ์ง€ํ† ๋ฆฌ url
  • runnerScaleSetName: github actions runner์˜ ์ด๋ฆ„์ด ๋ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์ˆ˜์ •ํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.
gha-runner-scale-set:
  githubConfigUrl: <github ๋ ˆํฌ์ง€ํ† ๋ฆฌ url>
  runnerScaleSetName: <runner์˜ ์ด๋ฆ„>
  githubConfigSecret: github-credential

์œ„ runner ์ด๋ฆ„์„ workflow์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

jobs:
  build:
    runs-on: <runner์˜ ์ด๋ฆ„>

์ด์ œ ์•„๋ž˜ ์„ค์น˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

helm upgrade --install gha-runner-scale-set charts/mlops-platform -n $NAMESPACE --create-namespace

runner-scale-set-listener๊ฐ€ ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด pod์€ controller์—์„œ ์ƒ์„ฑ๋œ runner๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํ• ๋‹นํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. github actions์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ์ด pod์ด ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  runner๋ฅผ ์ž๋™์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

kubectl get pods -n $NAMESPACE -l app.kubernetes.io/component=runner-scale-set-listener

harbor๋„ ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. harbor๋Š” NodePort ํƒ€์ž…์˜ ์„œ๋น„์Šค๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

NODE_PORT=$(kubectl get svc harbor -n $NAMESPACE -o jsonpath='{.spec.ports[0].nodePort}')
echo $NODE_PORT
echo "http://localhost:$NODE_PORT"

http://localhost:$NODE_PORT ์— ์ ‘์†ํ•˜๋ฉด harbor์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ github actions์—์„œ pushํ•  public ๋ชจ๋“œ๋กœ project๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

github actions์—์„œ ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  • project ์ด๋ฆ„์€ harbor์—์„œ ์ƒ์„ฑํ•œ project ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€ ์ด๋ฆ„์€ ๋ณธ์ธ์˜ ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
env:
  IMAGE_NAME: <project ์ด๋ฆ„>/<์ด๋ฏธ์ง€ ์ด๋ฆ„>

github actions์—์„œ ์‚ฌ์šฉํ•  ์‹œํฌ๋ฆฟ ๋ณ€์ˆ˜๋“ค์„ github ์ €์žฅ์†Œ -> Settings -> Secrets and variables -> Actions -> New repository secret ์— ์ถ”๊ฐ€ํ–ˆ๋˜ ๋ณ€์ˆ˜๋“ค์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

REGISTRY_URL="harbor.mlops-platform.svc.cluster.local"
REGISTRY_USERNAME="admin"
REGISTRY_PASSWORD="admin"

์ด์ œ ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ณธ์ธ์˜ github ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ github actions๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด์„ธ์š”.

docker/nginx/index.html ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ณ  commit ํ›„ pushํ•ฉ๋‹ˆ๋‹ค.

<!DOCTYPE html>
<html>

<head>
    <title>Welcome</title>
</head>

<body>
    <h1>Welcome to Github Actions!</h1>
    <p>This is a custom nginx container built by self-hosted runner.</p>
</body>

</html>

์ดํ›„์— ๋ฐœ์ƒํ•˜๋Š” ์ผ

  • runner-scale-set-controller๊ฐ€ ์ž๋™์œผ๋กœ runner๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • runner-scale-set-listener๊ฐ€ ์ž๋™์œผ๋กœ runner๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • harbor private repository์— ์ด๋ฏธ์ง€๊ฐ€ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ./charts/example/values.yaml ํŒŒ์ผ์˜ image ์ด๋ฆ„์ด harbor์— ํ‘ธ์‹œ๋œ ์ด๋ฏธ์ง€ ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
  • ArgoCD๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜๊ธฐ

kubectl delete -f applicationset.yaml -n $ARGOCD_NAMESPACE
kubectl delete namespace $NAMESPACE

test ํ–ˆ๋˜ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

git checkout main
git branch -d $BRANCH
git push origin -d $BRANCH

docker ๋ฐ๋ชฌ์ด ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํ• ๋‹น ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ฆฌ์…‹ํ•˜๊ธฐ ์œ„ํ•ด ์žฌ์‹œ์ž‘ ํ•ฉ๋‹ˆ๋‹ค.

sudo systemctl restart docker

docker-compose๋กœ ์‹คํ–‰ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

sudo docker-compose down

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors