是的,你这样做了,我们通过 RDS 使用 Postgres,它是通过 terraform 部署的。然后我通过 Kustomize 更新了 Harbor Helm Chart 以注入一个 initContainer。
initContainer 然后执行以下脚本,该脚本传递了 4 个数据库名称 registry、clair、notary_signer、notary_server
#!/bin/bash
echo "Creating Databases: $@"
for var in "$@"
do
select="SELECT 1 FROM pg_database WHERE datname = '$var'"
create="CREATE DATABASE $var;"
echo "psql -h <%=database.external.host%> -U postgres -tc \"$select\""
psql -h <%=database.external.host%> -U postgres -tc "select 1 from pg_database where datname = '$var';" | grep -q 1 || psql -h <%=database.external.host%> -U postgres -tc "$create"
done
Postgres 没有像 CockroachDB 那样的 CREATE DATABASE IF NOT EXISTS 有点臭。