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。
新建命名空间:
oc new-project oco
oc new-project oco
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
kubeconfig
环境变量:export KUBECONFIG=/path/to/your/cluster/kubeconfig
export KUBECONFIG=/path/to/your/cluster/kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此
kubeconfig
变量用于在测试下部署 Operator,并运行认证检查。oc create secret generic kubeconfig --from-file=kubeconfig=$KUBECONFIG
oc create secret generic kubeconfig --from-file=kubeconfig=$KUBECONFIG
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 执行以下命令提交认证结果:
将 github API 令牌添加到创建拉取请求的存储库:
oc create secret generic github-api-token --from-literal GITHUB_TOKEN=<github token>
oc create secret generic github-api-token --from-literal GITHUB_TOKEN=<github token>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加红帽容器 API 访问密钥:
oc create secret generic pyxis-api-secret --from-literal pyxis_api_key=< API KEY >
oc create secret generic pyxis-api-secret --from-literal pyxis_api_key=< API KEY >
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此 API 访问密钥专门与 Red Hat Partner Connect 门户上的唯一的合作伙伴帐户相关。
在裸机上运行 OpenShift 集群的先决条件:
如果您在裸机上运行 OpenShift 集群,Operator 管道需要一个 5Gi 的持久性卷才能运行。以下 yaml 模板可帮助您使用本地存储创建一个 5Gi 持久性卷。
例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CI 管道会自动构建 Operator 捆绑包镜像和捆绑包镜像索引,用于测试和验证。默认情况下,管道会在集群的 OpenShift 容器 registry 中创建镜像。
要在裸机上使用此 registry,请在运行管道前设置内部镜像 registry。有关设置内部镜像 registry 的详细信息,请参阅镜像 registry 存储配置。
如果要使用外部私有 registry,请通过添加 secret 为集群提供访问凭证。具体步骤请参阅 使用私有容器 registry。
22.3.1.2. 通过 Operator 安装管道 复制链接链接已复制到粘贴板!
按照以下步骤将 Operator 添加到集群中:
安装 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 来验证安装。
为新安装的 Operator Pipeline 应用自定义资源。
- 登录您的 OpenShift 集群控制台。
- 在 Projects 下拉菜单中选择您要应用自定义资源的项目。
展开 Operator Pipeline,然后点 Create instance。
Create Operator Pipeline 屏幕自动填充默认值。
注意如果您根据 先决条件 创建所有资源名称,则不需要更改任何默认值。
- 点 Create。
创建自定义资源,Operator 开始协调。
验证步骤
检查自定义资源的 Conditions。
- 登录您的 OpenShift 集群控制台。
- 导航到您新创建的 Operator Pipeline 自定义资源的项目,然后点 Custom Resource。
- 向下滚动到 Conditions 部分,检查所有 Status 值是否都设为 True。
如果资源无法协调,请检查 Message 部分来识别后续步骤来修复错误。
检查 Operator 日志。
在终端窗口中运行以下命令:
oc get pods -n openshift-marketplace
oc get pods -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录
certification-operator-controller-manager
pod 的完整 podman 名称,再运行以下命令:oc get logs -f -n openshift-operators <pod name> manager
oc get logs -f -n openshift-operators <pod name> manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 检查是否已发生 Operator 的协调。
22.3.1.3. 执行管道 复制链接链接已复制到粘贴板!
要执行管道,请确保您在目录的一个 templates 文件夹中有 workspace-template.yml
文件,从要运行 tkn
命令的位置。
要在终端窗口中创建一个 workspace-template.yml
文件:
您可以通过 不同的方法 运行管道。
22.3.2. 手动过程 复制链接链接已复制到粘贴板!
按照以下步骤手动安装 OpenShift Operator Pipeline:
22.3.2.1. 安装 OpenShift Pipeline Operator 复制链接链接已复制到粘贴板!
- 登录您的 OpenShift 集群控制台。
- 在主菜单中,进入到 Operators > OperatorHub。
- 在 All Items - Filter by keyword filter/search 框中输入 OpenShift Pipelines。
- 显示时选择 Red Hat OpenShift Pipelines 标题。显示 Red Hat OpenShift Pipelines 页面。
- 点 Install。此时会显示 Install Operator 网页。
- 向下滚动并单击 Install。
22.3.2.2. 配置 OpenShift (oc) CLI 工具 复制链接链接已复制到粘贴板!
用于配置对集群的访问的文件称为 kubeconfig 文件。这是引用配置文件的一种通用方法。使用 kubeconfig 文件来组织有关集群、用户、命名空间和身份验证机制的信息。
kubectl
命令行工具使用 kubeconfig 文件来查找选择集群所需的信息,并与集群的 API 服务器通信。
- 在终端窗口中设置 KUBECONFIG 环境变量:
export KUBECONFIG=/path/to/your/cluster/kubeconfig
export KUBECONFIG=/path/to/your/cluster/kubeconfig
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
oc adm new-project <my-project-name> # create the project
oc project <my-project-name> # switch into the project
不要在 default 项目或命名空间中运行管道。红帽建议为管道创建一个新项目。
22.3.2.4. 添加 kubeconfig secret 复制链接链接已复制到粘贴板!
创建包含 kubeconfig 的 kubernetes secret,用于向运行认证管道的集群进行身份验证。认证管道需要 kubeconfig 在 OpenShift 集群中执行 Operator 测试部署。
要添加 kubeconfig secret,在终端窗口中运行以下命令:
oc create secret generic kubeconfig --from-file=kubeconfig=$KUBECONFIG
oc create secret generic kubeconfig --from-file=kubeconfig=$KUBECONFIG
22.3.2.5. 从 Red Hat Catalog 导入 Operator 复制链接链接已复制到粘贴板!
在终端窗口中运行以下命令:
在运行命令前,请识别 OpenShift 集群的主版本和次要版本(例如 OPENSHIFT_VERSION=v4.19)
如果您在 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
$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
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>
oc create secret generic github-api-token --from-literal GITHUB_TOKEN=<github token>
22.3.2.7.2. 添加 Red Hat Container API 访问密钥 复制链接链接已复制到粘贴板!
添加您从红帽接收的特定容器 API 访问密钥:
oc create secret generic pyxis-api-secret --from-literal pyxis_api_key=< API KEY >
oc create secret generic pyxis-api-secret --from-literal pyxis_api_key=< API KEY >
22.3.2.7.3. 启用摘要固定 复制链接链接已复制到粘贴板!
此步骤必须向红帽提交认证结果。
OpenShift Operator 管道可以将捆绑包中的所有镜像标签自动替换为镜像 Digest SHA。这允许管道确保它是否使用所有镜像的固定版本。管道将捆绑包的固定版本作为新分支提交到您的 GitHub 存储库。
要启用此功能,请添加一个可作为 secret 访问 GitHub 的私钥。
使用 Base64 对有权访问包含捆绑包的 GitHub 存储库的私钥进行编码。
base64 /path/to/private/key
base64 /path/to/private/key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含 base64 编码私钥的 secret。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 添加到集群中。
oc create -f ssh-secret.yml
oc create -f ssh-secret.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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>
oc create secret docker-registry registry-dockerconfig-secret \
--docker-server=quay.io \
--docker-username=<registry username> \
--docker-password=<registry password> \
--docker-email=<registry email>