Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ jobs:

- name: Create Kind cluster
uses: helm/kind-action@v1
with:
node_image: kindest/node:v1.35.0

- name: Wait for apiserver
run: |
Expand Down Expand Up @@ -69,5 +71,5 @@ jobs:
echo "=== Events ===" && kubectl get events --sort-by=.lastTimestamp || true
echo "=== Compositions ===" && kubectl get compositions -A -o yaml || true
echo "=== Synthesizers ===" && kubectl get synthesizers -o yaml || true
echo "=== ResourceSlices ===" && kubectl get resourceslices -A -o yaml || true
echo "=== ResourceSlices ===" && kubectl get resourceslices.eno.azure.io -A -o yaml || true
echo "=== Pods ===" && kubectl get pods -A -o wide || true
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,26 @@ Just print JSON objects to stdout and Eno will handle the rest.
- [Reconciliation](./docs/reconciliation.md)
- [Symphony](./docs/symphony.md)

### ResourceSlice naming

Eno's namespaced `ResourceSlice` CRD (`eno.azure.io/v1`) shares its plural
name with Kubernetes' cluster-scoped DRA `ResourceSlice`
(`resource.k8s.io/v1`, GA since 1.34 and served by default on every cluster,
including AKS GPU node pools). The two are unrelated and cannot collide at
the API server since they live in different groups, but an unqualified
`kubectl get resourceslices` may resolve to the DRA hardware inventory
instead of Eno's synthesis output. Always qualify the group when inspecting
Eno's resource slices:

```bash
kubectl get resourceslices.eno.azure.io -A
```

Eno's CRD intentionally defines no short name, to avoid adding another
ambiguous alias. Renaming the CRD was considered and rejected — the group
qualification already provides isolation, and a rename would be a breaking
API change for no benefit.

## Getting Started

### 1. Install Eno
Expand Down
7 changes: 5 additions & 2 deletions e2e/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,17 @@ schedule. No manual action is needed — opening a PR will trigger it.

The pipeline:

1. Creates a Kind cluster and deploys Eno into it.
1. Creates a Kind cluster (pinned to Kubernetes 1.35, which serves the GA DRA
`ResourceSlice` API alongside Eno's CRD) and deploys Eno into it.
2. The **"Run E2E tests"** output test names, pass/fail status, and log lines so you can
follow progress directly in the GitHub Actions log.
3. If any test fails, a **"Dump diagnostics"** step runs automatically and
prints the following to the job output:
- Controller and Reconciler pod logs
- Kubernetes events
- Full YAML of all Compositions, Synthesizers, and ResourceSlices
- Full YAML of all Compositions, Synthesizers, and Eno ResourceSlices
(queried as `resourceslices.eno.azure.io` to avoid ambiguity with the
cluster-scoped DRA `ResourceSlice` in `resource.k8s.io`)
- Pods across all namespaces

## Adding a New Test
Expand Down
Loading
Loading