FATAL: аутентификация по паролю не удалась для пользователя "postgres" при использовании диаграмм зависимостей для моего собственного приложения - PullRequest
0 голосов
/ 03 января 2019

Я могу запустить helm, диаграмму postgresql без каких-либо зависимостей, используя приведенную ниже команду

helm install --name my-release \ --set postgresqlPassword=secretpassword,postgresqlDatabase=my-database \ stable/postgresql

Но, когда я запускаю с файлом require.yaml, у меня заканчиваетсяпроблемы.Ниже приведен фрагмент

dependencies: - name: postgresql repository: https://charts.bitnami.com/bitnami version: 3.7.1 Я добавил переменную env в файл deploy.yaml spec: containers: - name: {{ .Chart.Name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: POSTGRES_HOST value: {{ template "postgresql.fullname" . }} - name: POSTGRES_PORT value: "5432" - name: POSTGRES_USERNAME value: {{ default "" .Values.postgresql.postgresqlUsername | quote }} - name: POSTGRES_PASSWORD value: {{ default "" .Values.postgresql.postgresqlPassword | quote }} - name: POSTGRES_DATABASE value: {{ default "" .Values.postgresql.postgresqlDatabase | quote }} ports: - containerPort: {{ .Values.service.internalPort }}

Добавил значения в соответствии с переменными среды, объявленными в файле deploy.yaml

postgresql: POSTGRES_DATABASE: ****** POSTGRES_USERNAME: postgres POSTGRES_PASSWORD: password

Когда я использую команду установки helm helm install <chart-name>/ --name *** --set postgresqlDatabase=*****,postgresqlPassword=password

я получаю следующую ошибку как Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "postgres" at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:473) ~[postgresql-42.2.2.jar!/:42.2.2] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:205) ~[postgresql-42.2.2.jar!/:42.2.2] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[postgresql-42.2.2.jar!/:42.2.2] at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195) ~[postgresql-42.2.2.jar!/:42.2.2] at org.postgresql.Driver.makeConnection(Driver.java:452) ~[postgresql-42.2.2.jar!/:42.2.2] at org.postgresql.Driver.connect(Driver.java:254) ~[postgresql-42.2.2.jar!/:42.2.2] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-2.7.8.jar!/:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-2.7.8.jar!/:na] at org.flywaydb.core.internal.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:51) ~[flyway-core-5.0.7.jar!/:na] ... 91 common frames omitted Я не уверен, как назначить пароль для postgresql зависимости.Есть ли способ связаться с базой данных postgres.

1 Ответ

0 голосов
/ 03 января 2019

Что вам не хватает, так это что-то, чтобы установить пароль для экземпляра postgres, который встроен в вашу диаграмму в вашем файле значений, например, с помощью записи в значениях вроде:

postgresql:
   postgresPassword: secretpassword 

Обратите внимание, чтоздесь используется имя верблюда, а не заглавные, как вы используете.Это будет эквивалентно установке пароля через --set postgresql.postgresqlPassword=secretpassword.Это значение будет использоваться диаграммой bitnami postgresql для записи своего пароля в секрете. Я бы предложил получить пароль из этого секрета, хотя вы можете ссылаться на него непосредственно в своем развертывании, как и в случае с .Values.postgresql.postgresqlPassword.

В любом случае вам нужно убедиться, что вы действительно установили его, либо в значениях с его именем, а не в верхнем регистре, либо в качестве параметра - я бы предложил установить значения по умолчанию, и вы можетепереопределить с помощью параметра.

Чтобы использовать секрет для получения пароля в Развертывании вместо .Values.postgresql.postgresqlPassword, вы должны установить значение переменной среды с помощью:

      valueFrom:
        secretKeyRef:
          name: {{ .Release.Name }}-postgresql
          key: postgres-password

Здесь {{ .Release.Name }}-postgresql должно совпадать с секретным именем, которое использует диаграмма postgresql .

(Если пример помогает в диаграмме комплектов среды выполнения activiti , в качестве зависимости используется postgres (ему присваивается псевдоним) устанавливает пароль postgres в значениях , затем извлекает пароль и косвенно использует его при развертывании, считывая парольСлово из секрета, что диаграмма postgres автоматически создает , на который можно ссылаться, используя имя выпуска, потому что диаграмма postgres называет секрет, используя полное имя шаблона.Это основано на диаграмме postgresql из официальных диаграмм kubernetes , но, как уже упоминалось, диаграмма bitnami создает секрет из записи postgresqlPassword таким же образом )

...