• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

karellen / kubernator / 24366161103
82%

Build:
DEFAULT BRANCH: master
Ran 13 Apr 2026 09:54PM UTC
Jobs 5
Files 23
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 Apr 2026 08:49PM UTC coverage: 76.88% (+0.4%) from 76.526%
24366161103

push

github

web-flow
Add kind plugin; migrate internal integration tests from minikube (#100)

## Summary

Introduces a `kind` (Kubernetes IN Docker) plugin as a faster-inner-loop
alternative to the existing `minikube` plugin, and migrates all 14
internal integration tests from minikube to kind. `MinikubePlugin` is
retained unchanged as a supported plugin for external users and keeps CI
signal through a dedicated `minikube_smoke/` test.

### `KindPlugin`

- Wraps the `kind` binary (downloaded on demand, same pattern as
`MinikubePlugin`).
- Defaults node images to `ghcr.io/karellen/kindest-node:v<k8s_version>`
— pre-built for every upstream K8s release ≥ 1.29.0 by the
`kindest-node-release` workflow (#99).
- Multi-node + HA via `nodes` / `control_plane_nodes` kwargs;
`control_plane_nodes >= 2` triggers kind's automatic haproxy LB
container in front of the API servers.
- Lifecycle maps minikube's `start`/`stop`/`delete` semantics onto
kind's `create`/`delete` CLI plus `docker stop`/`docker start` on
labeled node containers (`label=io.x-k8s.kind.cluster=<profile>`).
`keep_running=False` stops without deleting so the next run resumes with
state intact; `start_fresh=True` deletes and recreates.
- Provider auto-detects `docker` then `podman`
(`KIND_EXPERIMENTAL_PROVIDER=podman`).
- Additional knobs: `node_image`, `node_image_registry`,
`extra_port_mappings`, `feature_gates`, `runtime_config`, raw `config`
YAML override.

### Intentional non-scope

The plugin does **not** install CSI hostpath, external-snapshotter, or
cloud-provider-kind. Those are separate `kubernetes-sigs` projects, not
part of kind itself. Users who need them install them explicitly in
their own `.kubernator.py`, same as they would on any upstream cluster.
This is the key shape difference from `MinikubePlugin`, which wraps
minikube's bundled addon system — on kind there is no addon system to
wrap.

### Integration test changes

- New `src/integrationtest/python/multi_node/` — exercises HA 3
control-plane + 2 ... (continued)

539 of 890 branches covered (60.56%)

Branch coverage included in aggregate %.

231 of 264 new or added lines in 1 file covered. (87.5%)

5 existing lines in 2 files now uncovered.

2763 of 3405 relevant lines covered (81.15%)

4.06 hits per line

Uncovered Changes

Lines Coverage ∆ File
33
82.37
src/main/python/kubernator/plugins/kind.py

Coverage Regressions

Lines Coverage ∆ File
3
71.66
-0.4% src/main/python/kubernator/api.py
2
75.77
-2.58% src/main/python/kubernator/plugins/minikube.py
Jobs
ID Job ID Ran Files Coverage
1 24366161103.1 13 Apr 2026 09:54PM UTC 23
76.79
GitHub Action Run
2 24366161103.2 13 Apr 2026 09:54PM UTC 23
76.88
GitHub Action Run
3 24366161103.3 13 Apr 2026 09:55PM UTC 23
76.88
GitHub Action Run
4 24366161103.4 13 Apr 2026 09:56PM UTC 23
76.88
GitHub Action Run
5 24366161103.5 13 Apr 2026 09:57PM UTC 23
76.88
GitHub Action Run
Source Files on build 24366161103
  • Tree
  • List 23
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • f0e15996 on github
  • Prev Build on master (#24322768439)
  • Next Build on master (#24375642090)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc