我正在寻找任何代码示例,无需通过CLI调用即可部署Helm图表 . 这背后的原因是:
-
我的公司使用AWS CodePipeline / CodeBuild / CodeDeploy编写了几个现有的管道 . 他们不想调查更多时间重写所有管道 .
-
我的公司没有任何计划仅为部署维护额外的实例 .
-
AWS CodePipeline可以触发Lambda,理论上我可以编写一些Python代码来完成工作,如果Helm提供Python客户端的话 .
目前我从这里窃取了Lambda函数:
https://github.com/aws-samples/aws-kube-codesuite
虽然这不提供与Helm相同的级别功能 . 我们必须提供我们的发布名称系统,模板系统等 . 换句话说,如果我对清单进行了大的更改,并且不处理第一次部署(意味着将清单部署到空的K8S集群),它的功能很差 . 我们使用Github,虽然不是很相关 .
对于Helm图表的python客户端,我能找到的最好的是在pip上列出的pyhelm . 但它没有用于调用部署的示例代码,并且从某些用户组/论坛反馈来看,安装过程很痛苦 . 有人也指向azure / draft和另一个repo,但我不知道如何找出一个只使用Python来部署Helm图表的实例 .
请让我知道我想念的地方 . 谢谢 .
2 回答
您可以通过示例和Python3支持找到我的pyhelm分支 .
如何使用Pyhelm
首先,您需要repo_url和图表名称来下载图表
现在你可以看到mongodb的图表文件夹::
下一步构建ChartBuilder实例以使用Tiller进行操作::
安装图表::
我建议使用official python client用于Kubernetes而不是Helm . 它要求您自己编写部署,服务,持久卷等,但是它必须弄清楚如何通过客户端进行集群身份验证以进行更改,但是repo中有几个示例 . 我不太了解AWS Lambda提供有关如何/是否可行的任何信息 .
Helm是一个很棒的产品,但是面向命令行,而不是使用需要GRPC的API . 当然,可以使用Helm原型文件和Python的GRPC客户端为Tiller(Helm的API服务器)创建一个Python库,但似乎没有人 Build 一个在社区中发现牵引力的Python库 .