2021年6月14日月曜日

bitnami の PostgreSQL-ha helm chart で好きなユーザを追加する方法

bitnami の PostgreSQL-ha helm chart で好きなユーザを追加する方法

概要

初期化スクリプトを使って実現します また HA 構成の場合は pgpool 側にも認証情報の追加が必要なのもポイントです pgpool 側にもユーザを追加するための初期化スクリプトを流します

環境

  • kubernetes 1.20.5
  • helm 3.5.2
  • bitnami PostgreSQL ha helm chart 7.6.2

values.yaml

postgresql:
  password: xxxx
  repmgrPassword: xxxx
  initdbScripts:
      setup.sql: |
        CREATE USER user1 WITH PASSWORD 'xxxx';
        CREATE USER user2 WITH PASSWORD 'xxxx';
        CREATE DATABASE db1 WITH OWNER user1;
        CREATE DATABASE db2 WITH OWNER user2;

pgpool:
  adminPassword: xxxx
  initdbScripts:
      setup.sh: |
        #!/bin/bash
        USERS=("uesr1:xxxx" "user2:xxxx")
        for user in "${USERS[@]}"; do
            user_info=(${user//:/ })
            pg_md5 -m --config-file="/opt/bitnami/pgpool/conf/pgpool.conf" -u "${user_info[0]}" "${user_info[1]}"
        done

service:
  type: NodePort
  nodePort: 30432

少し解説

好きなユーザを追加したい場合は postgresql.username があるのですがこれは使わないようにしましょう 基本的には initdbScripts に SQL やシェルスクリプトを書いて追加します

まず posgresql 側には CREATE USER コマンドを発行してユーザを作成します このときパスワードも指定します

次に pgpool 側です こちらは pg_md5 コマンドを使って /opt/bitnami/pgpool/conf/pool_passwd に認証情報を追加する必要があります HA 構成の場合認証箇所が postgresql と pgpool の 2 箇所になるのでそれぞれに認証情報を登録する必要があります pgpool Pod が起動後に手動で追加しても OK です

あとは SQL などで好きなコマンドを発行して上げれば OK です postgresql.username を指定しないことでデフォルトの postgres ユーザを使ってコマンドを発行してくれるので権限の強いコマンドでも実行できるようになっています

参考サイト

0 件のコメント:

コメントを投稿