You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit aa7ce2e
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .agents/skills/helm-dev-environment/SKILL.md
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -445,6 +445,16 @@ public `SandboxStatus` image fields. Resume a pending operation with
445
445
`SandboxUpdates.UpdateSandbox`, the current resource version, and no selected
446
446
fields, following the documented request-ID semantics.
447
447
448
+
449
+
For the opt-in application listener, build/import matching branch images and run
450
+
`mise run e2e:kubernetes:app-listener`; see `e2e/kubernetes/app-listener/README.md`
451
+
for image, topology, delivery-mode and takeover inputs. The task owns an isolated
452
+
Helm release/namespace, temporary TLS material, in-cluster clients, teardown and
453
+
evidence under `results/app-listener/`. It checks policy denial, Pod-IP ingress without app Services, shared-owner takeover, gateway-outage expiry and disabled-listener
454
+
gateway compatibility, without discovery or a proxy. CI runs four cases under
455
+
`test:e2e`and includes them in `Core E2E result`. Its reusable kind setup installs
456
+
pinned Calico only for this lane; other jobs retain kindnet. Local k3s already
457
+
enforces policy. The lower-level `verify.py` can target a predeployed release.
448
458
The kube e2e wrapper creates only one port-forward, to `svc/openshell`; it no
449
459
longer forwards the unauthenticated health listener or runs a `/readyz` e2e
450
460
target. `/readyz` remains covered by server unit/integration tests.
@@ -645,3 +655,14 @@ identity and contents, command/environment changes, and request replay.
645
655
`OPENSHELL_E2E_UPDATE_ORIGINAL_IMAGE`and `OPENSHELL_E2E_UPDATE_TARGET_IMAGE` can
646
656
select mirrored Alpine 3.21 and 3.22 manifests. Defaults use the public registry
647
657
cache; keep immutable digests when overriding them.
658
+
659
+
## App listener fixture
660
+
661
+
The opt-in `deploy/helm/openshell/ci/values-app-listener.yaml` enables the
662
+
supervisor listener at port 9443 without discovery or a proxy. Provision the
663
+
operator TLS Secret and an ingress-client NetworkPolicy first. Follow
664
+
`e2e/kubernetes/app-listener/README.md`for direct in-cluster verification,
665
+
shared-member selection, and the HA follow-up checks. Keep the fixture disabled
666
+
in default profiles. Dedicated and shared supervisors expose app ports on their
667
+
Pod IPs without app Services. Select the member owning the sandbox; automatic
668
+
owner selection belongs to the later discovery API.
| Transient infrastructure failure in a pre-release, including a registry push | After approval, `gh run rerun <run-id> --failed`. `Release` won't select the run until all of it passes. |
220
220
| Pre-release run ends in `startup_failure`| The workflow file is invalid at that commit. Fix it in a new `-pre.N` (Monday step 3). |
221
221
| Code defect or `Cargo Deny` advisory | Rerunning won't help. Fix it in a new `-pre.N` (Monday step 3). |
222
-
|`Release` fails after selection | After approval, rerun only the failed jobs that haven't published. |
222
+
|`Release` fails after selection | After approval, rerun only the failed jobs that haven't published. If the run's artifacts expired or its jobs were skipped, dispatch `Release` again with `-f tag=vX.Y.Z`; it publishes only what is missing. |
Copy file name to clipboardExpand all lines: .agents/skills/test-release-canary/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ Note `install.sh` is pulled from `raw.githubusercontent.com/NVIDIA/OpenShell/${h
95
95
96
96
## Testing artifacts from a specific SHA
97
97
98
-
`Release Dev` publishes two chart versions for every dev build (see `.github/actions/release-helm-oci/action.yml:89-102`):
98
+
`Release Dev` publishes two chart versions for every dev build (see the push steps in `.github/actions/release-helm-oci/action.yml`):
99
99
100
100
- `oci://ghcr.io/nvidia/openshell/helm-chart:0.0.0-dev`— floating, overwritten on every main push.
101
101
- `oci://ghcr.io/nvidia/openshell/helm-chart:0.0.0-dev.<sha>`— immutable, `appVersion` set to the same SHA so it pulls the matching `gateway`, `sandbox`, and `supervisor` images.
Copy file name to clipboardExpand all lines: .agents/skills/watch-github-actions/SKILL.md
+9-3Lines changed: 9 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -125,6 +125,12 @@ gh run list --json databaseId,status,headBranch,url --jq '.[] | {id: .databaseId
125
125
126
126
## View Job Logs
127
127
128
+
For Kubernetes app-listener E2E failures during kind setup, inspect the uploaded
129
+
`results/app-listener/cni-setup/` evidence. It includes node and Calico pod
130
+
descriptions, events, and current/previous container logs. A CNI rollout timeout
131
+
occurs before the listener tests run; use these diagnostics to distinguish image
132
+
pulls, init failures, and readiness failures.
133
+
128
134
For tmachine Kubernetes conformance failures, inspect the `e2e-results-conformance-conformance-ubuntu-k3s-*` artifact. Its `diagnostics/` holds the K3s report with Agent Sandbox controller state, leader leases, events, and current and previous controller logs. The k3s installers check reconciliation after guest boot with a temporary scheduling-gated Sandbox probe, so a failed probe fails provisioning before any test runs. Distinguish a failed controller probe from a failed conformance scenario; gateway connectivity and controller Deployment availability do not prove reconciliation works.
129
135
130
136
For the `e2e-suites` lane (`.github/workflows/e2e-suites.yml`), the last lines of the job log give the runner's result: PASS, FAIL (exit 1) after the end of the nextest log (which names the failed tests), or ERROR (exit 2) with the step that broke. FAIL and ERROR also appear as annotations on the run's summary page. Then inspect the `e2e-results-<family>-<package>-<environment>-<installer>` artifact, which holds `junit.xml`, `nextest.log` and, after a failure, the guest's `diagnostics/`.
@@ -197,7 +203,7 @@ qualification; stable publication is blocked, while published pre-release
197
203
artifacts remain available. The Pre-release failure notification includes the
198
204
run link. Both callers share `release-build.yml` and `release-publish.yml`.
199
205
Qualification evidence remains in Actions; publishing a copy to OCI storage is best effort.
200
-
Snap Store uploads happen only for stable releases after qualification passes.
206
+
Pre-release uploads snaps to `latest/beta`; stable releases upload to `latest/stable`.
201
207
202
208
For a release notes preview, dispatch `release.yml` with `notes-only=true` and
203
209
`tag=<stable-tag>`. The generator resolves the previous reachable stable tag;
@@ -214,8 +220,8 @@ and qualification, and keeps the notes only in the `release-notes` artifact.
214
220
This job is advisory: a notes failure emits a warning without failing the
215
221
prerelease run or blocking promotion. Stable publication reuses the promoted
216
222
prerelease's `release-notes` artifact, retagged, and generates notes only when
217
-
that preview is unavailable. The `Select Qualified Prerelease` summary says
218
-
which happened.
223
+
that preview is unavailable. The Release workflow's `Release Notes` job summary
224
+
says which happened, and Publish waits for that job.
219
225
220
226
For `Codex Compatibility Review`, inspect its job summary and the
221
227
`compatibility-review-run-<run-id>-attempt-<attempt>` artifact. Confirm the
0 commit comments