Commit Graph

2353 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
9cba672e8f Merge pull request #1876 from a7i/copilot-ignore-vendor-master
chore(copilot): ignore vendor directory
2026-05-20 02:53:46 +05:30
Kubernetes Prow Robot
8005cdf783 Merge pull request #1874 from a7i/descheduler-v0.36.0
[v0.36.0] release prep: bump k8s/go deps, manifests, docs, and CI matrix
v0.36.0
2026-05-20 01:49:54 +05:30
Amir Alavi
745146e411 ci(e2e): bump KubeVirt to v1.9.0-alpha.0 for k8s 1.36 compatibility
KubeVirt v1.8.2 publishes VMI status checksum fields (uint32 in Go) as
format: int32 in its generated CRD schema. k8s 1.36 enables strict
numeric format validation in CRDs via
https://github.com/kubernetes/kubernetes/pull/136582, which now rejects
the legacy schema and causes virt-handler to enter an infinite VMI
status update re-enqueue loop. Live migrations never complete and the
descheduler e2e TestLiveMigrationInBackground times out.

The schema fix landed upstream in
https://github.com/kubevirt/kubevirt/pull/17469 (merged to main on
2026-04-18, included in v1.9.0-alpha.0 tagged 2026-05-11) but was not
backported to release-1.8, so no v1.8.x release contains it. Bump the
default KUBEVIRT_VERSION to v1.9.0-alpha.0 so the e2e suite consumes a
release whose generated CRDs are compatible with k8s 1.36's stricter
validator.

Tracked in https://github.com/kubevirt/kubevirt/issues/17858.
2026-05-19 15:06:11 -04:00
Amir Alavi
2119baee3d revert: ensureVMIsLiveMigratable retry helper
Reverts b767b9c0f. The helper was added to work around what looked like
the virt-handler containerdisk-socket race on k8s 1.36, but the actual
root cause is unrelated: k8s 1.36's stricter CRD numeric format
validation (kubernetes/kubernetes#136582) rejects VMI status updates
with the pre-fix uint32 Checksum schema. See
https://github.com/kubevirt/kubevirt/issues/17858 for the upstream
context and kubevirt/kubevirt#17469 for the upstream fix (merged to
main, included in v1.9.0-alpha.0, not in v1.8.x).

The follow-up commit bumps KUBEVIRT_VERSION so the test consumes a
KubeVirt release that contains the fix, which removes the need for any
test-side retry.
2026-05-19 15:05:04 -04:00
Amir Alavi
b767b9c0f7 test(e2e): wait for VMIs to be LiveMigratable, recreate on race
Adds ensureVMIsLiveMigratable in TestLiveMigrationInBackground. After
the existing wait for virt-launcher pods to reach Running, poll each
VMI for the LiveMigratable=True condition. If a VMI fails to become
migratable within 120s, delete and recreate it (up to 3 attempts).

This works around an upstream KubeVirt race where virt-handler computes
the containerdisk checksum before the disk socket is ready, fails, and
never retries. The recreated VMI lands on a node that has already
cached the containerdisk image, so the socket comes up before
virt-handler's first attempt.

The race surfaces consistently with the kind v1.36.1 node image,
causing TestLiveMigrationInBackground to fail with "Expected at least
3 finished live migrations, got less: 0".
2026-05-19 09:16:51 -04:00
Amir Alavi
03f7dc5889 Bump KubeVirt dependencies to v1.8.2 and migrate to new client package
- Update kubevirt.io/api from v1.3.0 to v1.8.2
- Update kubevirt.io/client-go from v1.3.0 to v1.8.2
- Update kubevirt.io/containerized-data-importer-api from v1.57.0-alpha1 to v1.64.0
- Migrate e2e test from deprecated generated clientset path
  (kubevirt.io/client-go/generated/kubevirt/clientset/versioned)
  to new kubevirt.io/client-go/kubevirt client package
