Tilt is a tool for local Kubernetes development. It makes it easy to see your changes as you make them, and it rebuilds and redeploys your app as you change it.
72 lines
2.2 KiB
Plaintext
72 lines
2.2 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'),
|
|
]
|
|
)
|
|
|
|
k8s_yaml(local('cd ../src/helm && helmfile -n desk -e dev template .'))
|
|
|
|
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',
|
|
)
|
|
|
|
pod_add_admin = '''
|
|
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 createsuperuser --password admin --admin_email admin@example.com
|
|
'''
|
|
cmd_button('Add admin',
|
|
argv=['sh', '-c', pod_add_admin],
|
|
resource='desk-backend',
|
|
icon_name='developer_board',
|
|
text='Create superadmin',
|
|
)
|