33# docker image with postgres client only
44DOCKER_IMAGE_TAG=governmentpaas/psql:latest
55
6- DB_ENDPOINT=$( aws rds describe-db-instances --region=$REGION --query " DBInstances[?DBName=='$PROJECT_NAME '].Endpoint.Address" | jq -r ' .[0]' )
6+ DB_ENDPOINT=database.$PROJECT_NAME
7+ DB_NAME=$( aws rds describe-db-instances --region=$REGION --query " DBInstances[?DBInstanceIdentifier=='$PROJECT_NAME -$ENVIRONMENT '].DBName" | jq -r ' .[0]' )
78SECRET_ID=$( aws secretsmanager list-secrets --region $REGION --query " SecretList[?Name=='$PROJECT_NAME -$ENVIRONMENT -rds-$SEED '].Name" | jq -r " .[0]" )
89# RDS MASTER
910MASTER_RDS_USERNAME=master_user
1011SECRET_PASSWORD=$( aws secretsmanager get-secret-value --region=$REGION --secret-id=$SECRET_ID | jq -r " .SecretString" )
1112# APPLICATION DB ADMIN
12- DB_APP_USERNAME=$PROJECT_NAME
13+ DB_APP_USERNAME=$DB_NAME
1314DB_APP_PASSWORD=$( LC_ALL=C tr -dc ' A-Za-z0-9' < /dev/urandom | base64 | head -c 16)
1415
1516# Fill in env-vars to db user creation manifest
@@ -19,13 +20,13 @@ eval "echo \"$(cat ./db-ops/job-create-db.yml.tpl)\"" > ./k8s-job-create-db.yml
1920# 2. Secret in db-ops: db-create-users (with master password, and a .sql file
2021# 3. Job in db-ops: db-create-users (runs the .sql file against the RDS given master_password from env)
2122# 4. Secret in Application namespace with DB_USERNAME / DB_PASSWORD
22- kubectl create -f ./k8s-job-create-db.yml
23+ kubectl apply -f ./k8s-job-create-db.yml
2324
2425# Deleting the entire db-ops namespace, leaving ONLY application-namespace's secret behind
2526kubectl -n db-ops wait --for=condition=complete --timeout=10s job db-create-users
2627if [ $? -eq 0 ]
2728then
28- kubectl delete namespace db-ops
29+ kubectl get namespace db-ops
2930else
3031 echo " Failed to create application database user, please see 'kubectl logs -n db-ops -l job-name=db-create-users'"
3132fi
0 commit comments