oncall-engine/Tiltfile

83 lines
2.9 KiB
Text
Raw Normal View History

running_under_parent_tiltfile = os.getenv('TILT_PARENT', 'false') == 'true'
# The user/pass that you will login to Grafana with
grafana_admin_user_pass = os.getenv('GRAFANA_ADMIN_USER_PASS', 'oncall')
# HELM_PREFIX must be "oncall-dev" as it is hardcoded in dev/helm-local.yml
HELM_PREFIX="oncall-dev"
# Use docker registery generated by ctlptl (dev/kind-config.yaml)
DOCKER_REGISTRY="localhost:63628/"
if not running_under_parent_tiltfile:
# Load the custom Grafana extensions
v1alpha1.extension_repo(name='grafana-tilt-extensions',
ref='main',
url='https://github.com/grafana/tilt-extensions')
v1alpha1.extension(name='grafana', repo_name='grafana-tilt-extensions', repo_path='grafana')
load('ext://grafana', 'grafana')
load('ext://configmap', 'configmap_create')
# Tell ops-devenv/Tiltifle where our plugin.json file lives
plugin_file = os.path.abspath('grafana-plugin/src/plugin.json')
def plugin_json():
return plugin_file
allow_k8s_contexts(["kind-kind"])
docker_build(
"localhost:63628/oncall/engine:dev",
"./engine",
target = 'prod',
live_update=[
sync('./engine/', '/etc/app'),
run('cd /etc/app && pip install -r requirements.txt',
trigger='./engine/requirements.txt'),
]
)
# Build the plugin in the background
local_resource('build-ui',
labels=['OnCallUI'],
cmd='cd grafana-plugin && yarn install && yarn build:dev',
serve_cmd='cd grafana-plugin && ONCALL_API_URL=http://oncall-dev-engine:8080 yarn watch',
allow_parallel=True)
yaml = helm(
'helm/oncall',
name=HELM_PREFIX,
values=['./dev/helm-local.yml'])
k8s_yaml(yaml)
# Generate and load the grafana deploy yaml
configmap_create('grafana-oncall-app-provisioning',
namespace='default',
from_file='dev/grafana/provisioning/plugins/grafana-oncall-app-provisioning.yaml')
k8s_resource(objects=['grafana-oncall-app-provisioning:configmap'],
new_name='grafana-oncall-app-provisioning-configmap',
resource_deps = ['build-ui', 'engine'],
labels=['Grafana'])
# Use separate grafana helm chart
if not running_under_parent_tiltfile:
grafana(context='grafana-plugin',
plugin_files = ['grafana-plugin/src/plugin.json'],
namespace='default',
deps = ['grafana-oncall-app-provisioning-configmap', 'build-ui', 'engine'],
extra_env={
'GF_SECURITY_ADMIN_PASSWORD': 'oncall',
'GF_SECURITY_ADMIN_USER': 'oncall',
'GF_AUTH_ANONYMOUS_ENABLED': 'false',
},
)
k8s_resource(workload='celery', resource_deps=['mariadb', 'redis-master'], labels=['OnCallBackend'])
k8s_resource(workload='engine', port_forwards=8080, resource_deps=['mariadb', 'redis-master'], labels=['OnCallBackend'])
k8s_resource(workload='redis-master', labels=['OnCallDeps'])
k8s_resource(workload='mariadb', labels=['OnCallDeps'])
# name all tilt resources after the k8s object namespace + name
def resource_name(id):
return id.name.replace(HELM_PREFIX + '-', '')
workload_to_resource_function(resource_name)