Zadig这个DevOps平台为我们日常的服务CI/CD流程带来了极大便利,总体体验不错,诸多自动化流程特性比较完善,让我们部门获得了类似大厂才有的基础设施,希望Zadig在DevOps能够发展壮大,给中国的开源社区蹚出一条康庄大道。
当然咯,Zadig在路上,各用户在实践自己的DevOps有着自己独特的使用方式,众口难调,难免会碰到有些特性无法满足各种场景需求的情况。
比如我们部门为了方便数百个业务服务在k8s集群中的部署,定义了几套基础的Helm Chart模板,各服务作为Release拥有自己的Helm Values,而绝大多数服务都有自己的ConfigMap,这也是在Values定义的,类似如下:
最近为了减少因为服务错配所导致的问题排查时间的耗散,我们将values配置全部搬迁到GitLab上,纵向可以呈现服务配置的历史变化轨迹,横向可以比对各个环境的配置差异。
但是实践过程发现类似如下问题,点击"从代码库导入":
从代码仓中导入服务配置后:
如上,在gitlab中格式非常规整的Values全部被字符串化折叠了,很影响使用体验,虽然不会影响到k8s中服务的正常部署。
希望改善下此处的体验 。
最后,有个特性上的建议:
在Zadig中,项目有自己应用级别的全局配置,而各个环境拥有自己的环境级别的配置,而每个服务除了拥有托底的服务配置,在各个环境中还有部分差异配置条目,任何一个级别的配置变更,Zadig都能很好地智能化合并处理,该特性十分nice 。
然而我们遇到的问题,还是在values是使用内嵌yaml内容带来的,目前Zadig没法处理这种使用情形下的merge——让我们使用方,即便在使用内嵌values时,也可以就特定环境仅仅配置差异成分。
若诸多Zadig用户遇到类似问题,该场景的merge特性也许可以提供下。