Connectivity
Changed
- Bump performance test dependencies:
ingress-nginx to 4.3.5 and kong-app to 5.2.3 and remove Release setting from config. - Update Envoy Gateway to v1.9.1.
Removed
- Remove the
karpenter.sh/do-not-disrupt annotation from the Envoy Gateway control-plane pods.
Fixed
- Point the
eg.image fallback at the gsoci.azurecr.io mirror. When both global.images.envoyGateway.image and deployment.envoyGateway.image.repository are empty, the chart resolved the Envoy Gateway control plane, certgen and shutdownManager images to docker.io/envoyproxy/gateway:<chart version> — a tag that never exists upstream, ignoring global.imageRegistry. - Honour
global.imageRegistry and global.imagePullSecrets in the CRD installer Job, so the envoy-gateway-crds image can be pulled from a private mirror like every other image in the chart.
Changed
- Breaking: Use upstream’s
global.imageRegistry value instead of global.image.registry, dropping the image registry patch now that upstream supports the override natively. - Update Envoy Gateway to v1.9.0. Requires Gateway API v1.6 CRDs. Note that Lua
EnvoyExtensionPolicy is now opt-in via config.envoyGateway.extensionApis.enableLua, and EndpointSliceIndex is enabled by default and can raise control plane memory usage. - Pin
gateway-api-crds to 1.9.0 in the e2e and performance test suites. - Update
perf-report claude skill:- the report is posted as a tar file in the PR’s comments.
perf-report no longer needs a cluster_id.- fix the nginx
downstream_rps, cpu_usage and memory_usage queries: they
filtered on the kube-system namespace, but the performance suites install
ingress-nginx into default, so those three metrics were always empty and
the comparison table rendered them as —. - in pipeline mode the skill no longer publishes: the
generate-perf-report
Tekton task creates the branch, uploads the tarball, verifies it and posts the
comment itself, and the agent writes its interpretation to narrative.md
instead. gh moved from the CI allowlist’s allow list to its deny list. - retry Mimir requests in
fetch_metrics.py, so a report survives the stalls
of a kubectl port-forward to the management cluster. - add
.claude/perf-report-ci-settings.json, the permission allowlist used by
the pipeline’s generate-perf-report task (--permission-mode dontAsk). - stop using a
$DIR shell variable in the SKILL.md examples and spell the
script paths out literally. A permission rule cannot match past a variable
assignment, so the DIR=... && python3 "$DIR/fetch_metrics.py" ... form the
examples produced was denied under the CI allowlist even though
Bash(python3 *) is allowed — the agent could not run a single script and
the pipeline reported success with no report.
Added
- Add control plane startup, liveness and readiness probes as configurable values.
Changed
- Apply the CRDs from a dedicated installer image via a
pre-install/pre-upgrade hook Job instead of rendering them as Helm templates. The rendered release no longer contains the CRDs, which kept it from fitting in Helm’s release Secret. - CRDs are applied with server-side apply and are no longer Helm-managed, so
helm uninstall leaves them in place and a CRD rejected by the safe-upgrades policy now surfaces as a failed hook Job. - Reject unknown keys under
install, which previously were silently ignored.
Added
- E2E test suite covering CRD installation, installer hook cleanup, the
safe-upgrades admission policy and the served Gateway API resources. crds.image values to override the installer image. The tag defaults to the chart version.CiliumNetworkPolicy allowing the installer Job to reach the Kubernetes API server, without which the Job cannot apply the CRDs on clusters that default to denying egress. Set ciliumNetworkPolicy.enabled to false to skip it.
Changed
- Upgrade Gateway API CRDs to v1.6.1
- Upgrade Gateway API Inference Extension CRDs to v1.5.0
- Set
install.tcproutes and install.udproutes to standard, following their graduation to the standard channel. Required by Envoy Gateway 1.9, which reconciles them via gateway.networking.k8s.io/v1. - Install the
safe-upgrades ValidatingAdmissionPolicy, which was previously dropped and left its binding orphaned. Set install.admissionPolicies to false to skip both.
Added
- Add
install.xbackends value for the new experimental XBackend CRD. - Add
install.inferencepoolimports and install.inferencemodelrewrites values, whose CRDs shipped without a way to enable them.
Removed
- Remove the alpha
InferencePool CRD (inference.networking.x-k8s.io/v1alpha2), dropped upstream in Inference Extension v1.5.0. install.inferencepools now only accepts standard or "".
Changed
- Chart: Make tolerations configurable.
Changed
- Update Envoy Gateway to v1.8.3.
- Update cert-manager config in the cluster values for all performance test suites.
Added
- Set
karpenter.sh/do-not-disrupt: "true" on the Envoy Gateway control-plane pods, so Karpenter does not voluntarily consolidate them. A control-plane reschedule forces the Envoy proxies to reconnect and can leave them wedged with stale/absent TLS secrets over delta xDS until restarted (see envoyproxy/gateway#9519). - Add
perf-report repo-specific claude skill to automatically generate performance test report as html files.
Changed
- Rebuild with
app-build-suite 2.2.0 (via architect orb 9.6.0): the packaged chart now carries Artifact Hub metadata (artifacthub.io/license and a Support link). No functional chart changes.
Added
- Add configurable
serviceAccount.name/serviceAccount.namespace and azure.mountPath values.
Changed
- Scope AWS values under
aws.*. Root-level values remain supported as a fallback for backward compatibility. - Templatize hardcoded resource, service account and tag values.
- Scope the IAM trust policy to the exact
serviceAccount subject instead of a wildcard match. - Enable Azure Workload Identity for the
azure provider in addition to aks. - Update chart metadata to reflect Azure support.
Removed
- Remove unused
baseDomain value.