JFrog帮助中心

我们的新门户即将推出!
文档+知识库





JFrog帮助中心-新的知识体验即将到来!



概述

的示例管道HelmPublishHelmDeploy使用Helm图将一个镜像从Artifactory中的Docker注册表部署到Kubernetes集群。

是Kubernetes应用程序的包管理器。通过Helm图表,您可以通过Helm客户端使用简单的命令描述应用程序结构并对其进行管理。

pipeline中的本地步骤调用Helm客户端来使用Helm图表执行部署任务。

示例管道需要以下集成:

页面内容


创建掌舵图

首先,我们创建了一个非常简单的Helm图表,将其存储在GitRepo源存储库:

Chart.yml
apiVersion: v1 appVersion: "1.0"描述:Kubernetes的Helm表名称:simplehelm版本:0.1.0

我们使用同伴values.yml文件指定详细信息,包括标识要部署哪个Docker映像的信息。

values.yml
replicaccount: 1 image: repository: ${res_simplehelmDockerImage_imageName} tag: ${res_simplehelmDockerImage_imageTag} pullPolicy: IfNotPresent端口:80 ....

存储库标签标识Docker镜像名称和标签的字段设置为环境变量。这些引用了imageNameimageTag的性质图像Docker镜像的资源。

当我们的管道运行时HelmDeploystep会自动将这些环境变量引用替换为Image资源中的值,这样就可以通过Helm部署正确的Docker镜像。

有关创建Helm图表的详细信息,请参见舵图模板指南


码头工人形象

Helm部署将从Docker注册表中提取镜像,以编排到Kubernetes集群。

您可能希望构建Docker映像并将其作为管道的一部分推送到注册表中。如果是,您可以使用DockerBuildDockerPush本机的步骤。

如果要部署的映像已经在Docker注册表中可用,那么可以跳过这个过程。然而,你仍然需要一个图像资源,该资源指定注册表中的映像。

我们的2022世界杯阿根廷预选赛赛程定义将具体说明:

  • simplehelmRepo_docker- - -GitRepoDockerfile所在的源存储库
  • simplehelmDockerImage——一个图像Docker镜像的资源,该镜像将被构建并推送到Artifactory中的Docker注册表中


2022世界杯阿根廷预选赛赛程
-名称:simplehelmRepo_docker类型:GitRepo配置:gitProvider: my_github路径:myrepo/simplehelm文件:include: "Dockerfile|server.js|package. "- name: simplehelmDockerImage类型:Image配置:registry: myDocker imageName: myproject/simplehelm imageTag: latest . json

使用这些资源,管道将构建2022世界杯阿根廷预选赛赛程Docker映像并将其推送到Artifactory中的注册表中。

步骤
—名称:build_image类型:DockerBuild配置:affinityGroup: buildAndPush集成:—名称:myDocker inputResources:—名称:simplehelmRepo_docker d2022世界杯阿根廷预选赛赛程ockerFileLocation:。dockerFileName: Dockerfile dockerImageName: myproject/simplehelm dockerImageTag: $run_number -名称:push_image类型:DockerPush配置:affinityGroup: buildAndPush集成:-名称:myDocker targetRepository: myproject/simplehelm inputSteps: -名称:build_image outputResources: -名称:simplehelmDockerImage . Do2022世界杯阿根廷预选赛赛程ckerfile dockerImageName: myproject/simplehelm

发布舵图

示例管道使用HelmPublish将Helm图表及其配套文件发布到Artifactory中的Helm存储库。

我们的2022世界杯阿根廷预选赛赛程定义将具体说明:

  • simplehelmRepo_chart- - -GitRepo源代码存储库,其中存储了上面显示的Helm图表。
  • simpleHelmChart——一个HelmChart资源,表示在Artifactory中发布的Helm图表。它指定Artifactory存储库、图表名称和发布版本。


2022世界杯阿根廷预选赛赛程
-名称:simplehelmRepo_chart类型:GitRepo配置:gitProvider: my_github路径:myrepo/simplehelm文件:include: "simplehelm. "*" -名称:simplehelmChart类型:HelmChart配置:sourceArtifactory:艺术存储库:simplecharts图表:simplehelm版本:0.0.0

利用这些资源2022世界杯阿根廷预选赛赛程HelmPublishnative步骤将把Helm图从源存储库发布到Artifactory存储库。(请注意,配置的这一步不会发布构建信息。)

