【问题标题】:Is there a way to keep randAlphaNum values consistent in subcharts in Helm?有没有办法让 randAlphaNum 值在 Helm 的子图中保持一致?
【发布时间】:2021-11-24 21:34:31
【问题描述】:

我有一个在 _helpers.ptl 中生成随机密码的主图表。这个随机密码需要被多个子图(db 和 app)使用。

在主图表的_helpers.ptl中:

{{/* Generate db credentials */}}
{{- define "test.dbCredentials" -}}
dbUser: {{ randAlphaNum 16 | quote }}
dbPass: {{ randAlphaNum 32 | quote }}
{{- end }}

主图表的configmap.yml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  {{- include "test.dbCredentials" . | nindent 2 }}

子图的configmap.yml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  {{- include "test.dbCredentials" . | nindent 2 }}

当我调试它时,主图和子图的凭据是不同的。有没有办法在 main 中生成随机值,并将确切的值传递给几个子图表?

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    我需要做一些非常相似的事情:生成一个随机密码,然后将其存储为机密,但同时使用 bcrypt 对其进行散列以用于部署本身。在尝试了一切,包括描述here 和here 的所有解决方案之后,我发现使这项工作的唯一方法是使用单个文件。在我的情况下,我必须在同一个图表中创建密码、哈希、秘密和部署。这是我如何做到的示例摘录:

    {{- $adminPassword := randAlphaNum 42 -}}
    
    # This secret is used to store the user credentials generated.
    apiVersion: v1
    kind: Secret
    metadata:
        name: "{{ include "app.fullname" . }}-passwords"
        labels:
        {{- include "app.labels" . | nindent 4 }}
    type: Opaque
    data:
        adminpassword: {{ $adminPassword | b64enc | quote }}
    
    ---
    
    # Main Deployment
    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: "{{ include "app.fullname" . }}"
    spec:
        replicas: 1
        template:
            spec:
                containers:
                    - name: "{{ include "app.fullname" . }}-instance"
                      image: "{{ .Values.image.name }}"
                      env:
                          # Full admin user.  
                          - name: USERS_ADMIN_USERNAME
                            value: {{ .Values.authentication.users.adminUsername  | quote}}
                          - name: USERS_ADMIN_PASSWORD
                            value: {{(htpasswd "BCRYPT" $adminPassword )  | quote }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 2021-06-23
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多