GitOps repository for the Vega Development Kit (VDK) - a CLI tool that creates opinionated Kind clusters for local Kubernetes development.
VDK Flux provides a complete local development environment with:
- Gateway API with KGateway: Modern ingress using the Kubernetes Gateway API standard
- Aspire Dashboard: Unified observability for traces, logs, and metrics
- OpenTelemetry: Industry-standard telemetry collection and routing
- Prometheus + Grafana: Metrics storage and visualization
- Cert Manager: Automated TLS certificate management
-
Install the VDK CLI
-
Create a cluster:
vdk cluster create
-
Access the Aspire Dashboard:
https://localhost:30443/observability
┌────────────────────────────────────────────────────────────────┐
│ Kind Cluster │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Control Plane (ingress-ready=true) │ │
│ │ │ │
│ │ Port 30443 ────► Vega Gateway ────► Your Apps │
│ │ │ │ │
│ │ │ └────► /observability │
│ │ │ │ │
│ │ │ ▼ │
│ │ │ Aspire Dashboard │
│ │ │ ▲ │
│ │ │ │ │
│ │ OTEL Collector ◄──── Your Apps ─────┘ │
│ │ │ │
│ │ └────► Prometheus ────► Grafana │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
| Component | Version | Purpose |
|---|---|---|
| Flux | v2.6.2 | GitOps automation |
| Gateway API | v1.4.0 | Kubernetes standard for ingress |
| KGateway | v2.0.5 | Envoy-based Gateway implementation |
| Aspire Dashboard | 9.1 | Unified observability UI |
| OpenTelemetry | v0.102.0 | Telemetry collection |
| Prometheus | v81.2.0 | Metrics storage |
| Cert Manager | v1.19.2 | TLS management |
- Getting Started - Set up your development environment
- Architecture - Understand the system design
- Observability Guide - Use the telemetry stack
Configure your applications to send OpenTelemetry data:
env:
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://otel-collector.opentel.svc.cluster.local:4317"
- name: OTEL_SERVICE_NAME
value: "my-service"Create an HTTPRoute to expose your service:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: my-app
namespace: my-namespace
spec:
parentRefs:
- name: vega-gateway
namespace: vega-system
rules:
- backendRefs:
- name: my-service
port: 80vdk-flux/
├── base/ # Flux Kustomization definitions
├── clusters/default/ # Cluster configuration
├── docs/ # Documentation
├── modules/ # Component manifests
│ ├── aspire-dashboard/ # Aspire Dashboard + OTEL Collector
│ ├── cert-manager/ # Certificate management
│ ├── flux/ # Flux controllers
│ ├── gateway-api/ # Gateway API CRDs
│ ├── kgateway/ # KGateway Helm releases
│ ├── opentel/ # OpenTelemetry Operator
│ ├── prometheus/ # Prometheus + Grafana
│ ├── vega-gateway/ # Main gateway configuration
│ └── vega-system/ # VDK Operator
├── CONTRIBUTING.md # Contribution guidelines
├── SECURITY.md # Security policy
└── README.md
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
For security concerns, please see SECURITY.md.
This project is part of the Vega Development Kit ecosystem by Archetypical Software.