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', )