@@ -7,13 +7,13 @@ Scalable Kubernetes testing infrastructure that validates custom-built component
77
88** Manifest-Driven Design** - YAML cluster configurations:
99- Define K8s version, node counts, networking, and component versions/sources
10- - Components specify repo URL, release tag, format (Binary|Container|Binary+Container), and ` use-spread ` flag (component provides tests)
10+ - Components specify repo URL, release tag, format (Binary|Container|Binary+Container), and ` test ` flag (component provides tests)
1111- 4 baseline manifests targeting K8s 1.33, 1.34, 1.35, 1.36 with 30+ components each (containerd, etcd, coredns, kube-* etc.)
1212
1313** Python CLI Framework** - Cross-platform testing:
1414- ` kube-galaxy ` CLI with command routing and automatic manifest discovery
1515- ` pkg/cluster/setup.py ` : Manifest-based provisioning via kubeadm (not container shortcuts)
16- - ` pkg/testing/spread.py ` : Executes spread tests from components marked ` use-spread : true`
16+ - ` pkg/testing/spread.py ` : Executes spread tests from components marked ` test : true`
1717- ` pkg/utils/logs.py ` : Log collection and debugging utilities
1818- Library utilities for arch detection, YAML manifest parsing, component installation
1919
@@ -42,25 +42,28 @@ components:
4242 - name : containerd # Component identifier
4343 category : containerd # Organizational
4444 release : " 2.2.1" # Git tag or branch
45- repo : " https://github.com/..." # Fetch source
45+ repo : # Repository info object
46+ base-url : " https://github.com/..." # Required: fetch source
47+ subdir : " path/to/component" # Optional: for monorepo components
48+ ref : " feature-branch" # Optional: override release with git ref
4649 format : Binary|Container|Binary+Container # Install method
47- use-spread : false/true # Component provides spread tests
50+ test : false/true # Component provides spread tests
4851networking :
4952 - name : calico
5053 service-cidr : " 10.96.0.0/12"
5154 pod-cidr : " 192.168.0.0/16"
5255` ` `
53- Key insight: ` use-spread : true` means component repo has spread.yaml tests that `kube-galaxy test spread ` will execute.
56+ Key insight: ` test : true` means component repo has spread.yaml tests that `kube-galaxy test` will execute.
5457
5558# ## Local Development Workflow
5659` ` ` bash
5760# Validate manifest YAML syntax
58- kube-galaxy validate manifests
61+ kube-galaxy validate
5962
6063# Provision real cluster with kubeadm (no container shortcuts)
6164kube-galaxy setup
6265
63- # Run spread tests from components with use-spread : true
66+ # Run spread tests from components with test : true
6467kube-galaxy test spread
6568
6669# Clean cluster and artifacts
@@ -83,7 +86,7 @@ kube-galaxy cleanup all
83865. Components specify format : Binary (install to /usr/local/bin), Container (pull image), or both
8487
8588# ## Test Execution Model
86- - **Test discovery**: Only components with `use-spread : true` are tested
89+ - **Test discovery**: Only components with `test : true` are tested
8790- **Test location**: Component repos contain `spread.yaml` at root
8891- **Spread execution**: `kube-galaxy test spread` clones each component, finds spread.yaml, runs spread test suite
8992- **Parallelism**: Spread tests run concurrently if specified in spread.yaml
@@ -142,7 +145,7 @@ Architecture detection happens at runtime in `pkg/cluster/setup.py`:
142145
143146**When Adding Components**:
1441471. Add entry to all 4 `manifests/baseline-k8s-*.yaml` files (don't skip versions)
145- 2. Set `use-spread : true` only if component repo has `spread.yaml` with test definitions
148+ 2. Set `test : true` only if component repo has `spread.yaml` with test definitions
1461493. Use canonical GitHub repos where available; verify release tag exists
1471504. Set `format` correctly based on component's build/distribution (Binary, Container, or both)
148151
@@ -163,17 +166,15 @@ Architecture detection happens at runtime in `pkg/cluster/setup.py`:
163166
164167` ` ` bash
165168# Validation
166- kube-galaxy validate all
167- kube-galaxy validate manifests
168- kube-galaxy test-manifest manifests/baseline-k8s-1.35.yaml
169+ kube-galaxy validate
170+ kube-galaxy validate --manifest manifests/baseline-k8s-1.35.yaml
169171
170172# Testing
171- kube-galaxy setup
172- kube-galaxy test local
173- kube-galaxy test spread
173+ kube-galaxy setup manifests/baseline-k8s-1.35.yaml
174+ kube-galaxy test manifests/baseline-k8s-1.35.yaml
174175
175176# Management
176- kube-galaxy cleanup all
177+ kube-galaxy cleanup manifests/baseline-k8s-1.35.yaml
177178kube-galaxy status
178179` ` `
179180
0 commit comments