YAML模式
HelmDeploy本机步骤的YAML模式如下:
管道:- name:步骤:- name: 类型:HelmDeploy配置:#继承所有的标签从bash;//www.si-fil.com/confluence/display/JFROG/Bash helmVersion: <2 | 3> #可选,默认为2 namespace: #可选,部署到其中的namespace flags: # optional valuefileppaths: # optional - <路径和文件名> releaseName: chartPath: <路径字符串> #可选,可能需要某些输入资源chartName: <路径字符串> #可选,可能需要某些输入资源chartVersion:2022世界杯阿根廷预选赛赛程 #可选,可能需要某些输入资源dryRun: #可选,仅部署如果2022世界杯阿根廷预选赛赛程dryRun是成功lint: # lints图表升级前,默认false lintFlags: "——strict " test: #运行helm测试升级后,默认false testFlags: "——parallel "集成:- name: # required inputResources: - name: # required,从这个列表中需要一个输入资源# HelmChart和GitRepo输入资源被允许一起执行:onStart: - echo“准备工作…”onSuccess: - echo“工作2022世界杯阿根廷预选赛赛程做得好!”onFailure: - echo“呃哦,出错了”onComplete: #always - echo“清理一些东西”
标签
的名字
一个字母数字字符串(允许使用下划线),用于标识步骤。
类型
必须HelmDeploy
对于这个步骤类型。
配置
指定步骤执行环境的所有配置选择。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
集成 |
必须指定Kubernetes集成. 或 必须指定Artifactory集成当 |
要求 可能需要 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定HelmChart,GitRepo,文件规范,BuildInfo或ReleaseBundle资源,其中包含舵图。 |
要求 |
从Bash派生的标记
此外,可以定义这些标记来支持该步骤的本机操作:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
helmVersion |
表示要使用的Helm的主要版本的数字。可以是2或3。默认值为2。 | 可选 |
名称空间 |
要部署到的名称空间。这将被添加到deploy命令作为——名称空间 参数。 |
可选 |
旗帜 |
Helm命令中包含的标志字符串。例如:"——set key= ' value ' -f myTestValues.yaml" | 可选 |
valueFilePaths |
对象的——values (-f)选项一起指定YAML文件的值舵安装命令。 指定文件中引用的所有环境变量将自动替换为匹配的运行时环境变量的值。 |
可选 |
releaseName |
发布名称。类的——name (-n)选项舵安装命令。 |
要求 |
chartPath |
通往掌舵的路径图在 当指定了HelmChart资源时不要使用。 |
可能需要 |
chartName |
掌舵图的名字
当指定了HelmChart/GitRepo资源或当输入资源不是Artifactory Helm存储库时,请不要使用。
|
可能需要 |
chartVersion |
掌舵图的名字
当指定了HelmChart/GitRepo资源或当输入资源不是Artifactory Helm存储库时,请不要使用。
|
可能需要 |
dryRun |
当真正的,只有在——dry-run install模拟成功时才部署。 默认为 |
可选 |
线头 |
当设置为真正的,执行线头检查图表以找出可能的问题。 默认为 |
可选 |
lintFlags |
对象要传递的标志字符串执掌线头 命令。 |
可选 |
测验 |
当设置为真正的,执行测验为发布运行测试。 默认为 |
可选 |
testFlags |
对象要传递的标志字符串执掌测试 命令。 |
可选 |
执行
声明在执行前和执行后阶段执行的shell命令序列集合:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成后执行的命令 | 可选 |
onFailure |
在完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
对象执行的操作onExecute
阶段是此步骤类型固有的,不能被覆盖。
保留关键字
onExecute
,onStart
,调用onSuccess
,onFailure
,onComplete
是保留的关键字。在执行脚本的任何其他上下文中使用这些关键字都可能导致意外行为。
例子
下面的示例展示如何配置HelmDeploy步骤。
Helm 3和HelmChart资源输入
使用Helm 3和HelmChart资源输入的HelmDeploy步骤。
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace releaseName: myHelmRelease integrations:—name: kubernetes_integration inputResources:—name: 2022世界杯阿根廷预选赛赛程helmChartResource
排练
使用Helm 3和HelmChart资源输入值文件的HelmDeploy步骤,并在部署前进行演练。
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace releaseName: myHelmRelease dryRun: true valuefileppaths:—values/values1. 2Yaml - values/values2。yaml集成:—name: kubernetes_integration inputResources:—na2022世界杯阿根廷预选赛赛程me: helmChartResource
GitRepo输入
一个带有GitRepo输入的HelmDeploy步骤,而不是HelmChart和lint和测试命令。
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" releaseName: myHelmRelease lint: true lintFlags: "——strict" test: true testFlags: "——parallel" valuefileppaths: - values/values1. "Yaml - values/values2。yaml集成:—name: kubernetes_integration inputResources:—na2022世界杯阿根廷预选赛赛程me: gitRepoResource
文件规范输入
一个带有FileSpec输入资源的HelmDeploy步骤。在使用FileSpec输入资源时,请使用chartPath
属性指定Helm图表文件在FileSpec资源中的位置。如果FileSpec表示Artifactory中包含Helm图表的Generic存储库,则使用以下配置作为参考:
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" releaseName: myHelmRelease lint: true lintFlags: "——strict" test: true testFlags: "——parallel" valuefileppaths: - values/values1. "Yaml - values/values2。yaml集成:—name: kubernetes_integration inputResources:—na2022世界杯阿根廷预选赛赛程me: fileSpecResource
如果FileSpec输入资源表示Artifactory中的Helm存储库,您也需要这样做提供chartName
而且chartVersion
配置属性:
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" chartName: "myChartName" chartVersion: 0.0.1 releaseName: myHelmRelease lint: true lintFlags: "--strict" test: true testFlags: "--parallel" valueFilePaths: - values/values1.yaml - values/values2.yaml integrations: - name: kubernetes_integration inputResources: - name: fileSpecResource
BuildInfo输入
带有BuildInfo输入资源的HelmDeploy步骤。在使用BuildInfo输入资源时,使用chartPath
属性指定Helm图文件在BuildInfo资源中的位置。如果BuildInfo表示Artifactory中包含Helm图表的通用存储库,则使用以下配置作为参考:
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" releaseName: myHelmRelease lint: true lintFlags: "——strict" test: true testFlags: "——parallel" valuefileppaths: - values/values1. "Yaml - values/values2。yaml集成:—name: kubernetes_integration inputResources:—na2022世界杯阿根廷预选赛赛程me: buildInfoResource
如果BuildInfo输入资源表示Artifactory中的Helm存储库,您也需要这样做提供chartName
而且chartVersion
配置属性:
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" chartName: "myChartName" chartVersion: 0.0.1 releaseName: myHelmRelease lint: true lintFlags: "--strict" test: true testFlags: "--parallel" valueFilePaths: - values/values1.yaml - values/values2.yaml integrations: - name: kubernetes_integration inputResources: - name: buildInfoResource
ReleaseBundle输入
带有ReleaseBundle输入资源的HelmDeploy步骤。当使用ReleaseBundle输入资源时,你需要指定Helm图表文件在ReleaseBundle资源中的位置chartPath财产。
如果ReleaseBundle在Artifactory中表示一个包含Helm图表的通用存储库,请使用以下配置作为参考:
需要人工集成
您必须指定Artifactory集成当ReleaseBundle
是inputResource
来HelmDeploy
的一步。此集成将指向将作为下载此步骤中使用的ReleaseBundle的源的工件。
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" releaseName: myHelmRelease lint: true lintFlags: "——strict" test: true testFlags: "——parallel" valuefileppaths: - values/values1. "Yaml - values/values2。yaml集成:—name: kubernetes_integration—name: artifactory_integration inputResources:—name2022世界杯阿根廷预选赛赛程: releaseBundleResource
如果ReleaseBundle输入资源代表Artifactory中的Helm存储库,您还必须指定chartName而且chartVersion配置属性:
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 3 namespace: my-namespace chartPath: "。/myChart" chartName: "myChartName" chartVersion: 0.0.1 releaseName: myHelmRelease lint: true lintFlags: "--strict" test: true testFlags: "--parallel" valueFilePaths: - values/values1.yaml - values/values2.yaml integrations: - name: kubernetes_integration - name: artifactory_integration inputResources: - name: releaseBundleResource
执掌2
使用Helm 2的HelmDeploy步骤。
管线:—name: helmDeployPipeline步骤:—name: helmDeployStep type: HelmDeploy configuration: helmVersion: 2 namespace: my-namespace releaseName: myHelmRelease integrations:—name: kubernetes_integration inputResources:—name: 2022世界杯阿根廷预选赛赛程helmChartResource
工作原理
当你使用HelmDeploy管道中的本机步骤,它在后台执行以下功能:
- Helm init—仅面向客户端(如果Helm版本为2)
- jfrog rt配置(如果有一个HelmChart资源输入,使用Artifactory凭证配置jfrog CLI)
- jfrog rt使用(如果有HelmChart资源输入,设置当前默认的Artifactory配置)
- 执掌取回(如果有HelmChart资源输入,Helm版本为2,获取图表)
- 执掌拉(如果有HelmChart资源输入,Helm版本为3,获取图表)
- replace_envs(如果有valuefilepath,替换变量占位符)
- 头盔绒线(如果绒线为真)
- helm—dry-run(如果dryRun为真)
- 舵(部署)
- 头盔测试(如果测试为真)