我是一个新手,刚刚开始使用giitlab的auto devops。
我有一个非常基本的Golang微服务,我可以部署它-它使用默认的开箱式helm图表(创建命名空间,服务,部署,docker注册管理),我提供了我自己的Dockerfiles来构建docker映像。
问题:
我如何读取现有的K8 ConfigMap条目作为环境变量到微服务,而不提供自定义舵图?ConfigMap是由其他进程在不同的名称空间中创建的
我如何覆盖应该部署微服务的命名空间而不创建新的命名空间?我希望多个微服务被部署到同一个命名空间中——我不希望每个存储库都有不同的命名空间。
基本上我不想提供自定义的掌舵图,因为我认为如果我提供自定义的图表,那么我还需要在K8集群上完成设置docker注册表的完整设置-我想避免这种情况,我想自定义我的应用程序组件,服务类型(我不想要ClusterIP),更改命名空间,将configMap作为环境变量-而不为我的基本基于golang的微服务创建自定义的掌舵图。
看看GitLab 15.6(十一月2022)是否可以帮助您的情况:
使用Auto Deploy图将
ConfigMap
挂载到卷上默认的Auto Deploy Helm图现在支持
extraVolumes
和extraVolumeMounts
选项。在过去的版本中,你只能为Kubernetes指定持久卷。
在其他用例中,您现在可以挂载:
- 秘密和ConfigMaps作为文件到部署、CronJobs和worker。
- 现有的或外部的持久卷对部署、CronJobs和worker的声明。
- 使用hostPath挂载私有PKI CA证书,以实现与PKI的信任。
感谢Maik Boltze对社区的贡献。
请参阅文档和问题。