too much for one commit
This commit is contained in:
92
Tiltfile
Normal file
92
Tiltfile
Normal file
@@ -0,0 +1,92 @@
|
||||
# -*- 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'])
|
||||
Reference in New Issue
Block a user