93 lines
3.3 KiB
Plaintext
93 lines
3.3 KiB
Plaintext
# -*- mode: Python -*-
|
|
|
|
# EntKube Tiltfile — Helm-based local Kubernetes development
|
|
#
|
|
# Prerequisites:
|
|
# - Docker Desktop or Rancher Desktop
|
|
# - k3d (recommended): k3d cluster create entkube --registry-create entkube-registry:0.0.0.0:5050 -p "8080:80@loadbalancer"
|
|
# - Tilt: https://docs.tilt.dev/install.html
|
|
# - Helm 3
|
|
#
|
|
# Usage:
|
|
# tilt up
|
|
#
|
|
# This watches source code, rebuilds Docker images, and redeploys via Helm.
|
|
|
|
# Allow the k3d local registry
|
|
allow_k8s_contexts(['k3d-entkube'])
|
|
|
|
# Use the local registry created by k3d
|
|
default_registry('localhost:5050')
|
|
|
|
# Docker builds for each service — context is the repo root so COPY paths work
|
|
docker_build(
|
|
'entkube/web',
|
|
'.',
|
|
dockerfile='src/EntKube.Web/Dockerfile',
|
|
live_update=[
|
|
sync('src/EntKube.Web/', '/src/src/EntKube.Web/'),
|
|
sync('src/EntKube.Web.Client/', '/src/src/EntKube.Web.Client/'),
|
|
sync('src/EntKube.SharedKernel/', '/src/src/EntKube.SharedKernel/'),
|
|
run('cd /src/src/EntKube.Web && dotnet build -c Release -o /app', trigger=['src/EntKube.Web/', 'src/EntKube.Web.Client/', 'src/EntKube.SharedKernel/']),
|
|
]
|
|
)
|
|
|
|
docker_build(
|
|
'entkube/clusters',
|
|
'.',
|
|
dockerfile='src/EntKube.Clusters/Dockerfile',
|
|
live_update=[
|
|
sync('src/EntKube.Clusters/', '/src/src/EntKube.Clusters/'),
|
|
sync('src/EntKube.SharedKernel/', '/src/src/EntKube.SharedKernel/'),
|
|
run('cd /src/src/EntKube.Clusters && dotnet build -c Release -o /app', trigger=['src/EntKube.Clusters/', 'src/EntKube.SharedKernel/']),
|
|
]
|
|
)
|
|
|
|
docker_build(
|
|
'entkube/identity',
|
|
'.',
|
|
dockerfile='src/EntKube.Identity/Dockerfile',
|
|
live_update=[
|
|
sync('src/EntKube.Identity/', '/src/src/EntKube.Identity/'),
|
|
sync('src/EntKube.SharedKernel/', '/src/src/EntKube.SharedKernel/'),
|
|
run('cd /src/src/EntKube.Identity && dotnet build -c Release -o /app', trigger=['src/EntKube.Identity/', 'src/EntKube.SharedKernel/']),
|
|
]
|
|
)
|
|
|
|
docker_build(
|
|
'entkube/provisioning',
|
|
'.',
|
|
dockerfile='src/EntKube.Provisioning/Dockerfile',
|
|
live_update=[
|
|
sync('src/EntKube.Provisioning/', '/src/src/EntKube.Provisioning/'),
|
|
sync('src/EntKube.SharedKernel/', '/src/src/EntKube.SharedKernel/'),
|
|
run('cd /src/src/EntKube.Provisioning && dotnet build -c Release -o /app', trigger=['src/EntKube.Provisioning/', 'src/EntKube.SharedKernel/']),
|
|
]
|
|
)
|
|
|
|
docker_build(
|
|
'entkube/secrets',
|
|
'.',
|
|
dockerfile='src/EntKube.Secrets/Dockerfile',
|
|
live_update=[
|
|
sync('src/EntKube.Secrets/', '/src/src/EntKube.Secrets/'),
|
|
sync('src/EntKube.SharedKernel/', '/src/src/EntKube.SharedKernel/'),
|
|
run('cd /src/src/EntKube.Secrets && dotnet build -c Release -o /app', trigger=['src/EntKube.Secrets/', 'src/EntKube.SharedKernel/']),
|
|
]
|
|
)
|
|
|
|
# Deploy via Helm chart with dev values
|
|
k8s_yaml(helm(
|
|
'Charts/entkube',
|
|
name='entkube',
|
|
namespace='default',
|
|
values=['Charts/entkube/values-dev.yaml'],
|
|
))
|
|
|
|
# Resource grouping for the Tilt UI
|
|
k8s_resource('entkube-web', port_forwards='5000:5000', labels=['entkube'])
|
|
k8s_resource('entkube-clusters', port_forwards='5010:5010', labels=['entkube'])
|
|
k8s_resource('entkube-provisioning', port_forwards='5020:5020', labels=['entkube'])
|
|
k8s_resource('entkube-identity', port_forwards='5030:5030', labels=['entkube'])
|
|
k8s_resource('entkube-secrets', port_forwards='5040:5040', labels=['entkube'])
|