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 をインストールします。

  1. OpenShift UI を開き、管理者権限を持つユーザーでログインします。
  2. 左ペインで、[Operators]、[OperatorHub] の順にクリックします。
  3. メイン ペインで、[すべての項目] の下にあるキーワードGitLab Runner を検索します。

    GitLab Operator

  4. インストールするには、GitLab Runner オペレータをクリックします。
  5. GitLab Runner Operatorの概要ページで、インストールをクリックします。
  6. Install Operator ページで、Install をクリックします:
    1. チャネルの更新]で[安定]を選択します。
    2. Installed Namespace] で目的のネームスペースを選択し、[Install] をクリックします。

    GitLab Operator Install Page

Installed Operatorsページで、GitLab Operatorの準備ができると、ステータスがSucceededに変わります。

GitLab Operator Install Status

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の指示に従ってください。

  1. 前提条件をインストールします。
  2. 右上の[インストール]を選択し、指示に従ってOLMとOperatorをインストールします。

GitLab Runnerのインストール

  1. Runner を登録するためのトークンを取得します:
  2. Use the following registration token during setup:」の下にあるトークンをコピーします。
  3. GitLab Runnerを作成するネームスペースに移動します。
  4. 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
    
  5. クラスターでsecret

    kubectl apply -f gitlab-runner-secret.yml
    
  6. 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
    
  7. 次に、コマンドを実行してCRD ファイルを適用します:

    kubectl apply -f gitlab-runner.yml
    
  8. GitLab Runnerがインストールされていることを確認します:

    kubectl get runner
    NAME             AGE
    gitlab-runner    5m
    
  9. 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など、関心のあるコミット/タグのMakefileAPP_VERSION 変数を表示します。

特定のバージョンをインストールするには、このcatalogsource.yaml ファイルを作成し、<VERSION> をタグまたは特定のコミットで置き換えます:

note
特定のコミットの画像を使用する場合、タグの形式は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 でのアンインストール

  1. RunnerCRD を削除します:

    kubectl delete -f gitlab-runner.yml
    
  2. 削除secret

    kubectl delete -f gitlab-runner-secret.yml
    
  3. Red Hat ドキュメントの「Deleting Operators from a cluster using web console (ウェブコンソールを使用してクラスターからオペレーターを削除する)」の説明に従ってください。

Kubernetes でのアンインストール

  1. RunnerCRD を削除します:

    kubectl delete -f gitlab-runner.yml
    
  2. 削除secret

    kubectl delete -f gitlab-runner-secret.yml
    
  3. オペレーター契約を削除します:

    kubectl delete subscription my-gitlab-runner-operator -n operators
    
  4. インストールされているCSVのバージョンを確認します:

    kubectl get clusterserviceversion -n operators
    NAME                            DISPLAY         VERSION   REPLACES   PHASE
    gitlab-runner-operator.v1.7.0   GitLab Runner   1.7.0                Succeeded
    
  5. CSVを削除:

    kubectl delete clusterserviceversion gitlab-runner-operator.v1.7.0 -n operators
    

設定

OpenShiftでGitLab Runnerを設定するには、OpenShiftでのGitLab Runnerの設定のページを参照してください。