安装极狐GitLab Runner Operator

在 Red Hat OpenShift 上安装

您可以使用嵌入在 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 的令牌,您可以:

  2. 使用您的极狐GitLab 项目的 Runner 令牌创建 Secret 文件:

    cat > gitlab-runner-secret.yml << EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: gitlab-runner-secret
    type: Opaque
    # Only one of the following fields can be set. The Operator fails to register the runner if both are provided.
    # NOTE: runner-registration-token is deprecated and will be removed in GitLab 18.0. You should use runner-token instead.
    stringData:
      runner-token: REPLACE_ME # your project runner token
      # runner-registration-token: "" # your project runner secret
    EOF
    
  3. 运行以下命令,在您的集群中创建 secret

    kubectl apply -f gitlab-runner-secret.yml
    
  4. 创建自定义资源定义(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
    
  5. 运行以下命令以应用 CRD 文件:

    kubectl apply -f gitlab-runner.yml
    
  6. 运行以下命令确认极狐GitLab Runner 已安装:

    kubectl get runner
    NAME             AGE
    gitlab-runner    5m
    
  7. 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 部分中出现。

在离线环境的 Kubernetes 集群上安装极狐GitLab Runner Operator

先决条件:

  • 安装进程所需的镜像要可访问。

为了在安装期间拉取镜像,极狐GitLab Runner Operator 需要连接到公共互联网上的外部网络。如果您有 Kubernetes 集群安装在离线环境中,您可以使用本地镜像仓库或本地软件包仓库来拉取镜像或软件包。本地仓库必须提供以下镜像:

Image Default value
GitLab Runner Operator image registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator:vGITLAB_RUNNER_OPERATOR_VERSION
GitLab Runner and GitLab Runner Helper images 这些镜像下载自极狐GitLab Runner UBI 镜像仓库并在安装 Runner 自定义资源时使用。版本取决于您的需求。
RBAC Proxy image registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/openshift4/ose-kube-rbac-proxy:v4.13.0
  1. 在离线环境中设置本地仓库或镜像仓库以托管下载的软件包和容器镜像,您可以使用:

    • 一个 Docker 仓库用于容器镜像。
    • 一个本地软件包仓库用于 Kubernetes 二进制文件和依赖项。
  2. 针对极狐GitLab Runner Operator v1.23.2 及以后版本,下载最新的 operator.k8s.yaml 文件:

    curl -O "https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-
    operator/-/releases/vGITLAB_RUNNER_OPERATOR_VERSION/downloads/operator.k8s.yaml"
    
  3. operator.k8s.yaml 文件中,更新一下 URLS:

    • GitLab Runner Operator image
    • RBAC Proxy image
  4. 安装更新后的 operator.k8s.yaml 文件:

    kubectl apply -f PATH_TO_UPDATED_OPERATOR_K8S_YAML
    GITLAB_RUNNER_OPERATOR_VERSION = 1.23.2+
    

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