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





概述

方法的示例管道HelmPublish而且HelmDeploy使用Helm图将Artifactory中的Docker注册表中的单个映像部署到Kubernetes集群的本机步骤。

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

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

示例管道需要以下集成:

页面内容


创建舵图

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

Chart.yml
apiVersion: v1 appVersion: "1.0" description: A Helm chart for Kubernetes name: simplehelm version: 0.1.0

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

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

存储库而且标签标识Docker映像名称和标记的字段被设置为环境变量。这些参考了imageName而且imageTag的属性图像资源为Docker映像。

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

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


码头工人形象

Helm部署将从Docker注册表中抽取一个映像来编排到Kubernetes集群中。

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

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

我们的2022世界杯阿根廷预选赛赛程定义将指定:

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


2022世界杯阿根廷预选赛赛程
—名称:simplehelmRepo_docker类型:GitRepo配置:gitProvider: my_github路径:myrepo/simplehelm文件:包括:“Dockerfile|server.js|包”。- name: simplehelmDockerImage type:镜像配置:注册表:myDocker imageName: myproject/simplehelm imageTag:最新

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

步骤
—name: build_image type: DockerBuild配置:affinityGroup: buildAndPush集成:—name: myDocker inputResources:—name: simplehelm2022世界杯阿根廷预选赛赛程Repo_docker dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: myproject/simplehelm dockerImageTag: $run_number - name: push_image type: DockerPush配置:affinityGroup: buildAndPush集成:- name: myDocker targetRepository: myproject/simplehelm inputSteps: - name: build_image outputResources: - name: simple2022世界杯阿根廷预选赛赛程helmDockerImage

发布舵图

示例管道使用HelmPublish在Artifactory中发布Helm图表及其同伴文件到Helm存储库的原生步骤。

我们的2022世界杯阿根廷预选赛赛程定义将指定:

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


2022世界杯阿根廷预选赛赛程
—name: simplehelmRepo_chart type: GitRepo configuration: gitProvider: my_github path: myrepo/simplehelm文件:包括:"simplehelm. exe "-名称:simplehelmChart类型:HelmChart配置:sourceArtifactory:美术库:simplecharts图表:simplehelm版本:0.0.0

利用这些资源,我们2022世界杯阿根廷预选赛赛程HelmPublish本机步骤将赫尔姆图从源存储库发布到Artifactory存储库。(注意,按照配置,此步骤不会发布构建信息。)

一步
—name: publish_helm_chart type: HelmPublish configuration: inputR2022世界杯阿根廷预选赛赛程esources:—name: simplehelmRepo_chart outputResources:—name: simplehelmChart chartPath: ./simplehelm . txt

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


带舵部署

示例管道使用HelmDeploy本机步骤部署映像到Kubernetes。

HelmDeploy原生步将:

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


一步
—name: deploy_helm_chart type: HelmDeploy configuration: integrations:—name: tr_kubernetes inputRes2022世界杯阿根廷预选赛赛程ources:—name: simplehelmChart—name: simplehelmDockerImage releaseName: simplehelm flags: "——namespace dev" valuefileppaths: - values.yaml

注意,镜像资源不是HelmDeploy所要求的input2022世界杯阿根廷预选赛赛程resources.HelmDeploy需要的唯一资源是一个HelmChart。

我们包括simplehelmDockerImage所以它imageName而且imageTag属性作为环境变量可用于该步骤。这使得HelmDeploy步骤可以在values.yml舵图文件。

更换后,将values.ymlHelm使用的可能是(如果运行1):

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

从Git存储库部署HelmDeploy

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

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

  1. 跳过HelmPublish步骤
  2. 的管道DSL中deploy_helm_chart步,在input2022世界杯阿根廷预选赛赛程resources部分替换simplehelmChart的HelmChart资源simplehelmRepo_chartGitRepo资源。

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


完整的示例

下面是示例管道的完整管道DSL,供您参考。

pipelines.2022世界杯阿根廷预选赛赛程resources.yml
—名称:simplehelmRepo_docker类型:GitRepo配置:gitProvider: my_github路径:myrepo/simplehelm文件:包括:“Dockerfile|server.js|包”。- name: simplehelmDockerImage type:镜像配置:注册表:myDocker imageName: myproject/simplehelm imageTag:最新—name: simplehelmRepo_chart type: GitRepo configuration: gitProvider: my_github path: myrepo/simplehelm文件:包括:"simplehelm. exe "-名称:simplehelmChart类型:HelmChart配置:sourceArtifactory:美术库:simplecharts图表:simplehelm版本:0.0.0
pipelines.steps.yml
管道:—name: helm_full_flow步骤:—name: build_image类型:DockerBuild配置:affinityGroup: buildAndPush集成:—name: myDocker inputResources:—name: simplehelmRepo_docker docker2022世界杯阿根廷预选赛赛程FileLocation:。dockerFileName: Dockerfile dockerImageName: myproject/simplehelm dockerImageTag: $run_number - name: push_image类型:DockerPush配置:affinityGroup: buildAndPush集成:- name: myDocker targetRepository: myproject/simplehelm inputSteps: - name: build_image outputResources: - name: simplehelm2022世界杯阿根廷预选赛赛程DockerImage - name: publish_helm_chart类型:HelmPublish配置:inputResources: - name: simplehelmChart chartPath: ./simplehelm - name:deploy_helm_chart type: HelmDeploy配置:integrations:—name: tr_kubernetes inputResources:—name2022世界杯阿根廷预选赛赛程: simplehelmChart -name: simplehelmDockerImage releaseName: simplehelm flags: "——namespace dev" valuefileppaths: - values.yaml
  • 没有标签
版权所有©2022 JFrog Ltd.