#secret #kubernetes #kubectl #kubes

app kubesm

一个无需将秘密保存到磁盘上即可创建 Kubernetes 秘密对象的工具

3 个稳定版本

使用旧的 Rust 2015

1.1.0 2017年12月20日
1.0.1 2017年12月12日
1.0.0 2017年12月11日

#1980开发工具

MIT 许可证

7KB
77

Kubernetes Secret Maker

GitHub release GitHub license CircleCI Crates.io Docker Pulls

问题

  • 您想在 Kubernetes 集群内部放置秘密
  • 您想以干净可重复的方式进行
  • 您不希望将那些秘密留在文件中

解决方案

  • 临时将秘密放入环境变量中
  • 在标准输出上生成一个秘密文件
  • 将其管道传输到 kubectl apply -f -

用法

您可以通过 Rust 的 Cargo 使用此工具

$ cargo install kubesm
$ NAME=test SK_MY_SECRET="my secret" kubesm | kubectl apply -f -

或者使用 Docker

$ docker run --rm -e NAME=test -e SK_MY_SECRET="my secret" apolitical/kubesm | kubectl apply -f -

为了增加安全性,您可以让您的 shell 不要记住以空格开头的命令。

$ HISTCONTROL=ignorespace
$  NAME=test SK_MY_SECRET="my secret" kubesm | kubectl apply -f -
  ^ extra space

工作原理

为将要创建的资源提供一个 NAME,每个秘密应该以 SK_ 前缀,但在输出时将删除它。您可以提供可选的 NAMESPACE,但这不是必需的。以下只是输出的样子

$ NAME=test NAMESPACE=test-namespace SK_MY_SECRET="my secret" kubesm
---
apiVersion: v1
kind: Secret
metadata:
  name: test
  namespace: "test-namespace"
type: Opaque
data:
  MY_SECRET: bXkgc2VjcmV0

限制

上述内容大部分是静态存储在二进制文件中的。目前 apiVersiontype 中没有灵活性。

贡献

如果您想帮忙,那太棒了!请查看我们的 贡献指南。我们还遵守 行为准则,所以请查看一下,其中包含有关如果您有任何担忧应联系谁的信息。

依赖项

~1.3–2MB
~44K SLoC