GitLab Runner オペレータのインストール
Red Hat OpenShiftへのインストール
Red Hat OpenShift v4 以降では、OpenShift のウェブコンソールに埋め込まれた OperatorHub の stable チャンネルから入手できるGitLab Runner オペレータを使ってGitLab Runner をインストールできます。インストールが完了したら、新しくデプロイされた GitLab Runner インスタンスを使って GitLab CI/CD ジョブを実行することができます。各 CI/CD ジョブは別々のポッドで実行されます。
前提条件
- 管理者権限を持つOpenShift 4.xクラスター
- GitLab Runner登録トークン
OpenShift オペレータのインストール
まずは OpenShift Operator をインストールします。
- OpenShift UI を開き、管理者権限を持つユーザーでログインします。
- 左ペインで、[Operators]、[OperatorHub] の順にクリックします。
-
メイン ペインで、[すべての項目] の下にあるキーワード
GitLab Runner
を検索します。 - インストールするには、GitLab Runner オペレータをクリックします。
- GitLab Runner Operatorの概要ページで、インストールをクリックします。
- Install Operator ページで、Install をクリックします:
- チャネルの更新]で[安定]を選択します。
- Installed Namespace] で目的のネームスペースを選択し、[Install] をクリックします。
Installed Operatorsページで、GitLab Operatorの準備ができると、ステータスがSucceededに変わります。
Kubernetesへのインストール
GitLab 14.10で導入されました。
Kubernetes v1.21以降にGitLab Runnerをインストールするには、OperatorHub.ioのstable channelから入手できるGitLab Runner Operatorを使用します。インストールが完了したら、新しくデプロイされたGitLab Runnerインスタンスを使ってGitLab CI/CDジョブを実行することができます。各CI/CDジョブは別々のポッドで実行されます。
前提条件
- Kubernetes v1.21以降
- Cert manager v1.7.1
Kubernetes Operatorのインストール
OperatorHub.ioの指示に従ってください。
- 前提条件をインストールします。
- 右上の[インストール]を選択し、指示に従ってOLMとOperatorをインストールします。
GitLab Runnerのインストール
- Runner を登録するためのトークンを取得します:
- 共有ランナーの場合、管理者が GitLab 管理エリアに行き、Overview > Runners をクリックします。
- グループランナーの場合は、Settings > CI/CDと進み、Runnersセクションを展開します。
- プロジェクトランナーの場合は、[設定] > [CI/CD] に進み、[Runners]セクションを展開します。
- Use the following registration token during setup:」の下にあるトークンをコピーします。
- GitLab Runnerを作成するネームスペースに移動します。
-
GitLab プロジェクトの Runner トークンでシークレットファイルを作成します:
cat > gitlab-runner-secret.yml << EOF apiVersion: v1 kind: Secret metadata: name: gitlab-runner-secret type: Opaque stringData: runner-registration-token: REPLACE_ME # your project runner secret EOF
-
クラスターで
secret
:kubectl apply -f gitlab-runner-secret.yml
-
Custom Resource Definition(CRD) ファイルを作成し、以下の設定を含めます。
cat > gitlab-runner.yml << EOF apiVersion: apps.gitlab.com/v1beta2 kind: Runner metadata: name: gitlab-runner spec: gitlabUrl: https://gitlab.example.com buildImage: alpine token: gitlab-runner-secret EOF
-
次に、コマンドを実行して
CRD
ファイルを適用します:kubectl apply -f gitlab-runner.yml
-
GitLab Runnerがインストールされていることを確認します:
kubectl get runner NAME AGE gitlab-runner 5m
-
Runner ポッドも表示されているはずです:
kubectl get pods NAME READY STATUS RESTARTS AGE gitlab-runner-bf9894bdb-wplxn 1/1 Running 0 5m
他のバージョンのGitLab Runner Operator for OpenShiftをインストールします。
Red Hat OperatorHub で提供されている GitLab Runner Operator のバージョンを使用したくない場合は、別のバージョンをインストールできます。
現在利用可能な Operator の内部バージョンを確認するには、gitlab-runner-operator
リポジトリ](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/tags)の[タグを参照してください。Operator が稼働している GitLab Runner のバージョンを調べるには、https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/blob/v1.0.0/Makefileなど、関心のあるコミット/タグのMakefile
のAPP_VERSION
変数を表示します。
特定のバージョンをインストールするには、このcatalogsource.yaml
ファイルを作成し、<VERSION>
をタグまたは特定のコミットで置き換えます:
v0.0.1-<COMMIT>
.例:registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator-catalog-source:v0.0.1-f5a798af
.apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: gitlab-runner-catalog
namespace: openshift-marketplace
spec:
sourceType: grpc
image: registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator-catalog-source:<VERSION>
displayName: GitLab Runner Operators
publisher: GitLab Community
でCatalogSource
を作成します:
oc apply -f catalogsource.yaml
1分もすれば、OpenShiftクラスターのOperatorHubセクションに新しいRunnerが表示されるはずです。
オペレーターのアンインストール
Red Hat OpenShift でのアンインストール
-
Runner
CRD
を削除します:kubectl delete -f gitlab-runner.yml
-
削除
secret
:kubectl delete -f gitlab-runner-secret.yml
-
Red Hat ドキュメントの「Deleting Operators from a cluster using web console (ウェブコンソールを使用してクラスターからオペレーターを削除する)」の説明に従ってください。
Kubernetes でのアンインストール
-
Runner
CRD
を削除します:kubectl delete -f gitlab-runner.yml
-
削除
secret
:kubectl delete -f gitlab-runner-secret.yml
-
オペレーター契約を削除します:
kubectl delete subscription my-gitlab-runner-operator -n operators
-
インストールされている
CSV
のバージョンを確認します:kubectl get clusterserviceversion -n operators NAME DISPLAY VERSION REPLACES PHASE gitlab-runner-operator.v1.7.0 GitLab Runner 1.7.0 Succeeded
-
CSV
を削除:kubectl delete clusterserviceversion gitlab-runner-operator.v1.7.0 -n operators
設定
OpenShiftでGitLab Runnerを設定するには、OpenShiftでのGitLab Runnerの設定のページを参照してください。