Overview
Full mode (full-bootstrap.sh) provides a complete production-like environment with Istio service mesh (ambient mode), ArgoCD for GitOps, and 2 worker nodes. It includes warm cluster support for faster subsequent starts.
Cold start: ~250s | Warm start: Instant (hash match) / manifest reapply only
Key Features
- Cilium + Hubble - Full CNI with network observability
- Istio ambient mode - Service mesh without sidecars
- ArgoCD - GitOps continuous deployment
- 2 worker nodes - Production-like multi-node setup
- Warm cluster support - Hash-based state detection
- 4-phase parallel execution - Optimized deployment
Command Usage
Flags
| Flag | Description |
|---|---|
--clean | Delete existing cluster and force cold start |
Warm Cluster (Hash Gate)
Full-bootstrap uses the same hash-based detection as dev-fast, but with a separate state directory:Hash Storage
.bootstrap-state-full/cluster- Hash ofkind-config.yaml+images.sh.bootstrap-state-full/manifest- Hash of entiremanifests-result/directory
Decision Logic
Cluster running + cluster hash match + manifest hash match
Instant complete - Health check only, no deployment
Cluster running + cluster hash match + manifest hash mismatch
Warm reapply - Regenerate and reapply manifests only
4-Phase Parallel Execution
Phase 1: Preparation (Parallel)
All tasks run concurrently:- kind-cluster - Create cluster with
kind-config.yaml(2 workers) - gen-manifests - Generate all Kubernetes manifests
- otel-build - Build OTel collector image
- image-preload - Pull all images (PRELOAD_IMAGES_FULL)
Phase 2: Network Setup (Sequential)
Phase 3: Deploy Services (Parallel)
- argocd - GitOps controller
- garage - S3-compatible storage (wait for ready + setup)
- observability - Prometheus stack, Loki, Tempo, OTel collector
- cloudflared - Cloudflare tunnel (if credentials exist)
Traefik is omitted in full mode - Istio Gateway handles ingress.
Phase 4: Wait for Pods (Parallel)
Wait for critical pods in parallel:Cluster Configuration
kind-config.yaml
kind-config.yaml
Service Mesh (Istio)
Ambient Mode
Full-bootstrap installs Istio in ambient mode, which:- No sidecars - Reduces resource overhead
- Transparent encryption - mTLS without modifying pods
- Layer 4 + Layer 7 - Network and application-level policies
- Gateway API - Modern ingress configuration
Installation
Istio is installed viaistio-install.sh during Phase 2:
GitOps (ArgoCD)
Features
- Automated sync - Deploys applications from Git
- Multi-environment - Manages dev/staging/prod
- Rollback - Easy revert to previous versions
- Health monitoring - Application status tracking
Access
After bootstrap, retrieve the admin password:http://localhost:30080
Exposed Services
| Service | URL | Credentials |
|---|---|---|
| ArgoCD | http://localhost:30080 | admin/<secret> |
| Grafana | http://localhost:30300 | admin/admin |
| Prometheus | http://localhost:30090 | - |
| Alertmanager | http://localhost:30093 | - |
| Hubble UI | http://localhost:31235 | - |
| Traefik | http://localhost:30081 | - |
The ArgoCD password is displayed at the end of bootstrap and stored in the
argocd-initial-admin-secret secret.Performance
Cold Start
~250s full cluster build
Warm Start
Instant if no changes
Manifest Changes
Fast reapply only
Resource Usage
Highest of all modes
Warm Reapply Logic
When manifests change but cluster config is unchanged:- Cluster creation
- Image pulling/loading
- Cilium installation
- Istio installation
Use Cases
Full-Stack Validation
Test complete production-like environment
Service Mesh Testing
Validate Istio policies and mTLS
GitOps Workflows
Test ArgoCD deployments and sync
Multi-Node Testing
Validate distributed workloads