我正在使用 RabbitMQ Kubernetes operator 作为开发实例,它运行良好。不好的是,操作员生成的凭据对团队中的每个人都是不同的(我猜它会在初始化时生成随机凭据)。
有没有办法提供秘密并让操作员使用这些凭据代替生成的凭据?
山药:
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
name: rabbitmq-cluster-deployment
namespace: message-brokers
spec:
replicas: 1
service:
type: LoadBalancer
理想情况下,我可以配置一些 yaml 以指向一个秘密并从那里开始。但是,很难找到关于这篇文章的文档。
生成的用户名/密码示例:
我想通了。看起来您只需添加一个像下面的示例配置的秘密就可以了。我通过对操作员生成的内容进行逆向工程来解决这个问题。所以,如果这不好,请插话。
要记住的重要事情是
default_user.confg
设置。除此之外,这只是一个秘密。
kind: Secret
apiVersion: v1
metadata:
name: rabbitmq-cluster-deployment-default-user
namespace: message-brokers
stringData:
default_user.conf: |
default_user = user123
default_pass = password123
password: password123
username: user123
type: Opaque
rabbitmq-cluster-deployment-default-user
来自 Deployment mdatadata.name
+ -default-user
(参见有问题的 yaml)
更新
指定此 externalSecret 字段时,默认密码将 不是由集群操作员生成,但 statefulset 将等待 直到生成我的秘密。
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
name: external-secret-user
spec:
service:
type: LoadBalancer
replicas: 1
secretBackend:
externalSecret:
name: "my-secret"
示例秘密:
apiVersion: v1
data:
default_user.conf: ZGVmYXVsdF91c2VyID0gZGVmYXVsdF91c2VyX2htR1pGaGRld3E2NVA0ZElkeDcKZGVmYXVsdF9wYXNzID0gcWM5OG40aUdEN01ZWE1CVkZjSU8ybXRCNXZvRHVWX24K
host: dmF1bHQtZGVmYXVsdC11c2VyLmRlZmF1bHQuc3Zj
password: cWM5OG40aUdEN01ZWE1CVkZjSU8ybXRCNXZvRHVWX24=
port: NTY3Mg==
provider: cmFiYml0bXE=
type: cmFiYml0bXE=
username: ZGVmYXVsdF91c2VyX2htR1pGaGRld3E2NVA0ZElkeDc=
kind: Secret
metadata:
name: my-secret
namespace: rabbitmq-system
type: Opaque