IT - DevOps/ArgoCD

ArgoCD Repositories 설정하기

happygram 2022. 11. 29. 01:12

ArgoCD helm 으로 설치하기 에 이어서 ArgoCD 설정을 본격적으로 시작하도록 하겠습니다.

실제로 Kubernetes 리소스가 실행되기 위해서는 ArgoCD Core Concepts 에서 설명하는 것처럼 Applications 을 생성 해야합니다. 이에 앞서 어떤 Kubernetes 클러스터에 어떤 소스를 바탕으로 Applications 가 생성이 될 지 명시가 필요하기 떄문에 설정이 필요합니다. 또한 Projects 라는 ArgoCD 에서 특정 조건으로 권한을 제어하거나 구분할 수 있도록 제공하는 설정도 함께 필요합니다.

GitHub, GitLab, Bitbucket 모두 연결할 수 있지만 GitHub 의 ssh, https 로 연결하는 방법으로 알아보도록 하겠습니다.

ArgoCD Settings

GitHub Private Repository 생성하기

  • ssh 주소 : git@github.com:happygram/argocd.git
  • https 주소 : https://github.com/happygram/argocd

GitHub - Create Private Repository

샘플 매니페스트 Push 하기

ArgoCD 에서 빈 Repository 를 연결하는 경우 다음의 메시지 출력과 함께 연결실패가 나타납니다.

argocd repo list
MESSAGE                                                                                                                            
Unable to connect to repository: rpc error: code = Unknown desc = error testing repository connectivity: remote repository is empty

이를 방지하기 위해서 간단한 샘플 매니페스트를 사전에 올려두도록 합니다.

# nginx 디렉터리 생성
mkdir nginx

# nginx deployment 작성
cat > nginx/deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
EOF

# nginx service 작성
cat > nginx/service.yaml << EOF
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: nginx
EOF

# git commit & push
git add nginx
git commit -m "Initialize nginx manifest"
git push

ssh 연결하기

GitHub 공식 문서의 ssh 생성 가이드에 따라서 ssh private key 를 생성합니다.

생성한 ssh private key 를 Settings > Access > SSH Keys 에 등록합니다.

ArgoCD > Settings > Repositories 에서 +CONNECT REPO 버튼을 눌러서 생성을 진행합니다.

  • VIA SSH 선택
  • Repository URL 입력
  • SSH private key data 에 위에서 생성한 ssh private key 입력
    (문자열 누락 혹은 띄어쓰기 주의)

ArgoCD - Connect Repo

https 연결하기

GitHub 공식 문서의 Personal access token 생성 가이드에 따라서 Personal access token 을 생성합니다.

GitHub - Developer settings

Settings > Developer Settings > Personal access tokens > Tokens (classic) 선택해서 Note 를 입력하고 Scope 는 repo 권한이면 충분합니다.
(초기 생성된 token 은 새로고침 시 사라지므로 잘 보관하고, 계정의 패스워드처럼 중요하므로 보안에 반드시 신경 쓰도록 합니다)

GitHub > Personal access tokens

ArgoCD > Settings > Repositories 에서 +CONNECT REPO 버튼을 눌러서 생성을 진행합니다.

  • VIA HTTPS 선택
  • Type git 선택
  • Repository URL 입력
  • GitHub 계정의 Username 을 입력
  • 위에서 생성한 Personal access tokens 를 Password 에 입력

마무리

위에서 연결한 ssh, https 모두 연결 상태가 Successful 로 보인다면 성공적으로 연결된 것입니다. 이제 ArgoCD Applications 를 생성하는 데 한걸음 다가갔습니다.

참조

'IT - DevOps > ArgoCD' 카테고리의 다른 글

ArgoCD Projects 설정하기  (0) 2022.12.06
ArgoCD Application 생성하기  (0) 2022.11.29
ArgoCD helm 으로 설치하기  (0) 2022.11.25