Skip to content

"NO-JIRA: chore: sync with upstream 2026-07-09 - 23 new commits"#379

Merged
openshift-merge-bot[bot] merged 41 commits into
mainfrom
upstream-sync
Jul 15, 2026
Merged

"NO-JIRA: chore: sync with upstream 2026-07-09 - 23 new commits"#379
openshift-merge-bot[bot] merged 41 commits into
mainfrom
upstream-sync

Conversation

@openshift-ci-robot

@openshift-ci-robot openshift-ci-robot commented Jul 9, 2026

Copy link
Copy Markdown

🔄 Upstream Sync

Update: Wed Jul 15 08:02:47 UTC 2026

New changes detected from upstream:

lunarwhite and others added 23 commits June 29, 2026 15:47
…date description (containers#1184)

Signed-off-by: Yuedong Wu <dwcn22@outlook.com>
…1242)

Bumps the golang-x group with 1 update: [golang.org/x/mod](https://github.com/golang/mod).


Updates `golang.org/x/mod` from 0.36.0 to 0.37.0
- [Commits](golang/mod@v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: golang.org/x/mod
  dependency-version: 0.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
…ers#1247)

* ci(mcpchecker): reference workflow event inputs via env vars

Pass GitHub event context (event name, repository, comment body, issue/PR
number, workflow run id, ...) through each job's `env:` block and reference
it as shell variables instead of interpolating `${{ ... }}` expressions
directly inside `run:` scripts. This follows the GitHub Actions
recommendation for handling event inputs, keeps shell quoting consistent,
and improves readability.

The check-trigger permission check now returns early when the commenter is
not a collaborator with admin/write access. Behavior is unchanged for
scheduled runs, workflow_dispatch, and authorized /run-mcpchecker comments.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>

* ci(mcpchecker): route remaining run-step values through env vars

Address review feedback: env-route the eval-context values written in the
Save evaluation context step (matching the existing DIFF_OUTPUT handling),
reference the exported $KIND_CLUSTER_NAME in the kind make targets, and quote
$GITHUB_OUTPUT in the suite case block. No ${{ }} expressions remain inside
any run: script.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>

---------

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a root-level SECURITY.md so the GitHub Security tab surfaces a private vulnerability reporting path for the project.

Reports are routed through GitHub's built-in private vulnerability reporting. The policy documents supported versions (latest release), best-effort triage by the repo maintainers (downstream-affecting issues handled via Red Hat product security), and disclosure through GitHub Security Advisories and release notes. CONTRIBUTING.md now points at the new policy instead of the bare advisories listing.

Closes containers#1132

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s#1243)

Follow-up to containers#1240. The kubevirt resource discovery helpers logged
listing failures through the global slog default logger, which is never
wired to klog. That bypassed the project's log sink (verbosity, file
output, secret redaction, OTEL), and since slog's default minimum level
is Info the Debug lines were silently dropped at runtime anyway. Route
all six through klog.FromContext(ctx) at V(4) with the klogutil helpers,
matching the convention used across the rest of the codebase.

Also switch the MCP SDK logger fallback in NewServer from
klog.Background() to klog.FromContext(ctx) so it honors the contextual
logger when no SDKLogger is supplied.

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…containers#1250)

The MCPB bundle and MCP Registry publish workflows run on workflow_run completions of the Release workflow. Scope their job conditions so they only act on this repository's own tag-push releases (or an explicit manual dispatch), instead of on any Release workflow completion.

This keeps publishing deterministic and avoids spurious publish runs.

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s#1237)

* chore(evals): fix stale docs and drifted Makefile defaults

The local mcpchecker eval docs and Makefile defaults drifted after the
ACP migration (containers#839) and the kubernetes -> core suite rename (containers#1081),
making a local run hard to reproduce from the docs alone.

- add a `make claude-agent-acp` target so the claude-code agent works
  out of the box (supersedes containers#947)
- add SUITE/AGENT/MODEL knobs to `make run-evals` for a no-OpenAI-key
  single-suite run, plus a documented quickstart
- fix the default label selector (suite=kubernetes selected zero tasks
  -> suite=core) and the readiness probe (/health 404 -> /healthz, -f)
- rewrite evals/README.md for the ACP agent and document ANTHROPIC_MODEL
- refresh the per-suite kubevirt configs and document top-level vs
  per-suite eval configs

Closes containers#1234

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>

* chore(evals): bump core-eval-testing to kubernetes-extension v0.0.4

Finishes aligning the drifted eval configs with the rest of the tree.

- bump the 15 evals/core-eval-testing/** configs from
  kubernetes-extension@v0.0.3 to @v0.0.4, matching the claude-code,
  openai-agent, and kubevirt configs
- clarify evals/tasks/README.md that a few subdirectories
  (kiali/scripts, kubevirt/helpers, tekton/helpers) hold shared helpers
  rather than task scenarios

Refs containers#1234

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>

* feat(evals): judge with claude-code for keyless local eval runs

Route the LLM judge through claude-code for the claude-code agent, so the
whole flow (agent + judge) runs on the Claude subscription with no OpenAI
key. The legacy `verify: contains:` short form is judge-evaluated (semantic),
so this is what makes those tasks runnable keyless. Verified locally:
list-images-for-pods and ahoy pass keyless with real judge verdicts.

- set llmJudge.ref.type: builtin.claude-code in evals/claude-code/eval.yaml
  (was openai:gpt-5) and the kubevirt/claude-code per-suite config (was no
  judge / noop). CI is unaffected: it runs evals/openai-agent/eval.yaml,
  which keeps the independent openai:gpt-5 judge.
- pin the adapter with CLAUDE_AGENT_ACP_VERSION (next to MCPCHECKER_VERSION)
  and mirror the mcpchecker recipe style (set -e + success echo)
- document the keyless claude-code judge, the version knob, and that
  `verify: contains:` is semantic judging rather than a literal match

Refs containers#1234, containers#947, containers#995

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>

---------

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…RS (containers#1248)

Make .github/CODEOWNERS the single source of truth for toolset
ownership and toolset labels. Core maintainers (@manusa, @Cali0707)
own everything by default; kiali, kubevirt, tekton and kcp are owned by
their contributing maintainers, derived from git history.

Add .github/workflows/toolset-triage.yaml, a pull_request_target
workflow that parses CODEOWNERS and, per PR:
- applies/removes the `toolset/<name>` label from the current changed
  files (replacing actions/labeler, whose default behaviour left stale
  labels behind), and
- @-mentions a block's owners, since GitHub only auto-requests review
  from code owners that have write access and most toolset owners are
  external contributors who cannot be granted it.

Retire .github/labeler.yaml and the labeler workflow. The new config
also covers the eval-task and docs paths and the kcp toolset, which the
old labeler config missed.

The workflow never checks out or runs PR code.

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ontainers#1252)

Bumps the github-actions group with 1 update: [actions/github-script](https://github.com/actions/github-script).


Updates `actions/github-script` from 8 to 9
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](actions/github-script@v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* test(e2e): add initial e2e test

Signed-off-by: Calum Murray <cmurray@redhat.com>

* test(e2e): add make targets

Signed-off-by: Calum Murray <cmurray@redhat.com>

* test(e2e): add kind e2e action

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: address review comments

Signed-off-by: Calum Murray <cmurray@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
The mcpchecker evaluation depends on model and judge API secrets that
forks don't have access to, so the pipeline would only ever fail there.
Gate the check-trigger job (which gates the whole pipeline) on the
upstream repository, matching the fork guard already used by the
release workflows.

Signed-off-by: Marc Nuri <marc@marcnuri.com>
…iners#1269)

Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6.0.3 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](actions/checkout@v6.0.3...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
* chore(e2e): cleanup e2e framework

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore(e2e): harden port-forward stdout handling

Send kubectl port-forward stdout to a temp file instead of an undrained
PIPE and poll it with a bounded deadline for the "Forwarding from" line.

kubectl writes "Handling connection for <port>" to stdout on every
forwarded connection, so the single readline() left the pipe undrained
for the life of the process; once the ~64 KB OS buffer fills kubectl
blocks on write and the forward stalls -- the exact deadlock the
stderr-to-file handling already avoids. The readline() was also an
unbounded blocking read that could hang the suite if kubectl wedged
during setup.

A temp file never blocks the writer and the 30s deadline bounds the
wait. Scanning the whole output also makes port parsing order-
independent on dual-stack hosts, and both stream files are closed on
teardown. Also wait() after every kill() so terminated port-forward
processes are reaped and returncode is populated in error messages.

Signed-off-by: Marc Nuri <marc@marcnuri.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Marc Nuri <marc@marcnuri.com>
* Target-specific tool filtering

- A new config option, `enable_target_compatibility_tool_filters`,
  causes init to run potentially-expensive per-target queries to decide
  whether particular tools should be exposed. By default, this is off:
  we will expose all tools not otherwise filtered.
- The `Openshift` interface is no more. It was being used at several
  levels of execution which called for different behaviors/semantics. It
  is replaced by `HasGVKs()` and `AnyTargetHasGVKs()` -- see below.
- `HasGVKs()` is a new low-level utility function that operates at the
  scope of a single discovery client (talking to a single cluster). It
  treats `404` errors appropriately ("does not have the requested GVKs")
  but bubbles other errors up to the caller. It directly replaces the
  `IsOpenshift()` (note: lowercase `shift`, not the same as
  `IsOpenShift()`) utility in the `ClusterState` watcher, and also
  serves as the workhorse within...
- `AnyTargetHasGVKs()` is a higher-level method on a new
  `FilteringProvider` interface.
- `FilteringProvider` takes the place of the `Openshift` interface as
  composed into the various `Provider` implementations. It is
  named/positioned to be extensible to more toolset filters in the
  future.
- `ProviderGVKFilter` is the equivalent of an "abstract class": it
  satisfies `FilteringProvider` by providing a concrete implementation
  of `AnyTargetHasGVKs()` that iterates over targets retrieved from a
  `ManagerProvider`, asking `HasGVKs()` of each of them. Importantly, it
  contains logic for how to handle edge cases (e.g. errors from
  `HasGVKs()`). Specific `Provider` implementations take advantage of
  this by embedding `ProviderGVKFilter` and supplying their specific
  implementation of `ManagerProvider`.
- The erstwhile `Provider` interface is split up. Currently all
  `Provider`s are "kubernetes Providers"; this division anticipates
  higher level Providers like ACM. Methods applicable to kubernetes
  environments remain in `kubernetes.Provider`, while higher-level
  methods are moved to a new `apis.TargetProvider` interface.
- `ManagerProvider` is a new, thin interface that provides the glue
  between a `kubernetes.Provider` and the existing implementation of
  `FilteringProvider`. Its implementors must supply the
  `GetTargetManagers()` function that allows `ProviderGVKFilter()` to
  iterate over targets.
- `ServerTool` grows a new field, `TargetCompatibilityFilters`, a slice
  of (closure, so they can use a `FilteringProvider` without accepting
  it as a param) functions each returning a `bool`. When
  `enable_target_compatibility_tool_filters` is on, the high-level
  `isToolApplicable()` filter invokes those funcs to decide whether to
  expose the tool. This abstraction is extensible for arbitrary future
  target-specific filters; but for now we register a specific use of
  `AnyTargetHasGVKs()` that looks for the Route Kind to determine
  whether to filter the `projects_list` tool. This replaces the previous
  special-case `IsOpenShift()` conditional.
- On the testing side, the switch from `IsOpenShift()` to `HasGVKs()`
  rendered the existing `MockServer` insufficient for certain suites. It
  is replaced by `envtest` for these cases. The existing `envtest`
  helpers are refactored so they can be shared by these new suites and
  the existing consumers.

Behaviorally:
- Whereas previously we would *always* query *one* target for
  `IsOpenShift()` and filter according to that one target's response, we
  now properly query all targets for the `Provider`.
- We are permissive by default. We behave as if the target *is*
  OpenShift if:
  - `enable_target_compatibility_tool_filters` is `false`
  - ^ is `true` and *any* target reports that it has the Route Kind.
  - ^ is `true` and we experience any errors attempting to query the
    targets.

I.e. we will only *hide* a tool if all of the following are true:
- `enable_target_compatibility_tool_filters` is `true`
- All targets were queried successfully
- All targets reported `HasGVKs(Route): false`

Signed-off-by: Eric Fried <efried@redhat.com>
Co-Authored-By: claude

* fix(api): detect memcache ErrCacheNotFound in HasGVKs instead of a string match

HasGVKs mapped a missing GroupVersion to (false, nil) via IsNotFound OR a literal
`err.Error() == "not found"` match. In production the discovery client is a
memory.NewMemCacheClient, whose ServerResourcesForGroupVersion returns
memory.ErrCacheNotFound (for which IsNotFound is false) for an absent
GroupVersion, so the string comparison is the load-bearing path, not a fallback.
A client-go change to that message would turn missing-GV into (false, err), which
AnyTargetHasGVKs treats as fail-open, silently re-exposing filtered tools.

Use errors.Is(err, memory.ErrCacheNotFound), and add a memcache-backed test that
exercises this branch (the existing cases use a raw discovery client and only hit
the IsNotFound path).

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: document target-compatibility flag and fix misleading test comments

- docs: document enable_target_compatibility_tool_filters in the Access Control
  section of configuration.md (it was previously undocumented).
- test: drop the dead fakeDerivedProvider.HasGVKs method, left over after the
  provider interface dropped HasGVKs.
- test: reword the envtest StopEnvTest comment (it cannot re-arm sync.Once in the
  same process) and the mcp TestMain comment (each test package runs as its own
  process and initializes its own envtest instance, contradicting the old
  "shared across packages" note).

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* OCPMCP-326: Remove TargetCompatibilityToolFilteringEnabled config option

We decided that target compatibility tool filtering should always be
enabled for now. If it turns out to be too expensive in some scenarios,
we'll revisit adding a config option for it.

Co-Authored-By: claude
Signed-off-by: Eric Fried <efried@redhat.com>

* test(kubernetes): use MockServer for provider suites to avoid a second envtest control plane

The provider suites were switched to envtest, which stands up a second
kube-apiserver+etcd control plane in the kubernetes package on top of the
one already run by the mcp package. `go test ./...` runs package binaries in
parallel, so both control planes come up at once; on the memory-constrained
macos-15-intel runner kube-apiserver is OOM-killed ("signal: killed") and the
run fails, while macos-latest (arm64) and Linux have enough headroom to pass.

These suites only exercise discovery and provider plumbing, which MockServer
already serves (see the pkg/api HasGVKs tests, including the memcache path).
Revert them to MockServer so only the mcp package needs envtest, removing the
concurrent control planes and letting the kubernetes package run without any
envtest download.

Also fold in two review nits:
- Serve route.openshift.io/v1 from NewInOpenShiftHandler so the OpenShift
  toolset golden reflects a real OpenShift cluster (routes present) and guards
  the Route hint in the resources_* descriptions.
- Replace the stale commonApiVersion TODO in initResources with a doc comment.

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Signed-off-by: Eric Fried <efried@redhat.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: josunect <jcordoba@redhat.com>
Several `core` mcpchecker tasks failed for every agent because of bugs
in the task definitions, not agent capability (reported in containers#1238).

- multi-container-pod-communication: verify curled nginx-unprivileged
  on :80, but that image only listens on :8080 (it cannot bind :80 as a
  non-root user), so curl exited 7. setup/cleanup also used namespace
  `multi-container-test` while the prompt and verify use
  `multi-container-logging`. Probe :8080 and align the namespace.
- filter-events-by-type / filter-namespace-by-name: verify grep'd the
  agent's prose for an exact wording and word order, rejecting correct
  answers phrased differently (confirmed against six weekly gpt-5 runs,
  two of which never write "Warning" or "bad-pod"). Anchor on the event
  content and on namespace name presence/absence instead.
- resize-pvc: kind's default local-path StorageClass cannot expand
  volumes, so the resize never took effect. Add a trimmed hostPath CSI
  driver (make csi-hostpath-install) with a resize-capable StorageClass,
  install it in CI for the core suite, and point the PVC at it.

Refs containers#1238

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bumps the golang-x group with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/sync](https://github.com/golang/sync).


Updates `golang.org/x/mod` from 0.37.0 to 0.38.0
- [Commits](golang/mod@v0.37.0...v0.38.0)

Updates `golang.org/x/sync` from 0.21.0 to 0.22.0
- [Commits](golang/sync@v0.21.0...v0.22.0)

---
updated-dependencies:
- dependency-name: golang.org/x/mod
  dependency-version: 0.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/sync
  dependency-version: 0.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ontainers#1274)

Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.19.0 to 3.20.0.
- [Release notes](https://github.com/coreos/go-oidc/releases)
- [Commits](coreos/go-oidc@v3.19.0...v3.20.0)

---
updated-dependencies:
- dependency-name: github.com/coreos/go-oidc/v3
  dependency-version: 3.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 557 files, which is 407 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9494d7c7-9ca9-4ffe-9e78-f632ad37de65

📥 Commits

Reviewing files that changed from the base of the PR and between b138b9c and 80738a7.

⛔ Files ignored due to path filters (7)
  • go.sum is excluded by !**/*.sum
  • test/e2e/uv.lock is excluded by !**/*.lock
  • vendor/github.com/klauspost/compress/s2sx.sum is excluded by !**/*.sum
  • vendor/go.opentelemetry.io/proto/otlp/collector/logs/v1/logs_service.pb.go is excluded by !**/*.pb.go
  • vendor/go.opentelemetry.io/proto/otlp/collector/logs/v1/logs_service.pb.gw.go is excluded by !**/*.pb.gw.go
  • vendor/go.opentelemetry.io/proto/otlp/collector/logs/v1/logs_service_grpc.pb.go is excluded by !**/*.pb.go
  • vendor/go.opentelemetry.io/proto/otlp/logs/v1/logs.pb.go is excluded by !**/*.pb.go
📒 Files selected for processing (557)
  • .github/CODEOWNERS
  • .github/labeler.yaml
  • .github/workflows/build.yaml
  • .github/workflows/check-go-version.yaml
  • .github/workflows/e2e.yaml
  • .github/workflows/helm.yaml
  • .github/workflows/labeler.yaml
  • .github/workflows/mcpchecker-report.yaml
  • .github/workflows/mcpchecker.yaml
  • .github/workflows/release-helm.yaml
  • .github/workflows/release-image.yml
  • .github/workflows/release-mcp-registry.yaml
  • .github/workflows/release-mcpb.yaml
  • .github/workflows/release.yaml
  • .github/workflows/toolset-triage.yaml
  • .gitignore
  • AGENTS.md
  • CONTRIBUTING.md
  • README.md
  • SECURITY.md
  • build/e2e.mk
  • build/evals.mk
  • build/kiali.mk
  • build/netobserv.mk
  • build/storage.mk
  • charts/kubernetes-mcp-server/README.md
  • charts/kubernetes-mcp-server/README.md.gotmpl
  • charts/kubernetes-mcp-server/ci/netobserv-openshift-values.yaml
  • charts/kubernetes-mcp-server/examples/README.md
  • charts/kubernetes-mcp-server/examples/values-openshift-netobserv.yaml
  • dev/config/csi-hostpath/csi-hostpath-driver.yaml
  • dev/config/mcp-configs/netobserv.toml
  • docs/NETOBSERV.md
  • docs/README.md
  • docs/configuration.md
  • evals/README.md
  • evals/claude-code/eval.yaml
  • evals/core-eval-testing/acp-anthropic/eval-config.yaml
  • evals/core-eval-testing/acp-anthropic/eval-core.yaml
  • evals/core-eval-testing/acp-anthropic/eval-helm.yaml
  • evals/core-eval-testing/acp-google/eval-config.yaml
  • evals/core-eval-testing/acp-google/eval-core.yaml
  • evals/core-eval-testing/acp-google/eval-helm.yaml
  • evals/core-eval-testing/builtin-anthropic/eval-config.yaml
  • evals/core-eval-testing/builtin-anthropic/eval-core.yaml
  • evals/core-eval-testing/builtin-anthropic/eval-helm.yaml
  • evals/core-eval-testing/builtin-google/eval-config.yaml
  • evals/core-eval-testing/builtin-google/eval-core.yaml
  • evals/core-eval-testing/builtin-google/eval-helm.yaml
  • evals/core-eval-testing/builtin-openai/eval-config.yaml
  • evals/core-eval-testing/builtin-openai/eval-core.yaml
  • evals/core-eval-testing/builtin-openai/eval-helm.yaml
  • evals/openai-agent/eval.yaml
  • evals/results/openai-agent-latest.json
  • evals/tasks/README.md
  • evals/tasks/config/identify-context-for-task/identify-context-for-task.yaml
  • evals/tasks/config/list-contexts/list-contexts.yaml
  • evals/tasks/config/view-current-config/view-current-config.yaml
  • evals/tasks/core/ahoy/ahoy.yaml
  • evals/tasks/core/create-canary-deployment/create-canary-deployment.yaml
  • evals/tasks/core/create-network-policy/create-network-policy.yaml
  • evals/tasks/core/create-nginx-pod/create-nginx-pod.yaml
  • evals/tasks/core/create-pod-mount-configmaps/create-pod-mount-configmaps.yaml
  • evals/tasks/core/create-pod-resources-limits/create-pod-resources-limits.yaml
  • evals/tasks/core/create-simple-rbac/create-simple-rbac.yaml
  • evals/tasks/core/debug-app-logs/debug-app-logs.yaml
  • evals/tasks/core/deployment-traffic-switch/deployment-traffix-switch.yaml
  • evals/tasks/core/filter-events-by-type/filter-events-by-type.yaml
  • evals/tasks/core/filter-namespace-by-name/filter-namespace-by-name.yaml
  • evals/tasks/core/fix-crashloop/fix-crashloop.yaml
  • evals/tasks/core/fix-image-pull/fix-image-pull.yaml
  • evals/tasks/core/fix-pending-pod/fix-pending-pod.yaml
  • evals/tasks/core/fix-probes/fix-probes.yaml
  • evals/tasks/core/fix-rbac-wrong-resource/fix-rbac-wrong-resource.yaml
  • evals/tasks/core/fix-service-routing/fix-service-routing.yaml
  • evals/tasks/core/fix-service-with-no-endpoints/fix-service-with-no-endpoints.yaml
  • evals/tasks/core/horizontal-pod-autoscaler/horizontal-pod-autoscaler.yaml
  • evals/tasks/core/list-images-for-pods/list-images-for-pods.yaml
  • evals/tasks/core/multi-container-pod-communication/cleanup.sh
  • evals/tasks/core/multi-container-pod-communication/multi-container-pod-communication.yaml
  • evals/tasks/core/multi-container-pod-communication/setup.sh
  • evals/tasks/core/multi-container-pod-communication/verify.sh
  • evals/tasks/core/nodes-top/nodes-top.yaml
  • evals/tasks/core/resize-pvc/artifacts/storage-pvc.yaml
  • evals/tasks/core/resize-pvc/resize-pvc.yaml
  • evals/tasks/core/rolling-update-deployment/rolling-update-deployment.yaml
  • evals/tasks/core/scale-deployment/scale-deployment.yaml
  • evals/tasks/core/scale-down-deployment/scale-down-deployment.yaml
  • evals/tasks/core/setup-dev-cluster/setup-dev-cluster.yaml
  • evals/tasks/core/ssa-field-preservation/ssa-field-preservation.yaml
  • evals/tasks/core/statefulset-lifecycle/statefulset-lifecycle.yaml
  • evals/tasks/helm/install-chart/install-chart.yaml
  • evals/tasks/helm/list-releases/list-releases.yaml
  • evals/tasks/helm/uninstall-release/uninstall-release.yaml
  • evals/tasks/kiali/istio-create/istio-create.yaml
  • evals/tasks/kiali/istio-delete/istio-delete.yaml
  • evals/tasks/kiali/istio-list-destination-rules/istio-list-destination-rules.yaml
  • evals/tasks/kiali/istio-list/istio-list.yaml
  • evals/tasks/kiali/istio-patch/istio-patch.yaml
  • evals/tasks/kiali/metrics-service-request-rate/metrics-service-request-rate.yaml
  • evals/tasks/kiali/metrics-workload-latency/metrics-workload-latency.yaml
  • evals/tasks/kiali/obs-unhealthy-namespaces/obs-unhealthy-namespaces.yaml
  • evals/tasks/kiali/resource-get-namespaces/resource-get-namespaces.yaml
  • evals/tasks/kiali/resource-get-service-detail/resource-get-service-detail.yaml
  • evals/tasks/kiali/resource-get-workload-detail/resource-get-workload-detail.yaml
  • evals/tasks/kiali/resource-list-services/resource-list-services.yaml
  • evals/tasks/kiali/resource-list-workloads/resource-list-workloads.yaml
  • evals/tasks/kiali/resource-mesh-status/resource-mesh-status.yaml
  • evals/tasks/kiali/show-topology/show-topology.yaml
  • evals/tasks/kiali/status-kiali-istio/status-kiali-istio.yaml
  • evals/tasks/kiali/topology-mesh-namespaces/topology-mesh-namespaces.yaml
  • evals/tasks/kiali/topology-workload-graph/topology-workload-graph.yaml
  • evals/tasks/kiali/troubleshooting-log/troubleshooting-log.yaml
  • evals/tasks/kiali/troubleshooting-trace-lagging/troubleshooting-trace-lagging.yaml
  • evals/tasks/kiali/troubleshooting-workload-logs/troubleshooting-workload-logs.yaml
  • evals/tasks/kubevirt/claude-code/eval.yaml
  • evals/tasks/kubevirt/clone-vm/task.yaml
  • evals/tasks/kubevirt/create-vm-basic/task.yaml
  • evals/tasks/kubevirt/create-vm-ubuntu/task.yaml
  • evals/tasks/kubevirt/create-vm-with-instancetype/task.yaml
  • evals/tasks/kubevirt/create-vm-with-size/task.yaml
  • evals/tasks/kubevirt/create-vm-with-vlan/task.yaml
  • evals/tasks/kubevirt/delete-vm/task.yaml
  • evals/tasks/kubevirt/get-vm-filesystems/task.yaml
  • evals/tasks/kubevirt/get-vm-ip-address/task.yaml
  • evals/tasks/kubevirt/get-vm-os-info/task.yaml
  • evals/tasks/kubevirt/list-vm-users/task.yaml
  • evals/tasks/kubevirt/openai-agent/eval.yaml
  • evals/tasks/kubevirt/restore-vm/task.yaml
  • evals/tasks/kubevirt/snapshot-vm/task.yaml
  • evals/tasks/kubevirt/troubleshoot-vm/task.yaml
  • evals/tasks/kubevirt/update-vm-instancetype/task.yaml
  • evals/tasks/kubevirt/update-vm-resources/task.yaml
  • evals/tasks/kubevirt/vm-guest-info/task.yaml
  • evals/tasks/kubevirt/windows-golden-image-no-eula/prompt.yaml
  • evals/tasks/kubevirt/windows-golden-image-success/prompt.yaml
  • evals/tasks/netobserv/README.md
  • evals/tasks/netobserv/export-flows/export-flows.yaml
  • evals/tasks/netobserv/get-flow-metrics/get-flow-metrics.yaml
  • evals/tasks/netobserv/list-flows/list-flows.yaml
  • evals/tasks/netobserv/shared/mock-plugin.yaml
  • evals/tasks/netobserv/shared/setup-mock.sh
  • evals/tasks/netobserv/tls-breakdown/tls-breakdown.yaml
  • evals/tasks/tekton/create-pipeline/task.yaml
  • evals/tasks/tekton/create-task/task.yaml
  • evals/tasks/tekton/delete-pipelinerun/task.yaml
  • evals/tasks/tekton/get-pipeline/task.yaml
  • evals/tasks/tekton/list-pipelineruns/task.yaml
  • evals/tasks/tekton/list-pipelines/task.yaml
  • evals/tasks/tekton/restart-pipelinerun/task.yaml
  • evals/tasks/tekton/start-pipeline/task.yaml
  • evals/tasks/tekton/start-task/task.yaml
  • go.mod
  • internal/test/envtest.go
  • internal/test/mock_server.go
  • internal/tools/update-readme/main.go
  • pkg/api/config.go
  • pkg/api/filtering.go
  • pkg/api/kubernetes.go
  • pkg/api/kubernetes_test.go
  • pkg/api/target_provider.go
  • pkg/api/toolsets.go
  • pkg/config/config.go
  • pkg/config/config_default.go
  • pkg/config/tls.go
  • pkg/confirmation/confirmation.go
  • pkg/helm/helm.go
  • pkg/http/authorization.go
  • pkg/http/http.go
  • pkg/http/http_test.go
  • pkg/http/middleware.go
  • pkg/http/wellknown.go
  • pkg/kcp/provider.go
  • pkg/kcp/workspace.go
  • pkg/kcp/workspace_watcher.go
  • pkg/kiali/kiali.go
  • pkg/kiali/tests/backend/api_backend_test.go
  • pkg/klogutil/util.go
  • pkg/kubernetes-mcp-server/cmd/root.go
  • pkg/kubernetes/accesscontrol_round_tripper.go
  • pkg/kubernetes/accesscontrol_round_tripper_test.go
  • pkg/kubernetes/auth.go
  • pkg/kubernetes/common_test.go
  • pkg/kubernetes/kubernetes.go
  • pkg/kubernetes/kubernetes_test.go
  • pkg/kubernetes/manager.go
  • pkg/kubernetes/openshift.go
  • pkg/kubernetes/provider.go
  • pkg/kubernetes/provider_gvk_filter.go
  • pkg/kubernetes/provider_kubeconfig.go
  • pkg/kubernetes/provider_kubeconfig_test.go
  • pkg/kubernetes/provider_single.go
  • pkg/kubernetes/provider_single_test.go
  • pkg/kubernetes/provider_token_exchange.go
  • pkg/kubernetes/provider_token_exchange_test.go
  • pkg/kubernetes/rbac_validator.go
  • pkg/kubernetes/schema_validator.go
  • pkg/kubernetes/token_exchange.go
  • pkg/kubernetes/token_exchange_test.go
  • pkg/kubernetes/watcher/cluster.go
  • pkg/kubernetes/watcher/kubeconfig.go
  • pkg/kubevirt/resources.go
  • pkg/logging/sink.go
  • pkg/logging/sink_test.go
  • pkg/logging/tee_sink.go
  • pkg/mcp/common_crd_test.go
  • pkg/mcp/common_test.go
  • pkg/mcp/elicit_test.go
  • pkg/mcp/events_test.go
  • pkg/mcp/helm_test.go
  • pkg/mcp/kubevirt_test.go
  • pkg/mcp/mcp.go
  • pkg/mcp/mcp_config_provider_test.go
  • pkg/mcp/mcp_reload_test.go
  • pkg/mcp/mcp_toolset_prompts_test.go
  • pkg/mcp/mcp_watch_test.go
  • pkg/mcp/middleware.go
  • pkg/mcp/modules.go
  • pkg/mcp/namespaces_test.go
  • pkg/mcp/netobserv_test.go
  • pkg/mcp/pods_test.go
  • pkg/mcp/proxied_kubernetes_test.go
  • pkg/mcp/resources_gosdk_test.go
  • pkg/mcp/resources_test.go
  • pkg/mcp/testdata/toolsets-core-tools.json
  • pkg/mcp/testdata/toolsets-full-tools-multicluster.json
  • pkg/mcp/testdata/toolsets-full-tools-openshift.json
  • pkg/mcp/testdata/toolsets-full-tools.json
  • pkg/mcp/testdata/toolsets-kubevirt-tools.json
  • pkg/mcp/toolsets_test.go
  • pkg/mcp/validation_bypass_test.go
  • pkg/metrics/metrics.go
  • pkg/metrics/otel_stats_collector.go
  • pkg/netobserv/config.go
  • pkg/netobserv/config_test.go
  • pkg/netobserv/defaults.go
  • pkg/netobserv/export.go
  • pkg/netobserv/netobserv.go
  • pkg/netobserv/netobserv_test.go
  • pkg/netobserv/openshift.go
  • pkg/netobserv/openshift_test.go
  • pkg/netobserv/query.go
  • pkg/netobserv/query_test.go
  • pkg/openshift/openshift.go
  • pkg/telemetry/logs.go
  • pkg/telemetry/logs_test.go
  • pkg/telemetry/telemetry.go
  • pkg/tokenexchange/assertion.go
  • pkg/tokenexchange/config.go
  • pkg/tokenexchange/exchanger.go
  • pkg/toolsets/config/toolset.go
  • pkg/toolsets/core/health_check.go
  • pkg/toolsets/core/namespaces.go
  • pkg/toolsets/core/resources.go
  • pkg/toolsets/core/toolset.go
  • pkg/toolsets/helm/toolset.go
  • pkg/toolsets/kcp/toolset.go
  • pkg/toolsets/kiali/prompts/istio_config_review.go
  • pkg/toolsets/kiali/prompts/list_resources.go
  • pkg/toolsets/kiali/prompts/mesh_health_check.go
  • pkg/toolsets/kiali/prompts/service_troubleshoot.go
  • pkg/toolsets/kiali/prompts/trace_analysis.go
  • pkg/toolsets/kiali/prompts/traffic_topology.go
  • pkg/toolsets/kiali/toolset.go
  • pkg/toolsets/kubevirt/toolset.go
  • pkg/toolsets/netobserv/internal/defaults/defaults.go
  • pkg/toolsets/netobserv/internal/defaults/defaults_override.go
  • pkg/toolsets/netobserv/tools/defaults.go
  • pkg/toolsets/netobserv/tools/endpoints.go
  • pkg/toolsets/netobserv/tools/export_flows.go
  • pkg/toolsets/netobserv/tools/filters_doc.go
  • pkg/toolsets/netobserv/tools/flow_metrics_doc.go
  • pkg/toolsets/netobserv/tools/get_flow_metrics.go
  • pkg/toolsets/netobserv/tools/list_flows.go
  • pkg/toolsets/netobserv/tools/result.go
  • pkg/toolsets/netobserv/tools/result_test.go
  • pkg/toolsets/netobserv/tools/schema.go
  • pkg/toolsets/netobserv/toolset.go
  • pkg/toolsets/tekton/toolset.go
  • pkg/toolsets/toolsets_test.go
  • test/e2e/conftest.py
  • test/e2e/pyproject.toml
  • test/e2e/test_e2e.py
  • vendor/github.com/containerd/containerd/NOTICE
  • vendor/github.com/containerd/containerd/archive/compression/compression.go
  • vendor/github.com/containerd/containerd/archive/compression/compression_fuzzer.go
  • vendor/github.com/containerd/containerd/content/adaptor.go
  • vendor/github.com/containerd/containerd/content/content.go
  • vendor/github.com/containerd/containerd/content/helpers.go
  • vendor/github.com/containerd/containerd/errdefs/errors.go
  • vendor/github.com/containerd/containerd/errdefs/grpc.go
  • vendor/github.com/containerd/containerd/filters/adaptor.go
  • vendor/github.com/containerd/containerd/filters/filter.go
  • vendor/github.com/containerd/containerd/filters/parser.go
  • vendor/github.com/containerd/containerd/filters/quote.go
  • vendor/github.com/containerd/containerd/filters/scanner.go
  • vendor/github.com/containerd/containerd/images/annotations.go
  • vendor/github.com/containerd/containerd/images/diffid.go
  • vendor/github.com/containerd/containerd/images/handlers.go
  • vendor/github.com/containerd/containerd/images/image.go
  • vendor/github.com/containerd/containerd/images/importexport.go
  • vendor/github.com/containerd/containerd/images/labels.go
  • vendor/github.com/containerd/containerd/images/mediatypes.go
  • vendor/github.com/containerd/containerd/labels/labels.go
  • vendor/github.com/containerd/containerd/labels/validate.go
  • vendor/github.com/containerd/containerd/pkg/randutil/randutil.go
  • vendor/github.com/containerd/containerd/remotes/handlers.go
  • vendor/github.com/containerd/containerd/remotes/resolver.go
  • vendor/github.com/containerd/errdefs/README.md
  • vendor/github.com/containerd/errdefs/errors.go
  • vendor/github.com/containerd/errdefs/resolve.go
  • vendor/github.com/containerd/log/.golangci.yml
  • vendor/github.com/containerd/log/README.md
  • vendor/github.com/containerd/log/context.go
  • vendor/github.com/containerd/platforms/.gitattributes
  • vendor/github.com/containerd/platforms/.golangci.yml
  • vendor/github.com/containerd/platforms/README.md
  • vendor/github.com/containerd/platforms/compare.go
  • vendor/github.com/containerd/platforms/cpuinfo.go
  • vendor/github.com/containerd/platforms/cpuinfo_linux.go
  • vendor/github.com/containerd/platforms/cpuinfo_other.go
  • vendor/github.com/containerd/platforms/database.go
  • vendor/github.com/containerd/platforms/defaults.go
  • vendor/github.com/containerd/platforms/defaults_darwin.go
  • vendor/github.com/containerd/platforms/defaults_freebsd.go
  • vendor/github.com/containerd/platforms/defaults_unix.go
  • vendor/github.com/containerd/platforms/defaults_windows.go
  • vendor/github.com/containerd/platforms/errors.go
  • vendor/github.com/containerd/platforms/platform_compat_windows.go
  • vendor/github.com/containerd/platforms/platforms.go
  • vendor/github.com/containerd/platforms/platforms_other.go
  • vendor/github.com/containerd/platforms/platforms_windows.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/doc.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/jose.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/logout.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/oidc.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/oidctest/oidctest.go
  • vendor/github.com/coreos/go-oidc/v3/oidc/verify.go
  • vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.md
  • vendor/github.com/cyphar/filepath-securejoin/VERSION
  • vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go
  • vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go
  • vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go
  • vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go
  • vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go
  • vendor/github.com/klauspost/compress/.gitattributes
  • vendor/github.com/klauspost/compress/.gitignore
  • vendor/github.com/klauspost/compress/.goreleaser.yml
  • vendor/github.com/klauspost/compress/LICENSE
  • vendor/github.com/klauspost/compress/README.md
  • vendor/github.com/klauspost/compress/SECURITY.md
  • vendor/github.com/klauspost/compress/compressible.go
  • vendor/github.com/klauspost/compress/fse/README.md
  • vendor/github.com/klauspost/compress/fse/bitreader.go
  • vendor/github.com/klauspost/compress/fse/bitwriter.go
  • vendor/github.com/klauspost/compress/fse/bytereader.go
  • vendor/github.com/klauspost/compress/fse/compress.go
  • vendor/github.com/klauspost/compress/fse/decompress.go
  • vendor/github.com/klauspost/compress/fse/fse.go
  • vendor/github.com/klauspost/compress/gen.sh
  • vendor/github.com/klauspost/compress/huff0/.gitignore
  • vendor/github.com/klauspost/compress/huff0/README.md
  • vendor/github.com/klauspost/compress/huff0/bitreader.go
  • vendor/github.com/klauspost/compress/huff0/bitwriter.go
  • vendor/github.com/klauspost/compress/huff0/compress.go
  • vendor/github.com/klauspost/compress/huff0/decompress.go
  • vendor/github.com/klauspost/compress/huff0/decompress_amd64.go
  • vendor/github.com/klauspost/compress/huff0/decompress_amd64.s
  • vendor/github.com/klauspost/compress/huff0/decompress_generic.go
  • vendor/github.com/klauspost/compress/huff0/huff0.go
  • vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo.go
  • vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.go
  • vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.s
  • vendor/github.com/klauspost/compress/internal/le/le.go
  • vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go
  • vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go
  • vendor/github.com/klauspost/compress/internal/snapref/LICENSE
  • vendor/github.com/klauspost/compress/internal/snapref/decode.go
  • vendor/github.com/klauspost/compress/internal/snapref/decode_other.go
  • vendor/github.com/klauspost/compress/internal/snapref/encode.go
  • vendor/github.com/klauspost/compress/internal/snapref/encode_other.go
  • vendor/github.com/klauspost/compress/internal/snapref/snappy.go
  • vendor/github.com/klauspost/compress/s2sx.mod
  • vendor/github.com/klauspost/compress/zstd/README.md
  • vendor/github.com/klauspost/compress/zstd/bitreader.go
  • vendor/github.com/klauspost/compress/zstd/bitwriter.go
  • vendor/github.com/klauspost/compress/zstd/blockdec.go
  • vendor/github.com/klauspost/compress/zstd/blockenc.go
  • vendor/github.com/klauspost/compress/zstd/blocktype_string.go
  • vendor/github.com/klauspost/compress/zstd/bytebuf.go
  • vendor/github.com/klauspost/compress/zstd/bytereader.go
  • vendor/github.com/klauspost/compress/zstd/decodeheader.go
  • vendor/github.com/klauspost/compress/zstd/decoder.go
  • vendor/github.com/klauspost/compress/zstd/decoder_options.go
  • vendor/github.com/klauspost/compress/zstd/dict.go
  • vendor/github.com/klauspost/compress/zstd/enc_base.go
  • vendor/github.com/klauspost/compress/zstd/enc_best.go
  • vendor/github.com/klauspost/compress/zstd/enc_better.go
  • vendor/github.com/klauspost/compress/zstd/enc_dfast.go
  • vendor/github.com/klauspost/compress/zstd/enc_fast.go
  • vendor/github.com/klauspost/compress/zstd/encoder.go
  • vendor/github.com/klauspost/compress/zstd/encoder_options.go
  • vendor/github.com/klauspost/compress/zstd/framedec.go
  • vendor/github.com/klauspost/compress/zstd/frameenc.go
  • vendor/github.com/klauspost/compress/zstd/fse_decoder.go
  • vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.go
  • vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.s
  • vendor/github.com/klauspost/compress/zstd/fse_decoder_generic.go
  • vendor/github.com/klauspost/compress/zstd/fse_encoder.go
  • vendor/github.com/klauspost/compress/zstd/fse_predefined.go
  • vendor/github.com/klauspost/compress/zstd/hash.go
  • vendor/github.com/klauspost/compress/zstd/history.go
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go
  • vendor/github.com/klauspost/compress/zstd/matchlen_amd64.go
  • vendor/github.com/klauspost/compress/zstd/matchlen_amd64.s
  • vendor/github.com/klauspost/compress/zstd/matchlen_generic.go
  • vendor/github.com/klauspost/compress/zstd/seqdec.go
  • vendor/github.com/klauspost/compress/zstd/seqdec_amd64.go
  • vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s
  • vendor/github.com/klauspost/compress/zstd/seqdec_generic.go
  • vendor/github.com/klauspost/compress/zstd/seqenc.go
  • vendor/github.com/klauspost/compress/zstd/simple_go124.go
  • vendor/github.com/klauspost/compress/zstd/snappy.go
  • vendor/github.com/klauspost/compress/zstd/zip.go
  • vendor/github.com/klauspost/compress/zstd/zstd.go
  • vendor/github.com/sirupsen/logrus/.gitignore
  • vendor/github.com/sirupsen/logrus/.golangci.yml
  • vendor/github.com/sirupsen/logrus/.travis.yml
  • vendor/github.com/sirupsen/logrus/CHANGELOG.md
  • vendor/github.com/sirupsen/logrus/LICENSE
  • vendor/github.com/sirupsen/logrus/README.md
  • vendor/github.com/sirupsen/logrus/alt_exit.go
  • vendor/github.com/sirupsen/logrus/appveyor.yml
  • vendor/github.com/sirupsen/logrus/buffer_pool.go
  • vendor/github.com/sirupsen/logrus/doc.go
  • vendor/github.com/sirupsen/logrus/entry.go
  • vendor/github.com/sirupsen/logrus/exported.go
  • vendor/github.com/sirupsen/logrus/formatter.go
  • vendor/github.com/sirupsen/logrus/hooks.go
  • vendor/github.com/sirupsen/logrus/json_formatter.go
  • vendor/github.com/sirupsen/logrus/logger.go
  • vendor/github.com/sirupsen/logrus/logrus.go
  • vendor/github.com/sirupsen/logrus/terminal_check_appengine.go
  • vendor/github.com/sirupsen/logrus/terminal_check_bsd.go
  • vendor/github.com/sirupsen/logrus/terminal_check_js.go
  • vendor/github.com/sirupsen/logrus/terminal_check_no_terminal.go
  • vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
  • vendor/github.com/sirupsen/logrus/terminal_check_solaris.go
  • vendor/github.com/sirupsen/logrus/terminal_check_unix.go
  • vendor/github.com/sirupsen/logrus/terminal_check_wasi.go
  • vendor/github.com/sirupsen/logrus/terminal_check_wasip1.go
  • vendor/github.com/sirupsen/logrus/terminal_check_windows.go
  • vendor/github.com/sirupsen/logrus/text_formatter.go
  • vendor/github.com/sirupsen/logrus/writer.go
  • vendor/go.opentelemetry.io/contrib/bridges/otellogr/LICENSE
  • vendor/go.opentelemetry.io/contrib/bridges/otellogr/convert.go
  • vendor/go.opentelemetry.io/contrib/bridges/otellogr/gen.go
  • vendor/go.opentelemetry.io/contrib/bridges/otellogr/logsink.go
  • vendor/go.opentelemetry.io/contrib/bridges/otellogr/version.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/LICENSE
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/README.md
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/client.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/config.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/doc.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/exporter.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/gen.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/observ/instrumentation.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/observ/target.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/partialsuccess.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/retry/retry.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/transform/log.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/version.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/x/README.md
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/x/features.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/internal/x/x.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc/version.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/LICENSE
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/README.md
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/client.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/config.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/doc.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/exporter.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/gen.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/observ/doc.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/observ/instrumentation.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/partialsuccess.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/retry/retry.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/transform/log.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/version.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/x/README.md
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/x/observ.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/internal/x/x.go
  • vendor/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp/version.go
  • vendor/go.opentelemetry.io/otel/log/DESIGN.md
  • vendor/go.opentelemetry.io/otel/log/LICENSE
  • vendor/go.opentelemetry.io/otel/log/README.md
  • vendor/go.opentelemetry.io/otel/log/doc.go
  • vendor/go.opentelemetry.io/otel/log/embedded/README.md
  • vendor/go.opentelemetry.io/otel/log/embedded/embedded.go
  • vendor/go.opentelemetry.io/otel/log/global/README.md
  • vendor/go.opentelemetry.io/otel/log/global/log.go
  • vendor/go.opentelemetry.io/otel/log/internal/global/log.go
  • vendor/go.opentelemetry.io/otel/log/internal/global/state.go
  • vendor/go.opentelemetry.io/otel/log/keyvalue.go
  • vendor/go.opentelemetry.io/otel/log/kind_string.go
  • vendor/go.opentelemetry.io/otel/log/logger.go
  • vendor/go.opentelemetry.io/otel/log/logtest/LICENSE
  • vendor/go.opentelemetry.io/otel/log/logtest/README.md
  • vendor/go.opentelemetry.io/otel/log/logtest/assert.go
  • vendor/go.opentelemetry.io/otel/log/logtest/doc.go
  • vendor/go.opentelemetry.io/otel/log/logtest/recorder.go
  • vendor/go.opentelemetry.io/otel/log/noop/README.md
  • vendor/go.opentelemetry.io/otel/log/noop/noop.go
  • vendor/go.opentelemetry.io/otel/log/provider.go
  • vendor/go.opentelemetry.io/otel/log/record.go
  • vendor/go.opentelemetry.io/otel/log/severity.go
  • vendor/go.opentelemetry.io/otel/log/severity_string.go
  • vendor/go.opentelemetry.io/otel/sdk/log/DESIGN.md
  • vendor/go.opentelemetry.io/otel/sdk/log/LICENSE
  • vendor/go.opentelemetry.io/otel/sdk/log/README.md
  • vendor/go.opentelemetry.io/otel/sdk/log/batch.go
  • vendor/go.opentelemetry.io/otel/sdk/log/doc.go
  • vendor/go.opentelemetry.io/otel/sdk/log/exporter.go
  • vendor/go.opentelemetry.io/otel/sdk/log/instrumentation.go
  • vendor/go.opentelemetry.io/otel/sdk/log/internal/observ/doc.go
  • vendor/go.opentelemetry.io/otel/sdk/log/internal/observ/simple_log_processor.go
  • vendor/go.opentelemetry.io/otel/sdk/log/internal/x/README.md
  • vendor/go.opentelemetry.io/otel/sdk/log/internal/x/features.go
  • vendor/go.opentelemetry.io/otel/sdk/log/internal/x/x.go
  • vendor/go.opentelemetry.io/otel/sdk/log/logger.go
  • vendor/go.opentelemetry.io/otel/sdk/log/processor.go
  • vendor/go.opentelemetry.io/otel/sdk/log/provider.go
  • vendor/go.opentelemetry.io/otel/sdk/log/record.go
  • vendor/go.opentelemetry.io/otel/sdk/log/ring.go
  • vendor/go.opentelemetry.io/otel/sdk/log/setting.go
  • vendor/go.opentelemetry.io/otel/sdk/log/simple.go
  • vendor/golang.org/x/mod/modfile/read.go
  • vendor/golang.org/x/mod/modfile/rule.go
  • vendor/golang.org/x/sync/semaphore/semaphore.go
  • vendor/golang.org/x/tools/go/packages/packages.go
  • vendor/golang.org/x/tools/internal/gcimporter/iexport.go
  • vendor/golang.org/x/tools/internal/gcimporter/iimport.go
  • vendor/golang.org/x/tools/internal/stdlib/deps.go
  • vendor/golang.org/x/tools/internal/stdlib/manifest.go
  • vendor/golang.org/x/tools/internal/typesinternal/element.go
  • vendor/golang.org/x/tools/internal/typesinternal/types.go
  • vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go
  • vendor/helm.sh/helm/v3/pkg/registry/client.go
  • vendor/modules.txt

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upstream-sync

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@openshift-ci openshift-ci Bot requested review from manusa and matzew July 9, 2026 20:01
Cali0707 and others added 4 commits July 9, 2026 16:48
)

Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.21.2 to 3.21.3.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](helm/helm@v3.21.2...v3.21.3)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-version: 3.21.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(otel): logs are exported with otel now

Signed-off-by: Calum Murray <cmurray@redhat.com>

* feat(otel): correlate logs with otel traces

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore(otel): switch to klogutil.FromContext

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore(logs): fix review comments

Signed-off-by: Calum Murray <cmurray@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
…text (containers#1278)

pkg/kubernetes/provider_gvk_filter.go was added in containers#1196 (target-specific
tool filtering), which merged after the OTel logging work in containers#1260, so it
kept calling klog.FromContext directly and is now the only production file
that does. Switch it to klogutil.FromContext so AnyTargetHasGVKs warning
logs carry the active trace span for log-trace correlation, and to restore
the "no klog.FromContext in production code" invariant documented in
AGENTS.md. Drops the now-unused k8s.io/klog/v2 import.

Signed-off-by: Marc Nuri <marc@marcnuri.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
github-actions Bot and others added 4 commits July 13, 2026 09:18
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
containers#1287)

The vm_clone and vm_create tool descriptions used "a %s VirtualMachine",
which reads fine for "a KubeVirt" but breaks for downstream product name
overrides starting with a vowel sound (e.g. "an OpenShift Virtualization
VirtualMachine"). Rephrase to avoid the leading article before the
templated product name.

Signed-off-by: Karel Simon <ksimon@redhat.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* Add netobserv toolset

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* handle alerts for openshift case

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* helm + doc

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* default http timeout

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* add evals

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* refactor tests
Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* remove alerts, namespaces and names tools

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* address feedback
Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* align netobserv with toolset design skill

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>

* Update generated netobserv tool descriptions in README

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* address feedback
Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* fix timerange tests
Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* fix evals
Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
ychampion and others added 6 commits July 14, 2026 11:03
…1285)

* fix(kubernetes): bound discovery requests during startup

Use a discovery-only HTTP client copy so unreachable contexts return through the existing permissive GVK fallback without imposing a timeout on watches or exec sessions.

Constraint: Preserve long-running Kubernetes operations while bounding synchronous tool-registration discovery.
Rejected: Setting rest.Config.Timeout globally | would terminate watches and streaming operations.
Confidence: high
Scope-risk: narrow
Directive: Keep startup discovery timeouts isolated from shared Kubernetes clients.
Tested: go test ./pkg/kubernetes -count=1; go test ./pkg/api ./pkg/toolsets/core -count=1; go vet ./pkg/kubernetes; golangci-lint ./pkg/kubernetes/...
Signed-off-by: ychampion <ychampion@users.noreply.github.com>

* fix(test): synchronize access control round tripper

Signed-off-by: Calum Murray <cmurray@redhat.com>
Co-authored-by: Eric Fried <efried@redhat.com>

---------

Signed-off-by: ychampion <ychampion@users.noreply.github.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
Co-authored-by: ychampion <ychampion@users.noreply.github.com>
Co-authored-by: Calum Murray <cmurray@redhat.com>
Co-authored-by: Eric Fried <efried@redhat.com>
A recent change (containers#1196) introduced the framework for prefiltering
toolsets based on the compatibility of the configured target(s). The
initial implementation included a filter to expose the `projects_list`
tool based on whether any target is OpenShift or not. This functionality
was always on, which was problematic in certain setups.

This change gates this functionality behind a config option:

```
experimental_enable_target_compatibility_tool_filters = true
```

As implied by the name, we consider the feature experimental, and will
rename/redesign/remove the config option in the future.


Co-Authored-By: claude

Signed-off-by: Eric Fried <efried@redhat.com>
…tainers#1295)

Bumps the github-actions group with 1 update: [actions/setup-node](https://github.com/actions/setup-node).


Updates `actions/setup-node` from 6 to 7
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Cali0707 added 2 commits July 15, 2026 08:59
Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
Validation Failed: {"resource":"IssueComment","code":"custom","field":"body","message":"body is too long (maximum is 65536 characters)"} - https://docs.github.com/rest/issues/comments#update-an-issue-comment

@openshift-ci

openshift-ci Bot commented Jul 15, 2026

Copy link
Copy Markdown

@openshift-ci-robot: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@grokspawn

Copy link
Copy Markdown

/lgtm

@Cali0707

Copy link
Copy Markdown

/retitle "NO-JIRA: chore: sync with upstream 2026-07-09 - 23 new commits"

@openshift-ci openshift-ci Bot changed the title chore: sync with upstream 2026-07-09 - 23 new commits "NO-JIRA: chore: sync with upstream 2026-07-09 - 23 new commits" Jul 15, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 15, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Author

@openshift-ci-robot: This pull request explicitly references no jira issue.

Details

In response to this:

🔄 Upstream Sync

Update: Wed Jul 15 08:02:47 UTC 2026

New changes detected from upstream:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 15, 2026
@Cali0707

Copy link
Copy Markdown

/approve

func (p *acmHubClusterProvider) IsOpenShift(ctx context.Context) bool {
return p.hubManager.IsOpenShift(ctx)
func (p *acmHubClusterProvider) AnyTargetHasGVKs(_ context.Context, _ []schema.GroupVersionKind) bool {
return true // TODO: implement this properly

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for linking this one!

@openshift-ci

openshift-ci Bot commented Jul 15, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Cali0707, openshift-ci-robot

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 15, 2026
@openshift-merge-bot openshift-merge-bot Bot merged commit a2871c5 into main Jul 15, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.