概要
初期化スクリプトを使って実現します また 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 件のコメント:
コメントを投稿