• CI
    • Continuous Integration
    • 소스코드의 지속적인 빌드 및 테스트를 자동화 하여, 상용서비스에 버그를 예방하고 생산성을 높인다.
  • CircleCI
    • https://circleci.com/product/
    • https://circleci.com/docs/2.0/about-circleci/
    • 1) 소스코드 레파지토리(github, bitbucket, ... ) 연동
      • 3rd Party OAuth 등으로 연동을 하면 됨.
      • 예) Login with GitHub -> 해당 'My깃헙repo' 'Org깃헙repo' 와 연동
    • 2) Project 셋업 및 Organization 셋팅
      • 레파지토리의 원하는 프로젝트를 지정하면서 CI 가 시작 됨.
        • 해당 project의 각종 (env-var, ssh-key, ...) setting 가능.
        • 예) Project Settings -> SSK Keys -> 해당 레파지토리의 Checkout 용 Deploy Key 등록
      • 조직적으로 사용 할 셋팅
        • Contexts : 보안이 필요한 환경변수 (GITHUB_비번, QUAY_비번, ... ) 등등
        • VCS : ...
        • Security : ...
    • 3) .circleci/config.yaml 작성
      • // APP깃 푸쉬 -> [circleci]-> 도커 빌드&푸쉬 -> Config깃 클론&수정&푸쉬 <-> [argo cd]-> ...
      • // APP깃 태깅 -> [circleci]-> 도커 풀&태깅-> Config깃 클론&수정&푸쉬 <-> [argo cd]-> ...
      • version :
      • executors :
        • {익스큐터명}
          • environment :
            • 사용할 환경변수 정의
            • 예) IMAGE_NAME, DOCKERFILE_PATH, RECIPE_URL, CONFIG_XXX_ROOT, ...
      • orbs :
        • // 하단에 따로 설명...
      • jobs :
        • {잡이름}
          • executor : {익스큐터명}
          • docker :
            • - image : // 해당작업 수행환경 이미지 (특정한 커맨드 등등이 사용 해야 할 때!) 
          • steps :
            • - checkout // 해당 본 깃소스 체크아웃
            • - run :
              • name :
              • command : |
                • 예) docker login, build, tag, push, ...
                • 예) git clone ... /recipe , ...
                • 예) cd /recipe/.../kustomization.yaml , ...
                • 예) kustomize edit set image , ...
                • $CIRCLE_SHA1, $CIRCLE_TAG, ... 등등 CircleCI 자체 환경변수(?) 도 활용 가능!
      • workflows :
        • version : 
        • {명명}
          • jobs :
            • - {잡이름}
              • context : "organization 셋팅"
              • filters : "브렌치 및 태그 지정"
              • requires : ...
            • - {잡이름2}
              • ...
    • ...
    • orbs)
      • https://circleci.com/developer/orbs
      • https://circleci.com/docs/2.0/orb-intro
      • CircleCi의 config.yaml을 템플릿화 하여~ 아주 쉽게 타 파트너사가 제시하는 CI/CD 를 셋팅 할 수 있음!
      • 예) aws-sam-serverless
        • # 기본적으로 'AWS 크리덴셜 콘텍스트'으로 권한을 확보 해아함!
          # Project Settings -> Advanced Settings -> 파이프라인 enalbe 해야한다네?
          # 띠빠끄 "sam:" 정확히쓰는지몰라서... 개삽질함... 
          
          version: 2.1
          orbs:
            sam: circleci/aws-sam-serverless@3.0
          workflows:
            test:
              jobs:
                - sam/deploy:
                    context: {AWS 크리덴셜}
                    name: deploy-dev
                    s3-bucket: {SAM 패키징 버킷}
                    stack-name: stack-???-Dev
                    template: ./template.yaml
                    filters:
                      branches:
                        only: main
    • ex)
      • https://ddii.dev/devops/circleci
        • AWS EKS 배포
          • 개발한 컨테너 이미지를 DockerFile으로 빌드하고 -> AWS ECR 푸쉬한다
          • eksctl 으로 AWS EKS 클러스터를 생성한다.
          • kubectl 으로 ...
      • https://daddyprogrammer.org/post/10541/aws-lambda-circleci-auto-deploy
        • AWS Lambda 배포
          • ...
  • kustomize
    • kustomization.yaml 파일을 이용해, kubernetes 오브젝트를 변경(customize)하는 툴.
      • https://kubernetes.io/ko/docs/tasks/manage-kubernetes-objects/kustomization
      • https://kustomize.io
    • 예)
      • kubectl kustomize <kustomization_directory> // 리소스 확인
      • kubectl apply -k <kustomization_directory> // 리소스 적용
      • kubectl get 혹은 describe -k <kustomization_directory> // 리소스 조회
      • kubectl diff -k <kustomization_directory> // 매니페스트가 적용된 경우의 클러스터 상태와 비교
      • kubectl delete -k <kustomization_directory> // 리소스 삭제
    • ...
  • kustomization.yaml 작성
    • ...
  • kustomize cli 명령어
    • ...

-끝-

'DevOps' 카테고리의 다른 글

git-sync  (0) 2021.06.26
Argo CD  (0) 2020.11.23
K8S 애플리케이션  (0) 2020.07.19
K8S 리소스  (0) 2020.07.17
Dockerfile  (0) 2020.07.09

+ Recent posts