22.3. 安装 OpenShift Operator Pipeline


先决条件

OpenShift 集群上的管理员特权。

步骤

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

22.3.1. 自动化过程

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

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

注意

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

22.3.1.1. 先决条件

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

注意

Operator 会监视所有命名空间。因此,如果另一个命名空间中已存在 secrets/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 存储配置

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

22.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. 检查自定义资源的 Conditions。

    • 登录您的 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-operators <pod name> manager
      Copy to Clipboard Toggle word wrap
    • 检查是否已发生 Operator 的协调。

22.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

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

22.3.2. 手动过程

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

22.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

22.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,并运行认证检查。

22.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 项目或命名空间中运行管道。红帽建议为管道创建一个新项目。

22.3.2.4. 添加 kubeconfig secret

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

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

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

22.3.2.5. 从 Red Hat Catalog 导入 Operator

红帽容器目录 导入 Operator

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

注意

在运行命令前,请识别 OpenShift 集群的主版本和次要版本(例如 OPENSHIFT_VERSION=v4.19)

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

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

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

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

22.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

22.3.2.7. 配置存储库以提交认证结果

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

22.3.2.7.1. 添加 GitHub API 令牌

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

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

oc create secret generic github-api-token --from-literal GITHUB_TOKEN=<github token>
Copy to Clipboard Toggle word wrap
22.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
22.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
22.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