Skip to content

ci: run the CNTi essential tests nightly and show the result as a badge - #669

Merged
pirog-spb merged 1 commit into
edgecomllc:mainfrom
martin-mat:cnti-essential
Oct 31, 2026
Merged

pirog-spb merged 1 commit into
edgecomllc:mainfrom
martin-mat:cnti-essential

Conversation

@martin-mat

@martin-mat martin-mat commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Adds the nightly CNTi essential-tests check and badge proposed in #668. A workflow installs the chart with its defaults on a kind cluster of a control plane and two workers, runs the CNTi Test Suite's essential tests with lfn-cnti/testsuite-action, and shows the result as a badge in the README.

  • .github/workflows/cnti.yml:
    • essential runs nightly and by hand on main. It's the only job that publishes the badge, to the orphan branch badges, and the only one with a write token.
    • essential-pr runs the same steps read-only on pull requests that change the job, its configuration or the chart, and on manual runs of other branches.
    • Both run only in edgecomllc/eupf, so forks with scheduled workflows enabled don't run them.
    • Suite v2.3.0 and action v1.2.0, both pinned; the action and checkout by commit.
    • On failure, a diagnostics step prints the pods, events and eUPF logs.
  • .github/cnti/cnti-testsuite.yaml: the suite configuration. The chart is installed with its defaults. The only settings are the released image tags the rolling update, downgrade and rollback tests move to (0.7.0 and 0.6.4).
  • .github/cnti/kind.yaml: three nodes, with net.ipv4.ip_forward allowed on every kubelet, as the chart README asks.
  • README.md: the badge in the existing badge row.

Tested on martin-mat/eupf, on top of the current main, with the repository guard pointed at the fork:

Case Run Result
Manual run on main 38299764373 essential with a write token: 14 of 19, 4 min, badge published
main with #666 38299767825 essential-pr, read-only: 15 of 19, passes, nothing published
Pull request changing .github/cnti/ 38299759888 essential-pr, read-only: 14 of 19, nothing published

Best merged after #666, so the first nightly is green. The issue explains the four tests that still don't pass.

Closes #668.

🤖 Generated with Claude Code

Comment thread .github/workflows/cnti.yml Resolved
@martin-mat
martin-mat force-pushed the cnti-essential branch 2 times, most recently from 877ae38 to 433c780 Compare October 26, 2026 16:18
Comment thread .github/cnti/cnti-testsuite.yaml Resolved
pirog-spb
pirog-spb previously approved these changes Oct 30, 2026
A workflow installs the chart with its defaults on a kind cluster of a
control plane and two workers, runs the CNTi Test Suite's essential tests
against it with lfn-cnti/testsuite-action, and publishes the result as a
badge in the README.

- essential: nightly and by hand on main; the only job that publishes the
  badge, to the orphan branch badges, and the only one with a write token.
- essential-pr: the same steps read-only on pull requests that change the
  job, its configuration or the chart, and on manual runs of other
  branches.
- Both run only in edgecomllc/eupf, so forks with scheduled workflows on
  don't run them. Suite v2.3.0, action v1.2.0, pinned by commit.
- .github/cnti/: the suite configuration (the chart's defaults, nothing
  else) and the kind config, whose kubelets allow net.ipv4.ip_forward and
  whose nodes have the host's bpffs at /sys/fs/bpf, as the chart README
  asks.

Signed-off-by: Martin Matyas <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@pirog-spb

Copy link
Copy Markdown
Collaborator

@martin-mat It seems we’re ready to merge this pull request, isn’t it?

@martin-mat

Copy link
Copy Markdown
Contributor Author

@pirog-spb yes, it's ready, thanks for re-approving.

One thing after merging: the badge branch badges is created by the first run on main, so the README badge shows nothing until then. Running "CNTi essential" once by hand from the Actions tab (on main) publishes it right away; otherwise the nightly does at 03:37 UTC.

@pirog-spb
pirog-spb merged commit 4433619 into edgecomllc:main Oct 31, 2026
16 of 24 checks passed
pirog-spb pushed a commit that referenced this pull request Oct 31, 2026
…ge (#669)

Signed-off-by: Martin Matyas <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
(cherry picked from commit 4433619)
Signed-off-by: pirog-spb <[email protected]>
martin-mat added a commit to lfn-cnti/testsuite that referenced this pull request Nov 1, 2026
eUPF's badge job went live on main on 31 Oct (edgecomllc/eupf#669). It runs
nightly with the action's defaults, its own kind config and no steps of its
own before the action, so its entry needs no prepare or environment.

Signed-off-by: Martin Matyas <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@martin-mat

Copy link
Copy Markdown
Contributor Author

@pirog-spb heads-up: the first nightly on main failed, and the cause is the chart, not the tests: run 41298996824.

.deploy/helm/eupf/Chart.yaml on main now has appVersion: 1.0.0 (8946f21), and the image tag defaults to it. ghcr.io/edgecomllc/eupf:1.0.0 doesn't exist yet, only 1.0.0-rc.1, so the pod stays in ImagePullBackOff and no test runs.

Anyone installing the chart from main with its defaults hits the same error, so the root fix is to have the chart's appVersion point at an image that exists: publish 1.0.0, or set appVersion to 1.0.0-rc.1 until the final release.

The badge still shows 16/19 because a failed install publishes no new score, so it stays at the last good result until a nightly installs again.

martin-mat added a commit to lfn-cnti/testsuite that referenced this pull request Nov 2, 2026
eUPF's badge job went live on main on 31 Oct (edgecomllc/eupf#669). It runs
nightly with the action's defaults, its own kind config and no steps of its
own before the action, so its entry needs no prepare or environment.

Signed-off-by: Martin Matyas <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: a nightly CNTi essential-tests check and badge for the eUPF chart

2 participants