Вы можете использовать kubernetes-secret-generator . Я проверил это, и он делает именно то, что вам нужно.
Чтобы выполнить sh, у вас должен быть helm в вашем кластере, и следуйте этим инструкциям:
Клон репозитория
$ git clone https://github.com/mittwald/kubernetes-secret-generator
Создание развертывания helm
$ helm upgrade --install secret-generator ./deploy/chart
Теперь, чтобы использовать его, вам просто нужно
Добавить аннотацию secret-generator.v1.mittwald.de/autogenerate
к любому секретному объекту Kubernetes. Значением аннотации может быть имя поля (или разделенный запятыми список имена полей) в пределах секрета; SecretGeneratorController подберет эту аннотацию и добавит поле [или поля] (password
в примере ниже) к секрету со случайно сгенерированным строковым значением. Начиная с здесь .
$ kubectl apply -f mysecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
annotations:
secret-generator.v1.mittwald.de/autogenerate: password
data:
username: UGxlYXNlQWNjZXB0Cg==
После применения этого секрета вы можете взглянуть на него, чтобы проверить, сгенерирован ли пароль, как ожидалось:
$ kubectl get secrets mysecret -o yaml
apiVersion: v1
data:
password: dnVKTDBJZ0tFS1BacmtTMnBuc3d2YWs2YlZsZ0xPTUFKdStDa3dwUQ==
username: UGxlYXNlQWNjZXB0Cg==
kind: Secret
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","data":{"username":"UGxlYXNlQWNjZXB0Cg=="},"kind":"Secret","metadata":{"annotations":{"secret-generator.v1.mittwald.de/autogenerate":"password"},"name":"mysecret","namespace":"default"}}
secret-generator.v1.mittwald.de/autogenerate: password
secret-generator.v1.mittwald.de/autogenerate-generated-at: 2020-01-09 14:29:44.397648062
+0000 UTC m=+664.011602557
secret-generator.v1.mittwald.de/secure: "yes"
creationTimestamp: "2020-01-09T14:29:44Z"
name: mysecret
namespace: default
resourceVersion: "297425"
selfLink: /api/v1/namespaces/default/secrets/mysecret
uid: 7ae42d71-32ec-11ea-92b3-42010a800009
type: Opaque
Как мы видим, пароль сгенерирован и зашифрован так, как вам нужно.