一步
—name: publish_helm_chart类型:HelmPublish配置:inputResources:—name: s2022世界杯阿根廷预选赛赛程implehelmRepo_chart outputResources:—name: simplehelmChart chartPath: ./simplehelm . net

本机步骤使用执掌包命令执行发布,因此所有图表文件(Chart.yml,values.yml)将作为一个单元出版。


带舵部署

示例管道使用HelmDeploy将映像部署到Kubernetes的原生步骤。

HelmDeploy原生步骤将:

  1. 使用simplehelmChart资源从Artifactory拉出Helm图表
  2. 中的所有环境变量values.yml他们的价值观来自simplehelmDockerImage资源
  3. 执行执掌升级命令来部署simplehelmDockerImage从Docker存储库到Kubernetes集群


一步
—名称:deploy_helm_chart类型:HelmDeploy配置:integrations:—名称:tr_kubernetes inputResources:—名称:simplehelmCh2022世界杯阿根廷预选赛赛程art—名称:simplehelmDockerImage releaseName: simplehelm flags: "——namespace dev" valuefileppaths:—values.yaml

注意,HelmDeploy并不要求Image资源在其input2022世界杯阿根廷预选赛赛程resources。HelmDeploy需要的唯一资源是一个HelmChart。

我们包括simplehelmDockerImage所以它。imageNameimageTag属性可以作为环境变量提供给步骤。控件中那些环境变量的替换就可以在HelmDeploy步骤中执行values.yml舵图文件。

更换后的values.ymlHelm使用的可能显示为(如果运行1):

values.yml(after replacement)
replicaccount: 1 image: repository: myproject/simplehelm tag: 1 pullPolicy: IfNotPresent端口:80 ....

从Git存储库HelmDeploy

我们建议将您的舵机图表推送到具有可追踪元数据的Artifactory。但是,HelmDeploy步骤可以直接使用Git源存储库中的Helm图表。

使用Git存储库中的Helm图进行部署,而不将其推送到Artifactory:

  1. 跳过HelmPublish步骤
  2. 的管道DSL中deploy_helm_chart第一步,在input2022世界杯阿根廷预选赛赛程resources部分取代simplehelmChartHelmChart资源simplehelmRepo_chartGitRepo资源。

操作将产生相同的结果,包括替换中的环境变量values.yml。


完整的示例

作为参考,这里是示例管道的完整pipeline DSL。

pipelines.2022世界杯阿根廷预选赛赛程resources.yml
-名称:simplehelmRepo_docker类型:GitRepo配置:gitProvider: my_github路径:myrepo/simplehelm文件:include: "Dockerfile|server.js|package. "- name: simplehelmDockerImage类型:Image配置:registry: myDocker imageName: myproject/simplehelm imageTag: latest . json-名称:simplehelmRepo_chart类型:GitRepo配置:gitProvider: my_github路径:myrepo/simplehelm文件:include: "simplehelm. "*" -名称:simplehelmChart类型:HelmChart配置:sourceArtifactory:艺术存储库:simplecharts图表:simplehelm版本:0.0.0
pipelines.steps.yml
—名称:helm_full_flow步骤:—名称:build_image类型:DockerBuild配置:affinityGroup: buildAndPush集成:—名称:myDocker inputResources:—名称:simplehelmRepo_docker dockerFileLocation:。2022世界杯阿根廷预选赛赛程dockerFileName: Dockerfile dockerImageName: myproject/simplehelm dockerImageTag: $run_number -名称:push_image类型:DockerPush配置:affinityGroup: buildAndPush集成:-名称:myDocker targetRepository: myproject/simplehelm inputSteps: -名称:build_image outputResources: -名称:simplehelmDockerImage -名称:2022世界杯阿根廷预选赛赛程publish_helm_chart类型:HelmPublish配置:inputResources: -名称:simplehelmRepo_chart outputResources: -名称:simplehelmChart chartPath: ./simplehelm -名称:deploy_helm_chart类型:HelmDeploy配置:集成:-名称:tr_kubernetes inputResources: -名称:simplehelmChart -2022世界杯阿根廷预选赛赛程名称:simplehelmDockerImage releaseName: simplehelm flags: "——namespace dev" valuefileppaths: - values.yaml
  • 没有标签
版权所有©2023 JFrog Ltd.