テストOLMバンドル
前提条件
記載されているバージョンは動作が確認されているものです。
-
task-3.17.0
(asdf
) -
operator-sdk-1.25.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-opmプラグインを使用してasdf
からインストールできます) -
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のセットアップ
user.name
とuser.email
が Git で設定されていることを確認します。
環境構築
変数名 | 必須 | デフォルト | 説明 |
---|---|---|---|
OPERATOR_VERSION | yes | アップグレードするオペレータのバージョン | |
PREVIOUS_OPERATOR_VERSION | yes | アップグレードするオペレータのバージョン | |
LOCAL_IP | yes | 127.0.0.1 | ローカルマシンのIPGITLAB_OPERATOR_DOMAIN 。 GITLAB_OPERATOR_DOMAIN LOCAL_IP は省略可能ですGITLAB_OPERATOR_DOMAIN 。 GITLAB_OPERATOR_DOMAIN
|
GITLAB_OPERATOR_OLM_REGISTRY | yes | registry.gitlab.com/gitlab-org/cloud-native/gitlab-operator/bundle | OLMバンドルとカタログ リリースされたバンドルとカタログのレジストリ |
BUNDLE_REGISTRY | yes | 中間OLMバンドルとカタログを公開するステージングコンテナレジストリ | |
OLM_TESTING_ENVIRONMENT | いいえ | ./test_olm.env | テスト実行に必要な環境変数が含まれるファイル |
OPERATOR_TAG | いいえ | $OPERATOR_VERSION | オペレータ テストするコンテナタグ |
OLM_BUNDLE_SH | いいえ | scripts/olm_bundle.sh |
olm_bundle.sh スクリプト内部へのパス。 |
PROVISION_AND_DEPLOY_SH | いいえ | scripts/provision_and_deploy.sh |
provision_and_deploy.sh スクリプト内部へのパス。 |
YQ | いいえ | yq |
yq ユーティリティへのパス |
OPM_VERSION | いいえ | 1.26.2 |
opm でバイナリが指定されていない場合に自動的にフェッチするバージョンです。OPM
|
OPM | いいえ | .build/opm |
opm バイナリへのパス。空の場合は自動取得 (OPM_VERSION を使用) |
OSDK_BASE_DIR | いいえ | .build/operatorhub-io | OLMバンドル中間アーティファクト保管用ディレクトリ |
OLM_PACKAGE_VERSION | いいえ | $OPERATOR_TAG | OLMパッケージに適用するバージョン |
KUBERNETES_TIMEOUT | いいえ | 120s | Kubernetesオペレーションのタイムアウト |
DO_NOT_PUBLISH | いいえ | "" | 現在のバンドル/カタログを (一時レジストリに) コンパイルして公開するか、公開済みのレジストリから使用するかを制御します。 |
BUNDLE_VERSION | いいえ | $OPERATOR_VERSION | アップグレードするバンドルのバージョン |
PREVIOUS_BUNDLE_VERSION | いいえ | $PREVIOUS_OPERATOR_VERSION | アップグレードするバンドルのバージョン |
PREVIOUS_CHART_VERSION | いいえ | 自動生成 | アップグレードするChartバージョン |
GITLAB_OPERATOR_DOMAIN | いいえ | ${LOCAL_IP}.nip.io | テスト用GitLabインスタンスをデプロイするドメイン |
GITLAB_OPERATOR_DIR | いいえ | . | GitLab Operatorリポジトリがあるディレクトリ |
GITLAB_CHART_VERSION | いいえ | の最初の行は${GITLAB_OPERATOR_DIR}/CHART_VERSIONS}
| アップグレードするChart Version |
GITLAB_CHART_REPO | いいえ | https://gitlab.com/gitlab-org/charts/gitlab | GitLab ChartリポジトリHTTP URI。主にデフォルトのKinD設定を取得するために使用します。 |
K8S_VERSION | いいえ | 1.22.4 | クラスター設定に使用するK8sのバージョン |
KIND_CONFIG | いいえ |
examples/kind/kind-ssl.yaml GitLab Chart のデフォルトブランチから | GitLabデプロイのためにKinDクラスターを準備するKinD設定ファイル |
追加の変数については、プロビジョニングとデプロイと OperatorHubパブリッシングを見てください。
Operatorのルートディレクトリにtest_olm.env
を作成します(または、${OLM_TESTING_ENVIRONMENT}
環境変数を使用して、カスタムロケーションのファイルを指定します)。
以下のすべてのカスタマイズ行があなたの個人的な設定を反映していることを確認してください:
export OPERATOR_VERSION="0.10.2"
export OPERATOR_SDK="${HOME}/bin/operator-sdk_linux_amd64"
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" # do not re-compile and publish bundle/catalog
# use the ones already published
KinDクラスターの準備 (オプション)
OLMをセットアップしたKinDクラスターでテストを実行します:
scripts/test_olm.sh setup_kind_cluster
そうでなければ、現在のkubectl
コンテキストは、OLM がプリインストールされた既存のクラスターを指す必要があります。
テストの実行
-
KinDクラスターをセットアップし、Operatorをデプロイします:
scripts/test_olm.sh upgrade_test_step1
Operator ポッドが起動しているはずです。実行して確認します:
kubectl get pod -n gitlab-system -l control-plane=controller-manager
-
GitLabの「古い」バージョンをOperator経由でデプロイします:
scripts/test_olm.sh upgrade_test_step2
GitLabがデプロイされたことを確認します:
kubectl get -n gitlab-system gitlab
-
オペレーションをアップグレードします:
scripts/test_olm.sh upgrade_test_step3
Operatorがアップグレードされたことを確認します。
次のステップの前に、インストールがロールアウトするのを待ちます。
-
GitLab をアップグレードします:
scripts/test_olm.sh upgrade_test_step4
GitLabがアップグレードされ、機能していることを確認します。
アップグレードが完了するまで待ちます
-
GitLabが起動していることを確認します:
scripts/test_olm.sh check_gitlab
上記のオペレーションはOperatorにGitLabのステータスをクエリします。
scripts/test_olm.sh check_gitlab2
を使うと Operator のチェックをバイパスして GitLab インスタンス自体のチェックを行います。