From a4cb44ea79afca04b47e3f095727721298f74fcc Mon Sep 17 00:00:00 2001 From: clime Date: Tue, 10 Jul 2018 10:15:05 +0200 Subject: [PATCH] PostgreSQL backend support --- config.py | 10 ++++++++++ create.sh | 54 ++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/config.py b/config.py index efa2350..0ab5f7f 100644 --- a/config.py +++ b/config.py @@ -108,6 +108,7 @@ try: from ivatar.settings import DATABASES except Exception: # pragma: no cover DATABASES = [] # pragma: no cover + if 'default' not in DATABASES: DATABASES['default'] = { # pragma: no cover 'ENGINE': 'django.db.backends.sqlite3', @@ -123,5 +124,14 @@ if 'MYSQL_DATABASE' in os.environ: 'HOST': 'mysql', } +if 'POSTGRESQL_DATABASE' in os.environ: + DATABASES['default'] = { # pragma: no cover + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': os.environ['POSTGRESQL_DATABASE'], + 'USER': os.environ['POSTGRESQL_USER'], + 'PASSWORD': os.environ['POSTGRESQL_PASSWORD'], + 'HOST': 'postgresql', + } + if os.path.isfile(os.path.join(BASE_DIR, 'config_local.py')): from config_local import * # noqa # flake8: noqa # NOQA # pragma: no cover diff --git a/create.sh b/create.sh index 62013ce..c02ddb3 100755 --- a/create.sh +++ b/create.sh @@ -1,23 +1,41 @@ #!/bin/sh oc new-project ivatar -# Take care, the following environment variable must be set either in bashrc/profile or locally in this session -oc secrets new-basicauth lkernat-gitlab-openshift-falko-access-token --password=$LKERNAT_GITLAB_OPENSHIFT_ACCESS_TOKEN -oc secrets add serviceaccount/builder secrets/lkernat-gitlab-openshift-falko-access-token -MYSQL_PASSWORD=`openssl rand -base64 16` -MYSQL_ROOT_PASSWORD=`openssl rand -base64 16` -oc new-app --source-secret=lkernat-gitlab-openshift-falko-access-token \ - python~https://git.linux-kernel.at/oliver/ivatar.git \ - mysql-persistent \ - --group=python+mysql-persistent \ - -e MYSQL_USER=ivatar \ - -p MYSQL_USER=ivatar \ - -e MYSQL_PASSWORD=$MYSQL_PASSWORD \ - -p MYSQL_PASSWORD=$MYSQL_PASSWORD \ - -e MYSQL_DATABASE=ivatar \ - -p MYSQL_DATABASE=ivatar \ - -e MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \ - -p MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \ + +DB_PASSWORD=`openssl rand -base64 16` +DB_ROOT_PASSWORD=`openssl rand -base64 16` + +if [ -n "$USE_MYSQL" ]; then + DB_CMDLINE="mysql-persistent + --group=python+mysql-persistent + -e MYSQL_USER=ivatar + -p MYSQL_USER=ivatar + -e MYSQL_PASSWORD=$DB_PASSWORD + -p MYSQL_PASSWORD=$DB_PASSWORD + -e MYSQL_DATABASE=ivatar + -p MYSQL_DATABASE=ivatar + -e MYSQL_ROOT_PASSWORD=$DB_ROOT_PASSWORD + -p MYSQL_ROOT_PASSWORD=$DB_ROOT_PASSWORD" +else + DB_CMDLINE="postgresql-persistent + -e POSTGRESQL_USER=ivatar + -p POSTGRESQL_USER=ivatar + -e POSTGRESQL_DATABASE=ivatar + -p POSTGRESQL_DATABASE=ivatar + -e POSTGRESQL_PASSWORD=$DB_PASSWORD + -p POSTGRESQL_PASSWORD=$DB_PASSWORD + -e POSTGRESQL_ADMIN_PASSWORD=$DB_ROOT_PASSWORD" +fi + +if [ -n "$LKERNAT_GITLAB_OPENSHIFT_ACCESS_TOKEN" ]; then + oc secrets new-basicauth lkernat-gitlab-openshift-falko-access-token --password=$LKERNAT_GITLAB_OPENSHIFT_ACCESS_TOKEN + oc secrets add serviceaccount/builder secrets/lkernat-gitlab-openshift-falko-access-token + SECRET_CMDLINE="--source-secret=lkernat-gitlab-openshift-falko-access-token" +fi + +oc new-app $SECRET_CMDLINE python~https://git.linux-kernel.at/oliver/ivatar.git \ -e IVATAR_MAILGUN_API_KEY=$IVATAR_MAILGUN_API_KEY \ - -e IVATAR_MAILGUN_SENDER_DOMAIN=$IVATAR_MAILGUN_SENDER_DOMAIN + -e IVATAR_MAILGUN_SENDER_DOMAIN=$IVATAR_MAILGUN_SENDER_DOMAIN \ + $DB_CMDLINE + oc expose svc/ivatar