云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

HelmDeploy步骤将Docker镜像部署到Kubernetes集群使用Helm图。


通过这个本地步骤部署映像的Helm图可以是:

  • 一个HelmChart资源标识存储在Artifactory存储库中的Helm图HelmPublish
  • 控件标识的源代码存储库中的Helm图GitRepo资源。

在正确配置后,HelmDeploy步骤还执行replace_envs方法下指定的所有文件的操作valueFilePaths标记,用它们的值替换这些文件中的所有环境变量。这使该步骤能够从资源中派生信息,例如从对象中派生图像名称和标记图像,并使用它来执行部署。

HelmDeploy步骤使用执掌升级命令执行部署。

页面内容


YAML模式

HelmDeploy本机步骤的YAML模式如下:

HelmDeploy
管道:- 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集成ReleaseBundleinputResource到台阶。

要求


可能需要

input2022世界杯阿根廷预选赛赛程Resources

必须指定HelmChartGitRepo文件规范BuildInfoReleaseBundle资源,其中包含舵图。
还可以指定类型的第二个输入资源吗GitRepo包含Helm值文件,如果HelmChart作为其他输入资源提供。

要求


此外,可以定义这些标记来支持该步骤的本机操作:

从Bash派生的标记

所有本机步骤都派生自Bash的一步。这意味着所有步骤共享来自Bash的相同基本标记集,而本机步骤也有自己的附加标记,这些标记支持该步骤的特定功能。所以熟悉这个很重要Bash步骤定义,因为它是所有其他步骤定义的核心。

标签

使用说明

必需的/可选
helmVersion 表示要使用的Helm的主要版本的数字。可以是2或3。默认值为2。 可选
名称空间 要部署到的名称空间。这将被添加到deploy命令作为——名称空间参数。 可选
旗帜 Helm命令中包含的标志字符串。例如:"——set key= ' value ' -f myTestValues.yaml" 可选
valueFilePaths

对象的——values (-f)选项一起指定YAML文件的值舵安装命令。

指定文件中引用的所有环境变量将自动替换为匹配的运行时环境变量的值。

可选
releaseName

发布名称。类的——name (-n)选项舵安装命令。

要求
chartPath

通往掌舵的路径图在GitRepo /文件规范/ BuildInfo / ReleaseBundle指定的资源input2022世界杯阿根廷预选赛赛程Resources

当指定了HelmChart资源时不要使用。

可能需要
chartName

掌舵图的名字文件规范/ BuildInfo / ReleaseBundle指定的资源input2022世界杯阿根廷预选赛赛程Resources

当指定了HelmChart/GitRepo资源或当输入资源不是Artifactory Helm存储库时,请不要使用。
可能需要
chartVersion

掌舵图的名字文件规范/ BuildInfo / ReleaseBundle指定的资源input2022世界杯阿根廷预选赛赛程Resources

当指定了HelmChart/GitRepo资源或当输入资源不是Artifactory Helm存储库时,请不要使用。
可能需要
dryRun

真正的,只有在——dry-run install模拟成功时才部署。

默认为

可选
线头

当设置为真正的,执行线头检查图表以找出可能的问题。

默认为

可选
lintFlags 对象要传递的标志字符串执掌线头命令。 可选
测验

当设置为真正的,执行测验为发布运行测试。

默认为

可选
testFlags 对象要传递的标志字符串执掌测试命令。 可选

执行

声明在执行前和执行后阶段执行的shell命令序列集合:

标签

使用说明

必需的/可选
onStart 在本机操作之前执行的命令 可选
调用onSuccess 成功完成后执行的命令 可选
onFailure 在完成失败时执行的命令 可选
onComplete 在任何补全时执行的命令 可选

对象执行的操作onExecute阶段是此步骤类型固有的,不能被覆盖。


例子

下面的示例展示如何配置HelmDeploy步骤。

Helm 3和HelmChart资源输入

使用Helm 3和HelmChart资源输入的HelmDeploy步骤。

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步骤,并在部署前进行演练。

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和测试命令。

HelmDeploy
管线:—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存储库,则使用以下配置作为参考:

HelmDeploy
管线:—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配置属性:

HelmDeploy
管线:—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图表的通用存储库,则使用以下配置作为参考:

HelmDeploy
管线:—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配置属性:

HelmDeploy
管线:—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集成ReleaseBundleinputResourceHelmDeploy的一步。此集成将指向将作为下载此步骤中使用的ReleaseBundle的源的工件。

HelmDeploy
管线:—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配置属性:

HelmDeploy
管线:—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步骤。

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为真)
  • 舵(部署)
  • 头盔测试(如果测试为真)
  • 没有标签
版权所有©2022 JFrog Ltd.