k8s Secret base64 configMap
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s Secret base64 configMap相关的知识,希望对你有一定的参考价值。
参考技术A kubectl get --help|grep apiUse "kubectl api-resources" for a complete list of supported resources.
Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec 中。Secret 可以以 Volume 或者以环境变量的方式使用。
Secret 类型:
1 kubernetes.io/service-account-token
Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,
并且会自动挂载到 Pod 的 /var/run/secrets/kubernetes.io/serviceaccount 目录中;
2 Opaque :base64 编码格式的 Secret,用来存储密码、密钥等;
今天说下第二个这种有坑,base64加密的时候结尾换行问题
Opaque 类型的数据是一个 map 类型,要求 value 是 base64 编码格式
查看下
kubectl get secrets my-secret -n alex -o yaml
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
"apiVersion":"v1","data":"test-pw.p12":"YWRtaW4=","test-pw.p12.pwd":"cGFzc3dvcmQ=","kind":"Secret","metadata":"annotations":,"name":"my-secret","namespace":"alex","type":"Opaque"
Mandatory arguments to long options are mandatory for short options too.
shell kubectl get cm -n alex
NAME DATA AGE
test-common-sb-conf 1 8m32s
3
kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证
详细可以参考
https://docs.docker.com/registry/introduction/
我推送的的测试脚本
Rails 6 secret_key_base 与 secret_token
【中文标题】Rails 6 secret_key_base 与 secret_token【英文标题】:Rails 6 secret_key_base vs secret_token 【发布时间】:2021-12-06 21:00:55 【问题描述】:这可能是一个幼稚的问题,但我是 Ruby 新手,感谢任何指导。 我正在升级我的应用程序以使用 Rails 6
我的 secret_token.rb 目前有
MyApp::Application.config.secret_token = ENV['SECRET_TOKEN'] || SecureRandom.hex(128)
https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml 说“使用你现有的 secret_token.rb 初始化程序中的 secret_key_base 为在生产中运行 Rails 应用程序的任何用户设置 SECRET_KEY_BASE 环境变量。”
我没有看到在任何地方设置了 secret_key_base。 config.secret_key_base 是否只是重命名了 config.secret_token 的版本,我可以像这样在 secrets.yml 文件中设置 ENV['SECRET_TOKEN']
production:
secret_key_base: ENV['SECRET_TOKEN']
【问题讨论】:
【参考方案1】:您的 secrets.yml
文件在 Rails 6 中将不再有效。相反,您将拥有一个加密的凭据文件。
您可以使用rails credentials:edit
创建文件。您将看到一条错误消息,其中包含基于您的编辑软件的建议命令。剪切并粘贴建议。
您将在这里存储所有密钥/令牌/等。
您可以通过Rails.application.credentials.secret_token
或Rails.application.credentials.aws[:secret_access_token]
访问它们
根据您上面的 cmets,听起来您需要将 config.secret_token
更改为 config.secret_key_base
,并将其设置为等于您的 secret_key_base 变量,如下所示:
YourApp::Application.config.secret_key_base = Rails.application.credentials.dig(Rails.env.to_sym, :secret_key_base)
这假设您的 credentials.yml.enc
文件具有以下设置:
production:
secret_key_base: a;sodkfjas;odkjfa;sodkjf
development:
secret_key_base: pqweiurwoeiurwopeiruowu
aws:
secret_access_token: mncMXncXMnc>KMXnc>KNc
【讨论】:
以上是关于k8s Secret base64 configMap的主要内容,如果未能解决你的问题,请参考以下文章