Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
devops:setup_pgadmin_on_kubernetes [2021/02/10 09:12] – [Проблемы] admindevops:setup_pgadmin_on_kubernetes [2021/02/10 21:15] admin
Line 63: Line 63:
 Итак, я использую чарт **pgadmin** в качестве сабчарта (наряду с чартом **postgresql**) и хочу, чтобы в конфиг PGAdmin автоматически попадали параметры развернутого **postgresql**. \\ Итак, я использую чарт **pgadmin** в качестве сабчарта (наряду с чартом **postgresql**) и хочу, чтобы в конфиг PGAdmin автоматически попадали параметры развернутого **postgresql**. \\
 Для этого мне понадобилось Для этого мне понадобилось
-  * Секрет с файлом <code>{{- if .Values.pgadmin4.enabled -}}+  * Секрет с содержимым файла **pgpass** <code>{{- if .Values.pgadmin4.enabled -}}
 apiVersion: v1 apiVersion: v1
 kind: Secret kind: Secret
Line 72: Line 72:
   pgpassfile: {{ include "pgadmin4.pgpassfile" . | b64enc | quote }}   pgpassfile: {{ include "pgadmin4.pgpassfile" . | b64enc | quote }}
 {{- end}}</code> {{- end}}</code>
-  * Содержимое файла формируется хелпером <code>+  * Содержимое файла **pgpass** формируется хелпером <code>
 {{- define "pgadmin4.pgpassfile" -}} {{- define "pgadmin4.pgpassfile" -}}
 {{ .Values.global.postgresql.fullnameOverride }}:{{ .Values.global.postgresql.service.port }}:*:{{ .Values.global.postgresql.postgresqlUsername }}:{{ .Values.global.postgresql.postgresqlPassword }} {{ .Values.global.postgresql.fullnameOverride }}:{{ .Values.global.postgresql.service.port }}:*:{{ .Values.global.postgresql.postgresqlUsername }}:{{ .Values.global.postgresql.postgresqlPassword }}
Line 99: Line 99:
 {{- end -}} {{- end -}}
 </code> </code>
-  * Проблему с правами на файл **pgpass** решаем с помощью **init**-контейнера, который монтирует секрет в файл, а затем - копирует этот файл в нужную папку и задает ему нужные права:<code>  extraInitContainers: |+  * Проблему с правами на файл **pgpass** решаем с помощью **init**-контейнера, который монтирует секрет в файл, а затем - копирует этот файл в нужную папку и задает ему нужные права:<code>extraSecretMounts: 
 +  - name: pgpassfile 
 +    secret: pgpassfile 
 +    subPath: pgpassfile 
 +    mountPath: "/pgpass" 
 +    readOnly: true 
 +  extraInitContainers: |
     - name: pgpass-permissions-init     - name: pgpass-permissions-init
-      image: "dpage/pgadmin4:4.29"+      image: "docker.rdleas.ru/dpage/pgadmin4:4.29"
       command:       command:
       - "/bin/ash"       - "/bin/ash"
       - "-c"       - "-c"
       - "/bin/mkdir -p /var/lib/pgadmin/storage/pgadmin && /bin/cp /pgpass /var/lib/pgadmin/storage/pgadmin/pgpass && /bin/chmod 0600 /var/lib/pgadmin/storage/pgadmin/pgpass"       - "/bin/mkdir -p /var/lib/pgadmin/storage/pgadmin && /bin/cp /pgpass /var/lib/pgadmin/storage/pgadmin/pgpass && /bin/chmod 0600 /var/lib/pgadmin/storage/pgadmin/pgpass"
 +      securityContext:
 +        runAsUser: 0
       volumeMounts:       volumeMounts:
       - mountPath: /pgpass       - mountPath: /pgpass
Line 112: Line 120:
         subPath: pgpassfile         subPath: pgpassfile
       - mountPath: /var/lib/pgadmin       - mountPath: /var/lib/pgadmin
-        name: pgadmin-data+        name: pgadmin-data</code> 
 +  * В файле values родительского чарта записи такие: 
 +<code> 
 +global: 
 +  environment: dev 
 +  postgresql:  
 +    fullnameOverride: postgresql 
 +    postgresqlUsername: api-user 
 +    postgresqlPassword: tvJk3XrqM3d7xX6b 
 +    postgresqlDatabase: sbl-mobile-api 
 +    service: 
 +      port: 5432 
 +... 
 +postgresql: 
 +  enabled: true 
 +  fullnameOverride: postgresq 
 +... 
 +pgadmin4: 
 +  serverDefinitions: 
 +  #defined in _helpers.tpl - "pgadmin.serverDefinitions" 
 +    enabled: true 
 +  extraSecretMounts: 
 +  - name: pgpassfile 
 +    secret: pgpassfile 
 +    subPath: pgpassfile 
 +    mountPath: "/pgpass" 
 +    readOnly: true 
 +  extraInitContainers:
 +    - name: pgpass-permissions-init 
 +      image: "docker.rdleas.ru/dpage/pgadmin4:4.29" 
 +      command: 
 +      - "/bin/ash" 
 +      - "-c" 
 +      - "/bin/mkdir -p /var/lib/pgadmin/storage/pgadmin && /bin/cp /pgpass /var/lib/pgadmin/storage/pgadmin/pgpass && /bin/chmod 0600 /var/lib/pgadmin/storage/pgadmin/pgpass"
       securityContext:       securityContext:
-        runAsUser: 0</code>+        runAsUser: 0 
 +      volumeMounts: 
 +      - mountPath: /pgpass 
 +        name: pgpassfile 
 +        readOnly: false 
 +        subPath: pgpassfile 
 +      - mountPath: /var/lib/pgadmin 
 +        name: pgadmin-data 
 +  persistentVolume: 
 +    enabled: false 
 +  securityContext: 
 +    runAsUser: 0 
 +    runAsGroup: 0 
 +    fsGroup: 0 
 +</code>
  • devops/setup_pgadmin_on_kubernetes.txt
  • Last modified: 2021/02/10 21:16
  • by admin