21.3. 安装 OpenShift Operator Pipeline


先决条件

OpenShift 集群上的管理员特权。

流程

您可以通过两种方法安装 OpenShift Operator Pipeline:

21.3.1. 自动化过程

红帽建议使用自动过程来安装 OpenShift Operator Pipeline。自动化过程可确保在执行 CI Pipeline 前正确配置了集群。此流程将 Operator 安装到集群中,可帮助您自动更新所有 CI Pipeline 任务,而无需手动干预。这个过程还支持多租户场景,您可以在其中在同一集群中迭代测试多个 operator。

按照以下步骤通过 Operator 安装 OpenShift Operator Pipeline:

注意

在安装 Operator Pipeline 前,保留 Operator 捆绑包的源文件。

21.3.1.1. 先决条件

在安装 OpenShift Operator Pipeline 之前,在终端窗口中运行以下命令配置所有先决条件:

注意

Operator 会监视所有命名空间。因此,如果其他命名空间中已存在 secret/configs/etc,您可以使用现有命名空间来安装 Operator Pipeline。

  1. 新建命名空间:

    oc new-project oco
    Copy to Clipboard Toggle word wrap
  2. 设置 kubeconfig 环境变量:

    export KUBECONFIG=/path/to/your/cluster/kubeconfig
    Copy to Clipboard Toggle word wrap
    注意

    kubeconfig 变量用于在测试并运行认证检查下部署 Operator。

    oc create secret generic kubeconfig --from-file=kubeconfig=$KUBECONFIG
    Copy to Clipboard Toggle word wrap
  3. 执行以下命令提交认证结果:

    • 将 github API 令牌添加到创建拉取请求的存储库:

      oc create secret generic github-api-token --from-literal GITHUB_TOKEN=<github token>
      Copy to Clipboard Toggle word wrap
    • 添加红帽容器 API 访问密钥:

      oc create secret generic pyxis-api-secret --from-literal pyxis_api_key=< API KEY >
      Copy to Clipboard Toggle word wrap

      此 API 访问密钥与您的 Red Hat Partner Connect 门户上的唯一合作伙伴帐户特别相关。

  4. 在裸机上运行 OpenShift 集群的先决条件:

    1. 如果您在裸机上运行 OpenShift 集群,Operator 管道需要运行 5Gi 的持久性卷。以下 yaml 模板可帮助您使用本地存储创建 5Gi 的持久性卷。

      例如:

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: my-local-pv
      spec:
        capacity:
          storage: 5Gi
        volumeMode: Filesystem
        accessModes:
          - ReadWriteOnce
        persistentVoumeReclaimPolicy: Delete
        local:
          path: /dev/vda4  ← use a path from your cluster
        nodeAffinity:
          required:
            nodeSelectorTerms:
              - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                    - crc-8k6jw-master-0  ← use the name of one of your cluster’s node
      Copy to Clipboard Toggle word wrap
    2. CI 管道自动构建 Operator 捆绑包镜像和捆绑包镜像索引,以进行测试和验证。默认情况下,管道在集群的 OpenShift 容器注册表中创建镜像。

      要在裸机上使用此 registry,请在运行管道前设置内部镜像 registry。有关设置内部镜像 registry 的详细信息,请参阅镜像 registry 存储配置

      如果要使用外部私有 registry,请通过添加 secret 来提供集群的访问凭证。具体步骤请参阅 使用私有容器 registry

21.3.1.2. 通过 Operator 安装管道

按照以下步骤将 Operator 添加到集群中:

  1. 安装 Operator 认证 Operator。

    • 登录您的 OpenShift 集群控制台。
    • 在主菜单中导航到 Operators OperatorHub
    • All Items - Filter by keyword filter/search 框中键入 Operator Certification Operator
    • 当显示时,选择 Operator Certification Operator 标题。此时会显示 Operator Certification Operator 页面。
    • Install。此时会显示 Install Operator 网页。
    • 向下滚动并单击 Install
    • View Operator 来验证安装。
  2. 为新安装的 Operator Pipeline 应用自定义资源。

    • 登录您的 OpenShift 集群控制台。
    • Projects 下拉菜单中选择您要应用自定义资源的项目。
    • 展开 Operator Pipeline,然后点 Create instance

      Create Operator Pipeline 屏幕会使用默认值自动填充。

      注意

      如果您根据 先决条件 创建了所有资源名称,则不需要更改任何默认值。

    • Create

    自定义资源已创建,Operator 开始协调。

验证步骤

  1. 检查自定义资源的条件。

    • 登录您的 OpenShift 集群控制台。
    • 进入到您新创建的 Operator Pipeline 自定义资源的项目,并点击 Custom Resource。
    • 向下滚动到 Conditions 部分,再检查所有 Status 值是否都设为 True
注意

如果资源无法协调,请检查 Message 部分以识别后续步骤来修复错误。

  1. 检查 Operator 日志。

    • 在终端窗口中运行以下命令:

      oc get pods -n openshift-marketplace
      Copy to Clipboard Toggle word wrap
    • 记录 certification-operator-controller-manager pod 的完整 podman 名称并运行以下命令:

      oc get logs -f -n openshift-marketplace <pod name> manager
      Copy to Clipboard Toggle word wrap
    • 检查 Operator 的协调是否发生。

21.3.1.3. 执行管道

要执行管道,请确保在目录中的 templates 文件夹中有 workspace-template.yml 文件,从中要运行 tkn 命令。

要创建 workspace-template.yml 文件,在终端窗口中运行以下命令:

cat <<EOF> workspace-template.yml
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
EOF
Copy to Clipboard Toggle word wrap

您可以通过 不同的方法 运行管道。

21.3.2. 手动过程

