Adds loomio app.
This commit is contained in:
@@ -15,9 +15,7 @@ spec:
|
||||
- |
|
||||
set -e
|
||||
echo "Initializing Loomio database..."
|
||||
# Patch schema.rb to use IF NOT EXISTS for pghero schema
|
||||
sed -i 's/create_schema "pghero"/execute "CREATE SCHEMA IF NOT EXISTS pghero"/g' db/schema.rb
|
||||
bundle exec rake db:schema:load db:seed
|
||||
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:migrate db:seed
|
||||
echo "Database initialization complete"
|
||||
env:
|
||||
- name: RAILS_ENV
|
||||
@@ -39,6 +37,68 @@ spec:
|
||||
secretKeyRef:
|
||||
name: loomio-secrets
|
||||
key: secretCookieToken
|
||||
initContainers:
|
||||
- name: create-db
|
||||
image: postgres:17-alpine
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 999
|
||||
runAsGroup: 999
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop: [ALL]
|
||||
readOnlyRootFilesystem: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
env:
|
||||
- name: PGHOST
|
||||
value: "{{ .db.host }}"
|
||||
- name: PGPORT
|
||||
value: "{{ .db.port }}"
|
||||
- name: PGUSER
|
||||
value: postgres
|
||||
- name: PGPASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: loomio-secrets
|
||||
key: postgres.password
|
||||
- name: APP_DB_NAME
|
||||
value: "{{ .db.name }}"
|
||||
- name: APP_DB_USER
|
||||
value: "{{ .db.user }}"
|
||||
- name: APP_DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: loomio-secrets
|
||||
key: dbPassword
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
set -e
|
||||
echo "Waiting for PostgreSQL to be ready..."
|
||||
until pg_isready -h $PGHOST -p $PGPORT -U $PGUSER; do
|
||||
sleep 2
|
||||
done
|
||||
psql -v ON_ERROR_STOP=1 <<-EOSQL
|
||||
DO \$\$ BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = '$APP_DB_USER') THEN
|
||||
CREATE USER $APP_DB_USER WITH PASSWORD '$APP_DB_PASSWORD';
|
||||
ELSE
|
||||
ALTER USER $APP_DB_USER WITH PASSWORD '$APP_DB_PASSWORD';
|
||||
END IF;
|
||||
END \$\$;
|
||||
SELECT 'CREATE DATABASE $APP_DB_NAME OWNER $APP_DB_USER'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$APP_DB_NAME')\gexec
|
||||
GRANT ALL PRIVILEGES ON DATABASE $APP_DB_NAME TO $APP_DB_USER;
|
||||
EOSQL
|
||||
psql -d "$APP_DB_NAME" -v ON_ERROR_STOP=1 <<-EOSQL
|
||||
GRANT ALL ON SCHEMA public TO $APP_DB_USER;
|
||||
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
||||
CREATE EXTENSION IF NOT EXISTS hstore;
|
||||
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
||||
EOSQL
|
||||
echo "Database and user created"
|
||||
securityContext:
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
|
||||
Reference in New Issue
Block a user