如何编写与指定kubectl命令等效的ConfigMap YAML代码
等效ConfigMap YAML实现
kubectl create configmap mongo-initdb --from-file=init-mongo.js的逻辑是:自动以本地文件名init-mongo.js为ConfigMap的data键,键值为该文件的完整原文,生成的ConfigMap和以下YAML apply后的效果完全一致:
apiVersion: v1 kind: ConfigMap metadata: name: mongo-initdb data: init-mongo.js: | # 此处替换为你本地init-mongo.js文件的全部内容,保持原文件的换行、缩进格式即可 # 常见Mongo初始化脚本示例参考: # db = db.getSiblingDB('appdb'); # db.createUser({ # user: 'app_user', # pwd: 'your_secure_password', # roles: [{ role: 'readWrite', db: 'appdb' }] # });
注意事项
- 不要随意修改data下的
init-mongo.js键名,后续将ConfigMap挂载到Mongo容器的/docker-entrypoint-initdb.d/目录时,键名就是容器内的文件名,改名会导致初始化脚本无法被自动识别执行 - YAML中
|是多行文本标识,会保留后续文本的所有换行、缩进,粘贴原js文件内容时要保证文本整体缩进比init-mongo.js这一行多至少2个空格 - 写完可以做正确性校验:先用原kubectl命令生成临时ConfigMap,执行
kubectl get cm mongo-initdb -o yaml导出配置,和自己编写的YAML对比内容是否一致,确认无误后删除临时生成的ConfigMap,改用YAML方式部署即可
内容的提问来源于stack exchange,提问作者DireRaven
相关产品推荐
相关产品推荐

