RabbitMQ Kubernetes Operator - 使用 Secret 设置用户名和密码

问题描述 投票:0回答:1

我正在使用 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_wNSgVBIyMIElsGRrpwb
  • 通过:cGvQ6T-5gRt0Rc4C3AdXdXDB43NRS6FJ
kubernetes rabbitmq
1个回答
2
投票

我想通了。看起来您只需添加一个像下面的示例配置的秘密就可以了。我通过对操作员生成的内容进行逆向工程来解决这个问题。所以,如果这不好,请插话。

要记住的重要事情是

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)

更新

来自文档:https://github.com/rabbitmq/cluster-operator/tree/main/docs/examples/external-admin-secret-credentials

指定此 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
© www.soinside.com 2019 - 2024. All rights reserved.