테스트 OLM 번들

사전 요구 사항

디렉터리에 나열된 버전은 작동이 확인된 버전이며, 낮은 버전은 작동할 수 있지만 테스트되지 않았습니다.

  • task-3.17.0 (asdf)
  • operator-sdk-1.32.0 (asdf)
  • kubectl-1.25.3 (asdf)
  • helm-3.10.1 (asdf)
  • kustomize-4.5.7 (asdf)
  • yq-4.29.2 (asdf)
  • opm-1.26.2 (스크립트에 의해 자동으로 다운로드되거나 asdf를 통해 asdf-opm 플러그인을 사용하여 설치할 수 있음)
  • kind-0.17.0 (asdf)
  • docker (DOCKER="podman"을 통해 podman으로 대체할 수 있음)
  • podman (OperatorSDK 도구 체인 중 일부는 podman을 사용함)
  • k9s-0.26.7 (asdf 선택 사항)

환경 설정

Podman 설정

podman login registry.gitlab.com

Docker 설정

모든 작업에 podman을 사용하지 않는 경우 Docker가 registry.gitlab.com에 액세스할 수 있도록 허용하세요:

docker login registry.gitlab.com

Git 설정

Git에서 user.nameuser.email이 구성되어 있는지 확인하세요.

환경 설정

변수 이름 필수 여부 기본값 설명
OPERATOR_VERSION yes   업그레이드할 Operator 버전
PREVIOUS_OPERATOR_VERSION yes   업그레이드하기 전의 Operator 버전
LOCAL_IP yes 127.0.0.1 GITLAB_OPERATOR_DOMAIN에 필요한 로컬 머신 IP. GITLAB_OPERATOR_DOMAIN을 제공할 경우 LOCAL_IP는 생략할 수 있음
GITLAB_OPERATOR_OLM_REGISTRY yes registry.gitlab.com/gitlab-org/cloud-native/gitlab-operator/bundle 릴리스된 번들과 카탈로그가 있는 OLM 번들 및 카탈로그 레지스트리
BUNDLE_REGISTRY yes   중간 OLM 번들 및 카탈로그를 게시하기 위한 스테이징 컨테이너 레지스트리
… (이하 생략)      

Provision and deployOperatorHub publishing를 참조하여 추가 변수를 확인하세요.

오퍼레이터의 루트 디렉터리에 test_olm.env를 생성하세요(또는 ${OLM_TESTING_ENVIRONMENT} 환경 변수를 사용하여 사용자 지정 위치에 있는 파일을 가리킴).

다음과 같이 각 사용자 지정 라인이 개인적인 설정을 반영하는지 확인하세요:

export OPERATOR_VERSION="0.10.2"
export BUNDLE_REGISTRY="registry.gitlab.com/dmakovey/gitlab-operator-bundle"

export PREVIOUS_OPERATOR_VERSION="0.9.1"
export LOCAL_IP="192.168.3.194"
export DO_NOT_PUBLISH="yes" # 번들/카탈로그를 다시 컴파일하고 게시하지 않음
                            # 이미 공개 레지스트리에서 게시된 것을 사용함

KinD 클러스터 준비 (선택 사항)

OLM이 설정된 KinD 클러스터에서 테스트를 실행하려면:

scripts/test_olm.sh setup_kind_cluster

그렇지 않은 경우 현재 kubectl 컨텍스트는 OLM이 이미 설치된 기존 클러스터를 가리켜야 함

테스트 실행

  1. KinD 클러스터를 설정하고 거기에 Operator를 배포하세요:

    scripts/test_olm.sh upgrade_test_step1
    

    Operator Pod가 실행 중인지 확인하세요. 다음을 실행하여 확인하세요:

    kubectl get pod -n gitlab-system -l control-plane=controller-manager
    
  2. Operator를 통해 “이전” 버전의 GitLab을 배포하세요:

    scripts/test_olm.sh upgrade_test_step2
    

    GitLab이 배포되었는지 확인하세요:

    kubectl get -n gitlab-system gitlab
    
  3. Operator를 업그레이드하세요:

    scripts/test_olm.sh upgrade_test_step3
    

    Operator가 업그레이드되었는지 확인하세요.

    다음 단계로 넘어가기 전에 업그레이드가 완료될 때까지 기다리세요

  4. GitLab을 업그레이드하세요:

    scripts/test_olm.sh upgrade_test_step4
    

    GitLab이 업그레이드되고 작동 중인지 확인하세요.

    업그레이드가 완료될 때까지 기다리세요

  5. GitLab이 실행 중인지 확인하세요:

    scripts/test_olm.sh check_gitlab
    

    상기 명령은 Operator에서 GitLab 상태를 쿼리하며, 대체로 아래와 같이 사용할 수 있습니다:

    scripts/test_olm.sh check_gitlab2