devops repository에서 시작하겠습니다. repository는 이전 포스트에서 참고하세요
우선 텔레포트부터 로그인하고
$ tsl camping
$ mkdir -p argocd/project
$ vi argocd/project/project.yaml
argocd/project/project.yaml
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: test
namespace: argocd
spec:
description: authenticator
clusterResourceWhitelist:
- group: '*'
kind: '*'
destinations:
- namespace: '*'
server: '*'
sourceRepos:
- '*'
이렇게 파일을 만들고 실행시켜주겠습니다.
$ kubectl apply -f argocd/project/project.yaml
appproject.argoproj.io/test created
project를 만들었으니 구조를 잡읍시다.

argocd generator와 customizing할 수 있는 value를 따로 두어서 관리의 용이성을 챙기도록 할게요
그렇게 하기 위해 폴더 트리를 짜봅시다.
.
├── README.md
├── argocd
│ ├── applicationsets
│ │ ├── dev
│ │ └── prod
│ └── project
│ └── project.yaml
└── helm-values
├── dev
└── prod
이런식으로 만들어서 개발과 운영을 분리하도록하겠습니다.
이제 환경파일을 만듭시다.
vi argocd/applicationsets/dev/nginx-test.yaml
nginx-test.yaml
env: dev
project: test
repoURL: https://charts.bitnami.com/bitnami
chartName: nginx
chartVersion: 18.2.5
appname: nginx-test
namespace: test
vi helm-values/dev/nginx-test.yaml
nginx-test.yaml
# this is override default values
replicaCount: 1
service:
type: ClusterIP
이 2가지 파일을 푸쉬하도록 할게요
그런다음에 applicationsets을 만들어줄게요
vi argocd/applicationsets/dev/test-applicationset.yaml
test-applicationset.yaml
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: test-application
namespace: argocd
spec:
generators:
- git:
repoURL: https://github.com/ggorockee/devops-camping.git
revision: HEAD
files:
- path: "argocd/applicationsets/config/dev/*-test.yaml"
template:
metadata:
name: '{{appname}}'
spec:
project: '{{project}}'
sources:
- repoURL: '{{repoURL}}'
chart: '{{chartName}}'
targetRevision: '{{chartVersion}}'
helm:
valueFiles:
- "$values/helm-values/{{env}}/{{appname}}/values.yaml"
- repoURL: https://github.com/ggorockee/devops-camping.git
targetRevision: HEAD
ref: values
destination:
server: 'https://kubernetes.default.svc'
namespace: '{{namespace}}'
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
이제 실행해줄겠습니다.
kubectl apply -f argocd/applicationsets/dev/test-applicationset.yaml

예쁘게 실행되었네요.
helm-values/dev/nginx-test/values.yaml
# this is override default values
replicaCount: 3
service:
type: ClusterIP
replicaCount: 1->3
으로 변경해보겠습니다. 약 1~3분 후에 자동으로 변경되는 것을 볼 수 있습니다.

replica가 3으로 늘어났습니다. 좋네요 이제 gitops까지 되었으니 개발환경을 세팅하겠습니다.