如何将Travis中设置的MongoDB Atlas Operator环境变量传递到deploy.sh
问题解答
Travis后台配置的环境变量传递逻辑
你在Travis仓库设置页「Environment Variables」栏配置的变量,会自动注入到整个CI构建流程的运行环境中,deploy.sh作为CI触发执行的脚本,可以直接读取这些变量,不需要在travis.yaml的before_install或其他位置做额外配置,调用逻辑和你当前使用的$SHA变量完全一致。--from-literal的变量解析规则
你担心的--from-literal只传字面量的问题不会出现:Shell的变量展开规则中,双引号包裹的字符串会自动解析内部的$变量,只有单引号包裹的内容才会被当成纯字面量处理。你原来的Secret创建写法完全符合要求,会自动把三个变量替换成对应的值:
kubectl create secret generic mongodb-atlas-operator-api-key \ --from-literal="orgId=$MY_ORG_ID" \ --from-literal="publicApiKey=$MY_PUBLIC_API_KEY" \ --from-literal="privateApiKey=$MY_PRIVATE_API_KEY" \ -n mongodb-atlas-system
- 管道写法的可行性说明
你提供的管道写法无法正常工作,kubectl create secret generic没有--orgId-stdin这类参数。如果确实需要从标准输入传值,标准写法为--from-literal=orgId=$(cat),但当前场景下完全没有必要使用这种写法,直接使用原有双引号写法即可。
内容的提问来源于stack exchange,提问作者Davtho1983
相关产品推荐
相关产品推荐

