Skip to content

Latest commit

 

History

History
57 lines (42 loc) · 1.82 KB

File metadata and controls

57 lines (42 loc) · 1.82 KB

tinysystems/e2e

Post-release end-to-end validation for Tiny Systems modules.

This repo runs slow, real-cluster scenarios against released module versions and records the result. It does not gate releases — releases ship first, this repo retroactively stamps each version with a pass/fail.

How it runs

  1. A module repo (e.g. common-module) cuts a release tag.
  2. Its CI dispatches a module-released event to this repo with {module, version}.
  3. This repo's CI spins up a kind cluster, installs the latest CRD chart and the module at the released version, runs scenarios/, and writes results/<module>/<version>.json.
  4. The result is committed back. README's status table is regenerated.

A second workflow (retest-all) re-runs the current scenarios against every known (module, version) pair — useful when a new scenario lands and you want to find out which historical versions it now flags.

Running locally

make cluster                                # create kind cluster
make install MODULE=common-module VERSION=v0.5.0
make test                                   # run scenarios
make teardown                               # delete kind cluster

Or all-in-one:

make e2e MODULE=common-module VERSION=v0.5.0

Layout

scenarios/    # behavior tests — talk to the cluster via CRDs, SDK-agnostic
harness/      # k8s client + helpers for scenarios
scripts/      # kind + helm wrappers
results/      # per-(module,version) test results, committed to git

Why SDK-agnostic

Scenarios use unstructured against installed CRDs rather than importing SDK types. That keeps the test suite valid across SDK refactors — what's being tested is the API contract (the CRD shape and the runtime's behavior), not internal Go types.

Status

Module Latest tested
populated by CI