Skip to content

Commit

Permalink
make: DB init and create admin user after install
Browse files Browse the repository at this point in the history
  • Loading branch information
Diego Rodriguez committed May 20, 2020
1 parent 67c6d81 commit 82a4b74
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 9 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ deploy: # Deploy/redeploy previously built REANA cluster.
sleep ${TIMECHECK}; \
fi;\
done && \
source ${PWD}/scripts/create-admin-user.sh ${TRUNC_INSTANCE_NAME} && \
eval $$(reana-dev setup-environment $(addprefix --server-hostname , ${SERVER_URL}))

example: # Run one or several demo examples.
Expand Down
17 changes: 8 additions & 9 deletions reana/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

"""Helper scripts for REANA developers. Run `reana-dev --help` for help."""

import base64
import datetime
import json
import logging
import os
import platform
Expand Down Expand Up @@ -1524,15 +1526,12 @@ def setup_environment(server_hostname, insecure_url): # noqa: D301
export_lines.append(component_export_line.format(
env_var_name='REANA_SERVER_URL',
env_var_value=server_hostname or get_external_url(insecure_url)))

get_admin_token_sql_query_cmd = [
'psql', '-U', 'reana', 'reana', '-c',
'SELECT token FROM user_token']
sql_query_result = exec_into_component(
get_prefixed_component_name('db'),
get_admin_token_sql_query_cmd)
# We get the token from the SQL query result
admin_access_token = sql_query_result.splitlines()[2].strip()
get_access_token_cmd = \
'kubectl get secret -o json reana-dev-admin-access-token'
secret_json = json.loads(subprocess.check_output(
get_access_token_cmd, shell=True).decode())
admin_access_token_b64 = secret_json['data']['ADMIN_ACCESS_TOKEN']
admin_access_token = base64.b64decode(admin_access_token_b64).decode()
export_lines.append(component_export_line.format(
env_var_name='REANA_ACCESS_TOKEN',
env_var_value=admin_access_token))
Expand Down
18 changes: 18 additions & 0 deletions scripts/create-admin-user.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

instance_name=$1

# Get REANA Server pod name
REANA_SERVER=$(kubectl get pod -l "app=$instance_name-server" -o name \
-o jsonpath='{.items[0].metadata.name}')

# Initialise DB
kubectl exec "$REANA_SERVER" -- ./scripts/setup

# Create admin user
admin_access_token=$(kubectl exec "$REANA_SERVER" -- \
flask reana-admin create-admin-user admin@reana.org)

# Add token to secrets
kubectl create secret generic "$instance_name"-admin-access-token \
--from-literal=ADMIN_ACCESS_TOKEN="$admin_access_token"

0 comments on commit 82a4b74

Please sign in to comment.