반응형

CICD 배포 20

[ ArgoCD ] Application syncOptions

ArgoCD Application에서 배포할때 다양한 옵션을 적용할 수 있습니다.배포 시 레이블 추가배포 시 Namespace 추가배포 시 해당 옵션 무시 등등 참조 링크 : https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/#respect-ignore-difference-configs     Deployment에서 replicas 옵션을 무시PersistentVolume에서 nodeAffinity 옵션을 무시apiVersion: argoproj.io/v1alpha1kind: Applicationspec: ignoreDifferences: - group: "apps" kind: "Deployment" jsonPointers:..

[ GitHub ] Action

GitHub Action으로 CI/CD를 구성할 수 있습니다. GitHub-hosted-runner는 GitHub 자원을 사용하며, 한달에 스토리지 : 500MB, 시간 : 2000분을 무료 제공 Self-hosted-runner는 개인 노트북,서버 자원을 사용하여 CI/CD 진행 1. GitHub Action 사용방법 메뉴얼 : https://docs.github.com/ko/actions/using-workflows/events-that-trigger-workflows # 사용할 이름을 지정 name: test # 해당 Action은 아래의 조건을 만족할 때 실행됨 on: push: branches: [ main ] # main 브랜치에 push가 발생할 때 pull_request: branches:..

[ ArgoCD ] User Management

개요ArgoCD 사용자는 Google SAML 기반으로 회사 이메일을 통해 SSO 형태로 접근할 수 있다.여기서는 Developer와 DevOps 두가지 권한에 대해 정의한 내용을 다룬다. Develpers : dev-cluster(eks) All allow policy prod-cluster Read allow policyDevOps : All allow policy about All Clusters. Argo RBAC 설정Role 설정argocd가 설치된 k8s cluster 의 argocd-rbac-configmap으로 관리할 수 있다.내장 Role (참고) - basic Built-in rolesrole:readonlyrole:admin아래와 같이 Custom Ro..

[ ARC ] Action Runner Controller (GitHub)

개요GitHub Action 이란?Github Actions는 Github 저장소를 기반으로 워크플로우(Workflow)를 자동화 할 수 있는 도구입니다. 워크플로우를 이용하면, 저장소에서 발생하는 이벤트를 이용하여, 소스를 빌드, 테스트, 패키징, 배포 등을 자동화 처리할 수 있습니다.공식 홈페이지 : https://github.com/features/actions공식 문서 : https://help.github.com/en/actionsGitHub runner 기본 동작runner 서버에서 runner process를 구동하면 github와 커넥션을 맽고, 주기적으로 자동으로 변경사항을 check & pulling 하는 형태로 동작 Flows runner의 2가지 종류runner은 GitHub Ho..

[ Jenkins ] GitHub webhook 설정

개요 GitHub webhook이란 ? GitHub repository에서 수정된 내용이 있으면 Jenkins으로 webhook을 보내서 Jenkins JOB이 자동으로 실행된다. Generic Webhook Trigger 플러그인 설치 Generic Webhook Trigger GitHub Repository에서 폴더 별로 webhook을 전달하는 기능을 하지 못한다. GitHub Repository에서 변경된 내용이 있으면 webhook을 Jenkins으로 전달하고 Jenkins에서 webhook JSON 내용을 filter해서 JOB을 자동 실행 해야한다. “Generic Webhook Trigger” 플러그인 설치 및 리부팅(Jenkins) webhook trigger 흐름도 branch : ma..

ChartMuseum

개요kubernetes에 resource를 배포하려면 yaml 형태로 배포 한다.kubernetes에 여러 개의 resource를 배포하려면 여러 개의 yaml 파일을 만들어서 배포해야한다.여러 개의 yaml파일을 패키지해서 만든 것이 Chart(yaml 파일 모음)이라고 한다.yaml파일의 모음인 “Chart”를 배포하기 위해서는 helm 명령어를 사용해서 배포한다. Helm 이란? (링크) ChartMuseum 이란? (링크)Chart를 ChartMuseum에 저장해놓고서 불러와서 사용할 수 있는 Repository 이다. (예: yum, apt)Chart를 배포하기 위해서는 해당 파일을 다운로드 받아서 설치 준비 과정이 필요하지만,ChartMuseum를 사용하면 ChartMuseum에 바로 연결해서..

ArgoCD Vs Spinnaker 비교

ArgoCD와 Spinnaker 비교 결론 : 단순한 배포만 사용하기에는 ArgoCD가 좋아보입니다. ArgoCD 단점 : 지원하지 않은 기능에 대해서 추후에 문제가 발생할 소지가 있음. [ 참조 사항 ] 다른 회사에서는 Spinnaker를 사용했으며, PROD, STG, DEV EKS 환경을 1개의 Spinnaker 연동해서 배포시스템을 관리했습니다. 유저 별 PROD, STG, DEV 읽기,쓰기 권한을 선택적으로 주어서 사용자마다 노출되는 화면이 달랐으며, 작업당일에만 PROD 권한을 작업자에게 부여했습니다. Docker Image Build는 CircleCI 사용해서 AWS ECR에 업로드했습니다. 배포 Yaml은 ChartMuseum으로 관리했기 때문에, 배포 시 Chart 버전만 신경쓰면 되었습..

반응형