按照以下步骤手动安装 OpenShift Operator Pipeline:

21.3.2.1. 安装 OpenShift Pipeline Operator

  1. 登录您的 OpenShift 集群控制台。
  2. 在主菜单中导航到 Operators > OperatorHub
  3. All Items - Filter by keyword filter/search 框中键入 OpenShift Pipelines
  4. 显示 Red Hat OpenShift Pipelines 标题时选择它。显示 Red Hat OpenShift Pipelines 页面。
  5. Install。此时会显示 Install Operator 网页。
  6. 向下滚动并单击 Install

21.3.2.2. 配置 OpenShift (oc) CLI 工具

用于配置对集群的访问的文件称为 kubeconfig 文件。这是引用配置文件的通用方法。使用 kubeconfig 文件组织集群、用户、命名空间和身份验证机制的信息。

kubectl 命令行工具使用 kubeconfig 文件来查找它选择集群所需的信息,并与集群的 API 服务器通信。

  1. 在终端窗口中设置 KUBECONFIG 环境变量:
export KUBECONFIG=/path/to/your/cluster/kubeconfig
Copy to Clipboard Toggle word wrap

kubeconfig 文件将 Operator 部署到测试并运行认证检查。

21.3.2.3. 创建 OpenShift 项目

创建一个新命名空间,以在管道中启动工作。

要创建命名空间,在终端窗口中运行以下命令:

oc adm new-project <my-project-name> # create the project
oc project <my-project-name> # switch into the project
Copy to Clipboard Toggle word wrap
重要

不要在 default 项目或命名空间中运行管道。红帽建议为管道创建一个新项目。

21.3.2.4. 添加 kubeconfig secret

创建包含 kubeconfig 的 kubernetes secret,以便向运行认证管道的集群进行身份验证。认证管道需要在 OpenShift 集群上执行 Operator 测试部署。

要添加 kubeconfig secret,在终端窗口中运行以下命令:

oc create secret generic kubeconfig --from-file=kubeconfig=$KUBECONFIG
Copy to Clipboard Toggle word wrap

21.3.2.5. 从 Red Hat Catalog 导入 Operator

从红帽目录 导入 Operator

在终端窗口中运行以下命令:

oc import-image certified-operator-index \
  --from=registry.redhat.io/redhat/certified-operator-index \
  --reference-policy local \
  --scheduled \
  --confirm \
  --all
oc import-image redhat-marketplace-index \
  --from=registry.redhat.io/redhat/redhat-marketplace-index \
  --reference-policy local \
  --scheduled \
  --confirm \
  --all
Copy to Clipboard Toggle word wrap
注意

如果您在 IBM Power 集群中将 OpenShift 用于 ppc64le 架构,请运行以下命令以避免权限问题:

oc adm policy add-scc-to-user anyuid -z pipeline

此命令将 anyuid 安全性上下文约束(SCC)赋予默认的管道服务帐户。

21.3.2.6. 安装认证管道依赖项

在终端窗口中,使用以下命令在集群中安装认证管道依赖项:

$git clone https://github.com/redhat-openshift-ecosystem/operator-pipelines
$cd operator-pipelines
$oc apply -R -f ansible/roles/operator-pipeline/templates/openshift/pipelines
$oc apply -R -f ansible/roles/operator-pipeline/templates/openshift/tasks
Copy to Clipboard Toggle word wrap

21.3.2.7. 配置提交认证结果的存储库

在终端窗口中,运行以下命令来配置存储库以提交认证结果:

21.3.2.7.1. 添加 GitHub API 令牌

执行所有配置后,管道可以自动打开拉取请求,以将 Operator 提交到红帽。

要启用此功能,请添加 GitHub API Token,在运行管道时使用 --param submit=true

oc create secret generic github-api-token --from-literal GITHUB_TOKEN=<github token>
Copy to Clipboard Toggle word wrap
21.3.2.7.2. 添加 Red Hat Container API 访问密钥

添加您从红帽接收的特定容器 API 访问密钥:

oc create secret generic pyxis-api-secret --from-literal pyxis_api_key=< API KEY >
Copy to Clipboard Toggle word wrap
21.3.2.7.3. 启用摘要固定
注意

此步骤对于向红帽提交认证结果是必需的。

OpenShift Operator 管道可以自动将捆绑包中的所有镜像标签替换为镜像 Digest SHA。这允许管道确保是否使用所有镜像的固定版本。管道将捆绑包的固定版本作为新分支提交到 GitHub 存储库。

要启用此功能,请添加一个能够作为 secret 访问 GitHub 的私钥。

  1. 使用 Base64 对可访问包含捆绑包的 GitHub 存储库的私钥进行编码。

    base64 /path/to/private/key
    Copy to Clipboard Toggle word wrap
  2. 创建包含 base64 编码的私钥的 secret。

    cat << EOF > ssh-secret.yml
    kind: Secret
    apiVersion: v1
    metadata:
      name: github-ssh-credentials
    data:
      id_rsa: |
        <base64 encoded private key>
    EOF
    Copy to Clipboard Toggle word wrap
  3. 在集群中添加 secret。

    oc create -f ssh-secret.yml
    Copy to Clipboard Toggle word wrap
21.3.2.7.4. 使用私有容器 registry

管道会自动构建 Operator 捆绑包镜像和捆绑包镜像索引,以进行测试和验证。默认情况下,管道在集群的 OpenShift Container Registry 中创建镜像。如果要使用外部私有 registry,则必须通过在集群中添加 secret 来提供凭证。

oc create secret docker-registry registry-dockerconfig-secret \
    --docker-server=quay.io \
    --docker-username=<registry username> \
    --docker-password=<registry password> \
    --docker-email=<registry email>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat