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
Copy file name to clipboardExpand all lines: README.md
+37Lines changed: 37 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,6 +139,43 @@ make api-lint # Kube API linter on api/ (golangci-lint custom + plugin; se
139
139
140
140
**`make test-e2e`** runs **`go test -tags=e2e ./test/e2e/...`** against a live cluster with the operator running. Prerequisites: **`make run TEMPLATE_NAME=lightspeed-agent-mock`** (or deployed operator with **`--template-name=lightspeed-agent-mock`**) and mock agent SandboxTemplate applied (**`kubectl apply -k test/agent/sandboxtemplate`**). See `test/e2e/` package doc for details.
141
141
142
+
### Product E2E (real providers)
143
+
144
+
Product E2E runs the troubleshooting scenarios against a real LLM provider. It deploys (or reuses) the operator, clones `rhobs/troubleshooting-scenarios`, and runs the `product_e2e`-tagged tests. For example, to run Claude scenarios:
`claude` and `gemini` require `VERTEX_PROVIDER_KEY_PATH` and `VERTEX_PROJECT_ID`; `openai` requires `OPENAI_PROVIDER_KEY_PATH`. The runner accepts one or more providers (`claude`, `gemini`, and/or `openai`).
155
+
156
+
| Variable | Purpose |
157
+
|---|---|
158
+
|`E2E_SCENARIO_TAGS=alert`| Run scenarios carrying the `alert` tag instead of the default `core` tag. Multiple tags are an **AND** filter: `core,alert` requires both. |
|`E2E_OTEL_ENABLED=false`| Disable the persistent OTEL/Postgres collector used for product-E2E artifacts. It is enabled by default. |
162
+
|`E2E_OTEL_IMAGE=quay.io/.../collector:tag`| Override the OTEL collector image. |
163
+
|`ARTIFACT_DIR=/path/to/artifacts`| Directory where test and diagnostic artifacts are written. |
164
+
165
+
With `ARTIFACT_DIR` set, artifacts are arranged per provider:
166
+
167
+
```text
168
+
artifacts/<provider>/
169
+
├── product-e2e-output.log # Go test output
170
+
├── operator-logs.txt # controller-manager logs
171
+
├── pods.yaml # remaining operator-namespace pods
172
+
├── podlogs/ # best-effort direct sandbox-pod log backup
173
+
└── runs/<run-name>/
174
+
└── otel-sandbox.json # persisted OTEL collector records for the run
175
+
```
176
+
177
+
The runner configures the collector with its Postgres backend, because the default `nop` pipeline drops records and does not expose the admin API used to export per-run records. Direct pod-log capture is best effort: sandbox pods may be removed immediately after completion, so persisted OTEL records are the primary diagnostic source.
178
+
142
179
For noisy debugging: **`go test ./controller/agenticrun/... -v`**, **`go test ./api/... -v`**, **`go test ./cli/... -v`**.
0 commit comments