Setting up your environment to contribute to Vega.
- .NET 10 SDK
- Docker
- Git
- KinD (Kubernetes in Docker)
- kubectl
For a reproducible development environment, use Devbox:
-
Install Devbox:
curl -fsSL https://get.jetify.com/devbox | bash -
Start a Devbox shell in the repository:
devbox shell
This automatically sets up all required dependencies.
-
Clone the repository (or your fork):
git clone https://github.com/ArchetypicalSoftware/VDK.git cd VDK -
Navigate to the CLI project:
cd cli/src/Vdk -
Build the project:
dotnet build
-
Run the CLI:
dotnet run -- --help
From the repository root:
cd cli
dotnet testOr run specific tests:
dotnet test --filter "FullyQualifiedName~YourTestName"To create a self-contained executable:
cd cli/src/Vdk
dotnet publish -c ReleaseThe output will be in bin/Release/net10.0/publish/.
VDK/
├── cli/
│ └── src/
│ └── Vdk/
│ ├── Commands/ # CLI command implementations
│ ├── Services/ # Business logic and integrations
│ ├── Models/ # Data models
│ ├── Constants/ # Configuration constants
│ ├── Certs/ # TLS certificates
│ └── ConfigMounts/ # Container configuration files
└── docs/ # Documentation
- System.CommandLine: CLI framework
- KubeOps.KubernetesClient: Kubernetes API client
- Docker.DotNet: Docker API client
- YamlDotNet: YAML serialization
- Flux CD: GitOps toolkit