This configures local environment to test login through people: - Keycloak configuration of the IdP (people) - Add Keycloak Application in people The only user who can login for now is "admin".
104 lines
3.5 KiB
Plaintext
104 lines
3.5 KiB
Plaintext
load('ext://uibutton', 'cmd_button', 'bool_input', 'location')
|
|
load('ext://namespace', 'namespace_create', 'namespace_inject')
|
|
namespace_create('desk')
|
|
|
|
docker_build(
|
|
'localhost:5001/people-backend:latest',
|
|
context='..',
|
|
dockerfile='../Dockerfile',
|
|
only=['./src/backend', './src/mail', './docker'],
|
|
target = 'backend-production',
|
|
live_update=[
|
|
sync('../src/backend', '/app'),
|
|
run(
|
|
'pip install -r /app/requirements.txt',
|
|
trigger=['./api/requirements.txt']
|
|
)
|
|
]
|
|
)
|
|
|
|
docker_build(
|
|
'localhost:5001/people-frontend:latest',
|
|
context='..',
|
|
dockerfile='../Dockerfile',
|
|
build_args={'ENV': 'dev'},
|
|
only=['./src/frontend', './src/mail', './docker'],
|
|
target = 'frontend-builder-dev',
|
|
live_update=[
|
|
sync('../src/frontend', '/builder'),
|
|
]
|
|
)
|
|
|
|
# helmfile in docker mount the current working directory and the helmfile.yaml
|
|
# requires the keycloak config in another directory
|
|
k8s_yaml(local('cd .. && helmfile -n desk -e ${DEV_ENV:-dev} template --file ./src/helm/helmfile.yaml'))
|
|
|
|
migration = '''
|
|
set -eu
|
|
# get k8s pod name from tilt resource name
|
|
POD_NAME="$(tilt get kubernetesdiscovery desk-backend -ojsonpath='{.status.pods[0].name}')"
|
|
kubectl -n desk exec "$POD_NAME" -- python manage.py makemigrations
|
|
'''
|
|
cmd_button('Make migration',
|
|
argv=['sh', '-c', migration],
|
|
resource='desk-backend',
|
|
icon_name='developer_board',
|
|
text='Run makemigration',
|
|
)
|
|
|
|
pod_migrate = '''
|
|
set -eu
|
|
# get k8s pod name from tilt resource name
|
|
POD_NAME="$(tilt get kubernetesdiscovery desk-backend -ojsonpath='{.status.pods[0].name}')"
|
|
kubectl -n desk exec "$POD_NAME" -- python manage.py migrate --no-input
|
|
'''
|
|
cmd_button('Migrate db',
|
|
argv=['sh', '-c', pod_migrate],
|
|
resource='desk-backend',
|
|
icon_name='developer_board',
|
|
text='Run database migration',
|
|
)
|
|
|
|
# Command to reset DB
|
|
reset_db = '''
|
|
set -eu
|
|
# get k8s pod name from tilt resource name
|
|
POD_NAME="$(tilt get kubernetesdiscovery desk-backend -ojsonpath='{.status.pods[0].name}')"
|
|
kubectl -n desk exec "$POD_NAME" -- python manage.py flush --no-input
|
|
kubectl -n desk exec "$POD_NAME" -- python manage.py createsuperuser --username admin@example.com --password admin
|
|
'''
|
|
cmd_button('Reset DB',
|
|
argv=['sh', '-c', reset_db],
|
|
resource='desk-backend',
|
|
icon_name='developer_board',
|
|
text='Reset DB',
|
|
)
|
|
|
|
# Command to create demo data
|
|
populate_people_with_demo_data = '''
|
|
set -eu
|
|
# get k8s pod name from tilt resource name
|
|
POD_NAME="$(tilt get kubernetesdiscovery desk-backend -ojsonpath='{.status.pods[0].name}')"
|
|
kubectl -n desk exec "$POD_NAME" -- python manage.py create_demo --force
|
|
'''
|
|
cmd_button('Populate with demo data',
|
|
argv=['sh', '-c', populate_people_with_demo_data],
|
|
resource='desk-backend',
|
|
icon_name='developer_board',
|
|
text='Populate with demo data',
|
|
)
|
|
|
|
# Command to created domain/users/access from people to dimail
|
|
populate_dimail_from_people = '''
|
|
set -eu
|
|
# get k8s pod name from tilt resource name
|
|
POD_NAME="$(tilt get kubernetesdiscovery desk-backend -ojsonpath='{.status.pods[0].name}')"
|
|
kubectl -n desk exec "$POD_NAME" -- python manage.py setup_dimail_db --populate-from-people
|
|
'''
|
|
cmd_button('Populate dimail from people',
|
|
argv=['sh', '-c', populate_dimail_from_people],
|
|
resource='desk-backend',
|
|
icon_name='developer_board',
|
|
text='Populate dimail from people',
|
|
)
|