Pulumi用户现可使用GitOps方法管理云计算基础设施

基础设施即程序代码厂商Pulumi发布了一系列Kubernetes项目,目标是要提供用户新的自动化部署功能,并与第三方更好的集成,同时还降低工具使用的难度,让云计算原生开发者,能够更简单地将Kubernetes用于生产中。

这次Pulumi发布了一个新的集群内Pulumi Kubernetes Operator,能让用户以GitOps的方式,管理云计算和Kubernetes集群上的基础设施,该Kubernetes Operator能够通过Git存储库,部署Pulumi更新并且执行Pulumi程序。

Pulumi现在已经与不少第三方CI/CD系统集成,能够自动将云计算设施变更交付到AWS、Azure、GCP与Kubernetes等,官方提到,因为用户要求希望可以利用GitOps交付方法,在Kubernetes中执行自动化交付,因此他们才发布了Kubernetes Operator开源项目。

Kubernetes Operator提供用户一个新的Kubernetes原生基础设施交付方法,让用户可以使用Kubernetes集群中新的Stack CustomResource,指定部署的云计算基础设施,Stack CustomResource可以是任何存储库中的Pulumi程序,并且利用该Pulumi程序来定义基础设施的状态,官方提到,Kubernetes集群不仅能够管理该集群的基础设施,甚至还能管理其他的Kubernetes集群,包括AWS资源、Datadog以及其他Pulumi支持的平台,都可以这种方式管理。

Pulumi还发布了称为crd2pulumi的工具,可以为任何Kubernetes CRD(Custom Resource Definition)创建强类型的API,让用户能够简单地使用云计算原生社群的各种API扩展,目前仅支持TypeScript以及Go,未来还会支持Python和.NET。

官方提到,在Kubernetes生态系统,各项目都通过CustomResources在Kubernetes资源上,构建各种扩展功能,过去Pulumi利用核心Kubernetes API提供了强类型API,但这些强类型API并没有全面对外开放,而现在crd2pulumi工具则提供强类型API丰富的支持,让用户可以直接从CRD的OpenAPI规范,生成强类型程序语言API,并且还会在规范更新时,重新产生这些API。

强类型的好处,是让CRD程序代码可以利用IDE工具,执行类型检查和自动完成等功能,减少程序代码撰写错误,而这些功能在自定义资源管理的基础设施复杂性增加时,将显得特别重要。

另外,Pulumi还推出可以将Kubernetes YAML清单转换为Python、TypeScript、Go或者.NET程序语言的工具kube2pulumi,由于Pulumi支持完整的Kubernetes API,因此kube2pulumi产生的程序代码,就包含了Kubernetes所有功能。用户可以利用kube2pulumi一次转换一个人信息源,或是整个清单文件夹,而且一经转换,用户就能够简单地部署到集群中。

最近Pulumi也强化了互通性,发布了用于持续交付平台Spinnaker的扩展组件,用户可以将相同的云计算原生持续交付平台,同时用于应用程序和基础设施部署上,而且还支持了Kubernetes组件管理工具Helm 3和配置管理工具Kustomize,两者可以作为Pulumi程序的一部分,使用核心Pulumi Kubernetes函数库。