第 9 章 在集群中构建和部署功能
您可以直接在集群中构建功能,而不是在本地构建功能。在本地开发机器上使用此工作流时,您只需要使用功能源代码。例如,当您无法在集群功能构建工具(如 docker 或 podman)安装时,这非常有用。
9.1. 在集群中构建和部署功能
				您可以使用 Knative (kn) CLI 启动功能项目构建,然后直接将功能部署到集群中。若要以这种方式构建功能项目,您的功能项目的源代码必须存在于可供集群访问的 Git 存储库分支中。
			
先决条件
- 在集群中必须安装 Red Hat OpenShift Pipelines。
- 
						已安装 OpenShift CLI(oc)。
- 
						已安装 Knative (kn) CLI。
流程
- 创建功能: - kn func create <function_name> -l <runtime> - $ kn func create <function_name> -l <runtime>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 实施您功能的业务逻辑。然后,使用 Git 提交并推送更改。
- 部署功能: - kn func deploy --remote - $ kn func deploy --remote- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果您没有登录到功能配置中引用的容器 registry,系统会提示您为托管功能镜像的远程容器 registry 提供凭证: - 输出和提示示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						要更新您的功能,使用 Git 提交并推送新的更改,然后再次运行 kn func deploy --remote命令。
- 可选。在使用 pipelines-as-code 的每个 Git 推送后,您可以将功能配置为在集群中构建: - 为您的功能生成 Tekton - Pipelines和- PipelineRuns配置:- kn func config git set - $ kn func config git set- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 除了生成配置文件外,这个命令会连接到集群并验证是否安装了管道。通过使用令牌,它还代表用户在功能存储库上创建 webhook。每次将更改推送到存储库时,webhook 都会在集群中触发管道。 - 您需要具有具有存储库访问权限的有效的 GitHub 个人访问令牌才能使用此命令。 
- 提交并推送生成的 - .tekton/pipeline.yaml和- .tekton/pipeline-run.yaml文件:- git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml git commit -m 'Add the Pipelines and PipelineRuns configuration' git push - $ git add .tekton/pipeline.yaml .tekton/pipeline-run.yaml $ git commit -m 'Add the Pipelines and PipelineRuns configuration' $ git push- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在修改了功能后,提交并推送它。该函数使用创建的管道自动重建。