- Update vendor and dependencies for Kubernetes 1.36 compatibility
2026-05-18 22:39:53 -04:00
Amir Alavi
dfc3166787 test(e2e): harden kind install and align lint tooling 2026-05-18 12:15:31 -04:00
Amir Alavi
0883de763b ci(manifests): build kind node image for k8s v1.36.1 2026-05-18 12:15:31 -04:00
Amir Alavi
3f8f9bb74e [v0.36.0] release prep: bump k8s/go deps, manifests, docs, and CI matrix 2026-05-18 12:15:30 -04:00
Jan Chaloupka
d6720f509c Merge pull request #1878 from ingvagabund/setupTestSandbox-fix
fix(test/setupTestSandbox): wait until initial objects are propagated to informers
2026-05-18 17:18:47 +02:00
Jan Chaloupka
66918dc553 fix(test/setupTestSandbox): wait until initial objects are propagated to informers 2026-05-18 16:46:24 +02:00
Linus Fankhauser
6b5f6b450c chore(defaultevictor): add matchlabels compatibility to the namespaceselector (#1853) 2026-05-18 16:45:53 +05:30
Kubernetes Prow Robot
3ea8051e1e Merge pull request #1873 from tiraboschi/fix_background_eviction_metric_race
evictions: fix assumePod silently dropping success metric on informer race
2026-05-17 18:53:03 +05:30
Amir Alavi
5fd4c1ea00 chore(copilot): ignore vendor directory 2026-05-16 21:59:11 -04:00
Kubernetes Prow Robot
57105044ad Merge pull request #1875 from a7i/pin-github-actions-sha
ci: pin GitHub Actions to immutable SHAs
2026-05-16 18:34:32 +05:30
Amir Alavi
b5a7c076f3 ci: pin GitHub Actions to commit SHAs 2026-05-15 22:24:20 -04:00
Simone Tiraboschi
a7ac072c7d evictions: fix assumePod silently dropping success metric on informer race
When KubeVirt sets EvictionInProgressAnnotationKey before returning
TooManyRequests, the informer's UpdateFunc can call addPod
(evictionAssumed=false) before evictPod's assumePod call arrives.
assumePod found the entry already present and returned early, leaving
evictionAssumed=false. DeleteFunc then skipped the "success" metric.

Fix: if the existing entry has evictionAssumed=false (added by addPod),
upgrade it in place without double-counting the pod in the counters.

Adds TestEvictionInBackgroundMetrics_InformerRace to reproduce the race
deterministically.

Signed-off-by: Simone Tiraboschi <stirabos@redhat.com>
2026-05-14 17:23:18 +02:00
Kubernetes Prow Robot
c00d88f9ed Merge pull request #1837 from a7i/feat/servicemonitor-apiversion-1824
chart: allow overriding ServiceMonitor apiVersion
2026-05-11 17:45:51 +05:30
Kubernetes Prow Robot
290d7f3dfb Merge pull request #1871 from Paramesh324/bump-gcb-docker-gcloud_issue_38936
cloudbuild: pin gcb-docker-gcloud image by digest
2026-05-11 14:15:48 +05:30
Parameshwaran Krishnasamy
fab0f2ab70 Replace the GC'd tag v20211118-2f2d816b90 with digest pinning and a
tag comment (v20260205-38cfa9523f) so Cloud Build keeps working after
staging registry retention.
Related: kubernetes/kubernetes#138936

Signed-off-by: Parameshwaran Krishnasamy <Parameshwaran.K@ibm.com>
2026-05-10 12:25:34 +05:30
Kubernetes Prow Robot
ddadd33ab2 Merge pull request #1868 from ingvagabund/pin-gh-actions-to-sha
fix(.github/workflows/manifests.yaml): pin actions to a sha
2026-05-06 20:20:26 +05:30
Jan Chaloupka
7be855f7a5 fix(.github/workflows/manifests.yaml): pin actions to a sha 2026-05-06 16:11:17 +02:00
Kubernetes Prow Robot
67a20369b8 Merge pull request #1862 from tiraboschi/fix_1840
fix(descheduler): reset prometheus usage client at each extension point
2026-05-04 20:08:24 +05:30
Simone Tiraboschi
e56144c7a2 fix(descheduler): reset prometheus usage client at each extension point
Profile creation was moved outside the descheduling cycle in b214c147,
but reconcileInClusterSAToken() still runs only in runFnc(), after
newDescheduler() returns. This leaves the prometheus client nil when
LowNodeUtilization's New() runs, causing "prometheus client not
initialized" at startup.

Avoid failing at plugin creation time if the prometheus
client is not yet available. Instead, usageClientForMetrics() is now
called at the start of every extension point via a resetUsageClient()
helper, so each descheduling cycle picks up the latest client regardless
of when the SA token is reconciled or rotated.

Fixes: https://github.com/kubernetes-sigs/descheduler/issues/1840

Signed-off-by: Simone Tiraboschi <stirabos@redhat.com>
2026-04-29 11:36:32 +02:00
Kubernetes Prow Robot
fa8ae489ae Merge pull request #1856 from tiraboschi/background_eviction_metrics
evictions: fix missing observability for background evictions
2026-04-20 15:23:52 +05:30
Simone Tiraboschi
bc0f0354c6 evictions: fix missing observability for background evictions
Background evictions were completely invisible in metrics: the ignore=true
path caused EvictPod to return before incrementing any counter, leaving
operators with no signal that a background eviction had been triggered or
completed.

Add a "background" result label emitted at eviction request time and a
"success" label emitted from the informer DeleteFunc when the pod is
actually gone. The two labels together give a complete picture:
"background" is recorded at eviction request time and may not have a
matching "success" if the descheduler restarts before the pod is deleted,
while "success" confirms the eviction completed within the same lifecycle.

Signed-off-by: Simone Tiraboschi <stirabos@redhat.com>
2026-04-20 11:20:58 +02:00
Kubernetes Prow Robot
0bc278a816 Merge pull request #1859 from sammedsingalkar09/master
security: upgrade grpc and otel sdk dependencies
2026-04-18 20:15:36 +05:30
sammedsingalkar09
212b706950 security: upgrade grpc and otel sdk dependencies
Bump gRPC and OpenTelemetry SDK/exporter dependencies to patched releases and refresh vendored modules to address reported vulnerabilities while keeping tracing resource schema versions consistent.

Made-with: Cursor
2026-04-18 13:12:03 +05:30
Kubernetes Prow Robot
8f9d5c607d Merge pull request #1854 from kubernetes-sigs/security/update-trivy-action-v0.35.0
security: Update trivy-action to use sha for v0.35.0
2026-03-23 15:32:17 +05:30
Priyanka Saggu
1ca2edbb59 security: Update trivy-action to v0.35.0
Updates aquasecurity/trivy-action from mutable references to SHA-pinned
version to address security vulnerabilities.

- Updates to v0.35.0 (57a97c7e)
- Pins to specific SHA for immutability
- Addresses issue: aquasecurity/trivy#10425

Signed-off-by: Priyanka Saggu <priyankasaggu11929@gmail.com>
2026-03-22 18:42:48 +01:00
Kubernetes Prow Robot
0fafc09fff Merge pull request #1844 from a7i/extend-podlifetime-transitions
Extend PodLifeTime with condition, exit code, owner kind, and transition time filters
2026-03-07 01:04:21 +05:30
Amir Alavi
a4391ea73b Extract shared container state matching helpers into podutil
Move container waiting/terminated state checking from PodLifeTime and
RemovePodsHavingTooManyRestarts into podutil as separate exported helpers:
HasMatchingContainerWaitingState and HasMatchingContainerTerminatedState.
Each plugin composes only the helpers it needs.
2026-03-06 12:18:05 -05:00
Amir Alavi
a845ed3b36 Extend PodLifeTime with condition, exit code, owner kind, and transition time filters 2026-03-06 12:17:07 -05:00
Kubernetes Prow Robot
ac815c26f6 Merge pull request #1848 from sammedsingalkar09/master
update golang semconv dependencies
2026-03-06 20:00:22 +05:30
sammedsingalkar09
e76287fbbf update go dependencies 2026-03-06 11:24:00 +05:30
Kubernetes Prow Robot
751ba2e76e Merge pull request #1847 from a7i/fix/upgrade-codeql-action-v4
fix(ci): upgrade codeql-action to v4 and clean up security workflow
2026-03-05 09:06:18 +05:30
Amir Alavi
d82437286b fix(ci): upgrade codeql-action to v4 and clean up security workflow
CodeQL Action v1 and v2 have been deprecated. Update
upload-sarif to v4, remove unnecessary strategy block
(missing required matrix property), and remove invalid
exit-code input from the upload-sarif step.
2026-03-04 22:06:29 -05:00
Kubernetes Prow Robot
905e762603 Merge pull request #1842 from ingvagabund/data-races
fix: resolve detected data races
2026-02-25 21:38:25 +05:30
Jan Chaloupka
cbdab93459 fix: resolve detected data races 2026-02-25 16:38:10 +01:00
Kubernetes Prow Robot
af6e2adf42 Merge pull request #1838 from a7i/helm-icon
Change icon URL in Chart.yaml
2026-02-24 20:05:36 +05:30
Amir Alavi
c5d8ec102b chart: allow overriding ServiceMonitor apiVersion 2026-02-21 00:03:18 -05:00
Kamlesh Joshi
9bfdbe92e9 Add init containers support to Helm chart (#1826)
This commit adds support for init containers in the descheduler Helm chart,
allowing users to run initialization tasks before the main descheduler
container starts.

Changes:
- Add initContainers field to values.yaml with example usage
- Update deployment.yaml template to render init containers
- Update cronjob.yaml template to render init containers
- Bump chart version from 0.34.0 to 0.34.1

Init containers can be used for various purposes such as:
- Pre-loading configuration from external sources
- Waiting for dependencies to be ready
- Setting up required files or permissions
- Running security scans or compliance checks

Example usage in values.yaml:
initContainers:
  - name: init-config
    image: busybox:1.28
    command: ['sh', '-c', 'echo Initializing && sleep 5']

Signed-off-by: kjoshi <kjoshi@egnyte.com>
2026-02-21 08:03:39 +05:30
Cayla Fauver
9e9595357a Update helm RBAC to account for pvc failure on 0.35.0 (#1836)
* Synchronize helm clusterrole RBAC with base yaml

I noticed in v0.35.

```
E0219 23:53:57.761596       1 reflector.go:204] "Failed to watch" err="failed to list *v1.PersistentVolumeClaim: persistentvolumeclaims is forbidden: User \"system:serviceaccount:kube-system:descheduler\" cannot list resource \"persistentvolumeclaims\" in API group \"\" at the cluster scope" logger="UnhandledError" reflector="k8s.io/client-go/informers/factory.go:161" type="*v1.PersistentVolumeClaim"
```

I saw it in rbac.yaml bec9cd38d0/kubernetes/base/rbac.yaml (L38-L40)

So I figured this just needed a bump

* remove dupe

* undo version change
2026-02-21 06:17:38 +05:30
Kubernetes Prow Robot
bec9cd38d0 Merge pull request #1835 from a7i/descheduler-chart-v0.35.0
[v0.35.0] update helm chart
descheduler-helm-chart-0.35.0
2026-02-20 02:37:39 +05:30
Amir Alavi
0d387fc794 [v0.35.0] update helm chart 2026-02-19 11:57:02 -05:00
Kubernetes Prow Robot
2efac6ae8a Merge pull request #1834 from a7i/fix/helm-unittest-plugin-version
fix(ci): pin helm-unittest plugin version and bump chart-testing-action
2026-02-19 21:31:40 +05:30
Amir Alavi
d4013fd80d fix(ci): pin helm-unittest plugin version and bump chart-testing-action
The helm-unittest plugin install was failing with:
  error unmarshaling JSON: while decoding JSON: json: unknown field "platformHooks"

Pin helm-unittest to v1.0.3 and bump chart-testing-action to v2.8.0.
2026-02-19 08:00:09 -05:00
Kubernetes Prow Robot
b49fd27d10 Merge pull request #1830 from davidandreoletti/patch-1
Change annotations condition to deploymentAnnotations for Deployment object annotations
v0.35.0
2026-02-19 14:13:39 +05:30
Kubernetes Prow Robot
ce6bf5b735 Merge pull request #1832 from a7i/v0.35.0-docs-manifests
[v0.35.0] update docs and manifests
2026-02-19 10:23:37 +05:30
Kubernetes Prow Robot
86e96b5b04 Merge pull request #1831 from a7i/amir/CVE-2024-44337
chore: upgrade github.com/gomarkdown/markdown to latest version
2026-02-19 09:37:37 +05:30