インストール
このドキュメントでは、KubernetesまたはOpenShiftクラスターにマニフェスト経由でGitLab Operatorをデプロイする方法を説明します。
OpenShiftを使用している場合、これらの手順は通常、オペレータがバンドル公開されると、OLM(オペレータライフサイクルマネージャ)によって処理されます。しかし、最新のオペレータイメージをテストするために、ユーザーは、オペレータリポジトリで利用可能なデプロイマニフェストを使用してオペレータをインストールする必要があるかもしれません。
前提条件
インストールページの「前提条件」セクションを参照してください。
GitLab オペレータのインストール
-
GitLab Operatorリポジトリをローカルシステムにクローンします。
git clone https://gitlab.com/gitlab-org/cloud-native/gitlab-operator.git cd gitlab-operator
-
GitLab Operatorをデプロイします。
kubectl create namespace gitlab-system task deploy_operator # or "task deploy_operator_openshift"
このコマンドは、まずオペレータが使用するサービスアカウント、ロール、ロールバインディングをデプロイし、次にオペレータ自身をデプロイします。
デフォルトでは、オペレータはデプロイされたネームスペースのみを監視します。クラスター・スコープで監視するようにするにはdeploy/chart/values.yaml
watchCluster
をtrue
に設定することで変更してください。 -
GitLabカスタムリソース(CR) を作成します。
mygitlab.yaml
のような名前の新規ファイルを作成します。このファイルに入れる内容の例を示します:
apiVersion: apps.gitlab.com/v1beta1 kind: GitLab metadata: name: gitlab spec: chart: version: "X.Y.Z" # select a version from the CHART_VERSIONS file in the root of this project values: global: hosts: domain: example.com # use a real domain here ingress: configureCertmanager: true certmanager-issuer: email: youremail@example.com # use your real email address here
spec.chart.values
で使う設定オプションの詳細については、GitLab Helm Chart ドキュメントをご覧ください。 -
新しい GitLab CR を使って GitLab インスタンスをデプロイします。
kubectl -n gitlab-system apply -f mygitlab.yaml
このコマンドはGitLab CRをクラスターに送り、GitLab Operatorが照合します。コントローラのポッドからログを追いかけることで、進捗を見ることができます:
kubectl -n gitlab-system logs deployment/gitlab-controller-manager -c manager -f
GitLab リソースをリストアップしてステータスを確認することもできます:
kubectl get gitlabs -n gitlab-system
CRが照合されると(GitLabリソースのステータスは
RUNNING
)、ブラウザでGitLabにアクセスすることができますhttps://gitlab.example.com
。
クリーンアップ
config/
ディレクトリ下のファイル削除のようなオペレーションによっては、リビルド/リデプロイが実行されないことがあります:
task clean
これにより、すべてのビルドアーティファクトとインストールレコードが削除されます。
GitLab オペレータをアンインストールします。
GitLab Operatorと関連リソースを削除するには、以下の手順に従ってください。
オペレーターをアンインストールする前に注意すべきオペレーション:
- オペレーターは、GitLabインスタンスが削除されても、Persistent Volume Claimsやシークレットを削除しません。
- オペレーターを削除するとき、オペレーターがインストールされているネームスペース(デフォルトでは
gitlab-system
)は自動的に削除されません。これは、永続ボリュームが意図せずに失われないようにするためです。
GitLab のインスタンスをアンインストールします。
kubectl -n gitlab-system delete -f mygitlab.yaml
GitLabインスタンスと、(上記のPVC)以外の関連オブジェクトを削除します。
GitLab オペレータをアンインストールします。
task delete_operator
実行中のデプロイを含め、Operatorのリソースを削除します。GitLabインスタンスに関連付けられているオブジェクトは削除されません。