58 lines
1.8 KiB
Plaintext
58 lines
1.8 KiB
Plaintext
# UNT — Tilt development environment
|
|
# Usage: cd ctrl && tilt up
|
|
# Cluster: kind (name: unt)
|
|
# Entry point: http://localhost:8040
|
|
|
|
allow_k8s_contexts('kind-unt')
|
|
|
|
# Hard guard: Tilt deploys to whatever the shell's current kubectl context is,
|
|
# and allow_k8s_contexts auto-permits any local-looking (kind-*) cluster.
|
|
# Fail early instead of silently landing the workload in the wrong cluster.
|
|
if k8s_context() != 'kind-unt':
|
|
fail("Wrong kubectl context: '%s'. Run: kubectl config use-context kind-unt" % k8s_context())
|
|
|
|
# Create namespace first to avoid race conditions (pin cluster explicitly)
|
|
local('kubectl --context kind-unt create namespace unt --dry-run=client -o yaml | kubectl --context kind-unt apply -f -')
|
|
|
|
# Apply k8s manifests via kustomize (dev overlay)
|
|
k8s_yaml(kustomize('k8s/overlays/dev'))
|
|
|
|
# --- Images ---
|
|
|
|
# FastAPI + MCP servers + agents (Python backend)
|
|
docker_build(
|
|
'unt-api',
|
|
context='..',
|
|
dockerfile='Dockerfile.api',
|
|
ignore=['.git', 'def', 'ui', '.claude', 'tests', '.venv', 'node_modules'],
|
|
live_update=[
|
|
sync('../mcp_servers', '/app/mcp_servers'),
|
|
sync('../agents', '/app/agents'),
|
|
sync('../api', '/app/api'),
|
|
],
|
|
)
|
|
|
|
# Vue UI — context is project root so framework link resolves
|
|
docker_build(
|
|
'unt-ui',
|
|
context='..',
|
|
dockerfile='Dockerfile.ui',
|
|
live_update=[
|
|
sync('../ui/app/src', '/ui/app/src'),
|
|
sync('../ui/app/index.html', '/ui/app/index.html'),
|
|
sync('../ui/app/vite.config.ts', '/ui/app/vite.config.ts'),
|
|
sync('../ui/framework/src', '/ui/framework/src'),
|
|
],
|
|
)
|
|
|
|
# --- Resources ---
|
|
|
|
k8s_resource('api')
|
|
k8s_resource('ui', resource_deps=['api'])
|
|
|
|
# Group infra resources
|
|
k8s_resource(
|
|
objects=['unt:namespace', 'unt-config:configmap'],
|
|
new_name='infra',
|
|
)
|