安装极狐GitLab Runner Operator

在 Red Hat OpenShift 上安装

  • 引入于极狐GitLab 13.3。

  • 升级于极狐GitLab 13.7。

您可以使用嵌入在 OpenShift Web 控制台中的 OperatorHub 稳定渠道提供的极狐GitLab Runner Operator 在 Red Hat OpenShift v4 及更高版本上安装极狐GitLab Runner。安装完成后,您可以使用新部署的极狐GitLab Runner 实例运行 CI/CD 作业。每个 CI/CD 作业将在单独的 Pod 中运行。

先决条件

  • 拥有管理员权限的 OpenShift 4.x 集群
  • 极狐GitLab Runner 注册令牌

安装 OpenShift Operator

首先,您需要安装 OpenShift Operator。

  1. 打开 OpenShift UI 并以管理员身份登录。
  2. 在左侧面板上,单击 Operators,然后单击 OperatorHub
  3. 在主面板上的 All Items 下面,搜索关键词 GitLab Runner

    GitLab Operator

  4. 安装并点击极狐GitLab Runner Operator。
  5. 在极狐GitLab Runner Operator 摘要页面,单击 Install
  6. 在安装 Operator 页面:
    1. Update Channel 下,选择 stable
    2. Installed Namespace 下,选择想要的命名空间并单击 Install

    GitLab Operator Install Page

在安装的 Operator 页面上,当极狐GitLab Operator 准备好之后,状态变更为 Succeeded

GitLab Operator Install Status

在 Kubernetes 上安装

引入于极狐GitLab 14.10。

您可以使用 OperatorHub.io 的稳定渠道中可用的极狐GitLab Runner Operator 在 Kubernetes v1.21 及更高版本上安装极狐GitLab Runner。安装后,您可以使用新部署的极狐GitLab Runner 实例运行 CI/CD 作业。每个 CI/CD 作业将在单独的 Pod 中运行。

先决条件

  • Kubernetes v1.21 及更高版本
  • Cert manager v1.7.1

安装 Kubernetes Operator

按照 OperatorHub.io 中的指南进行操作。

  1. 安装先决条件中的内容。
  2. 在右上角,选择 Install 并根据指南安装 OLM 和 Operator。

安装极狐GitLab Runner

  1. 获取用于注册 Runner 的令牌:
    • 对于共享 Runner,管理员访问极狐GitLab 管理中心并单击 概览 > Runner
    • 对于群组 Runner,访问 设置 > CI/CD 并展开 Runner 部分。
    • 对于项目特定的 Runner,访问 设置 > CI/CD 并展开 Runner 部分。
  2. 在设置中使用以下注册令牌 下面,复制令牌。
  3. 访问您想创建极狐GitLab Runner 的命名空间。
  4. 使用您的极狐GitLab 项目的 Runner 令牌创建 Secret 文件:

    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. 创建自定义资源定义(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 Pod 也应该可见:

    kubectl get pods
    NAME                             READY   STATUS    RESTARTS   AGE
    gitlab-runner-bf9894bdb-wplxn    1/1     Running   0          5m
    

为 OpenShift 安装其他版本的极狐GitLab Runner Operator

如果您不想使用 Red Hat OperatorHub 中提供的极狐GitLab Runner Operator 版本,您可以安装其他版本。

要安装特定版本,请创建此 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

很快新的 Runner 应该就会在 OpenShift 集群的 OperatorHub 部分中出现。

卸载 Operator

在 Red Hat OpenShift 上卸载

  1. 删除 Runner CRD

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

    kubectl delete -f gitlab-runner-secret.yml
    
  3. 按照 Red Hat 文档中关于使用 Web 控制台从集群中删除 Operator的指南进行操作。

在 Kubernetes 上卸载:

  1. 删除 Runner CRD

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

    kubectl delete -f gitlab-runner-secret.yml
    
  3. 删除 Operator 订阅:

    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页面。