我正在使用头盔图来创建容器并将其部署到我的K8集群中。我的一个Pod需要一个带有sdk密钥的配置文件,它才能启动并正常运行。该sdk密钥被视为机密,并存储在AWS机密管理器中。因此,我不想将配置文件烘烤到我的docker映像中。我希望能够在运行时挂载此配置文件。在这种情况下,Configmap似乎是一个不错的选择,除了在舵图安装过程中我无法弄清楚如何从Secrets Manager获取此sdk密钥之外,Configmap似乎是一个不错的选择。我的configmap的一部分看起来像这样
data:
app.conf: |
[sdkkey] # I want to be able to retrieve sdk from aws secrets manager
我一直在寻找编写bash命令以使用aws cli获取机密的方法,但是还没有找到从配置映射中执行bash命令的方法。
有什么想法或替代解决方案吗?
欢呼 K
答案 0 :(得分:1)
tl; dr; 您无法在ConfigMap中执行某些操作,这只是静态清单。请改用init container。
ConfigMaps只是一个静态清单,可以从Kubernetes API中读取或在运行时作为文件或环境变量注入到容器中。无法执行ConfigMap。
给出您的描述,听起来最好的选择是使用init container来检索凭据,并将它们写到与使用凭据的应用程序一起装入容器的共享emptyDir Volume中。