From e06d83b8ce7fa7f1d87bb49cf5860e804b4b5342 Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Wed, 9 Jul 2025 14:06:16 +0530 Subject: [PATCH 1/2] Renovate: Automate operand version bumps in GPU Operator --- .github/renovate.json | 97 +++++++++++++++++++ .github/workflows/renovate.yaml | 22 +++++ ...rator-certified.clusterserviceversion.yaml | 14 +-- deployments/gpu-operator/values.yaml | 18 ++-- 4 files changed, 135 insertions(+), 16 deletions(-) create mode 100644 .github/renovate.json create mode 100644 .github/workflows/renovate.yaml diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 000000000..9fbce6b9f --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "prHourlyLimit": 10, + "prConcurrentLimit": 10, + "dependencyDashboard": false, + "extends": [ + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard", + "config:recommended", + ":disableDependencyDashboard" + ], + "forkProcessing": "enabled", + "ignorePaths": ["vendor/**"], + "enabledManagers": ["custom.regex"], + "recreateWhen": "always", + "separateMultipleMajor": false, + "separateMinorPatch": false, + "customManagers": [ + { + "customType": "regex", + "managerFilePatterns": [ + "bundle/manifests/gpu-operator-certified.clusterserviceversion.yaml" + ], + "matchStrings": [ + "[-\\s]*value:\\s*\"?(?[^:\"]+)(?::(?[^@\"]+))?@(?sha256:[a-f0-9]{64})\"?", + "[-\\s]*image: (?.*?)(?::(?.*?))?@(?sha256:[a-f0-9]{64})", + "- name: (?[\\w-]+)[-\\s]*image: (?.*?)(?::(?.*?))?@(?sha256:[a-f0-9]{64})" + ], + "versioningTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}", + "datasourceTemplate": "docker" + }, + { + "customType": "regex", + "managerFilePatterns": [ + "deployments/gpu-operator/values.yaml" + ], + "matchStrings": [ + "[-\\s]*repository:\\s*(?\\S+)\\s*\\n(?:\\s*#.*\\n|\\s*\\n)*[-\\s]*image:\\s*(?\\S+)\\s*\\n(?:\\s*#.*\\n|\\s*\\n)*[-\\s]*version:\\s*(?\\S+)" + ], + "depNameTemplate": "{{repo}}/{{image}}", + "datasourceTemplate": "docker", + "versioningTemplate": "loose" + } + ], + "packageRules": [ + { + "matchPaths": ["deployments/gpu-operator/values.yaml"], + "matchPackageNames": [ + "nvcr.io/nvidia/cloud-native/k8s-driver-manager", + "nvcr.io/nvidia/cloud-native/k8s-kata-manager", + "nvcr.io/nvidia/cloud-native/vgpu-device-manager", + "nvcr.io/nvidia/cloud-native/vgpu-cc-manager", + "nvcr.io/nvidia/kubevirt-gpu-device-plugin", + "nvcr.io/nvidia/k8s-device-plugin" + ], + "versioning": "regex:^v?(?\\d+)\\.(?\\d+)\\.(?\\d+)$", + "separateMajorMinor": false + }, + { + "matchPaths": ["deployments/gpu-operator/values.yaml"], + "matchPackageNames": [ + "nvcr.io/nvidia/k8s/container-toolkit", + "nvcr.io/nvidia/cloud-native/k8s-mig-manager" + ], + "versioning": "regex:^v?(?\\d+)\\.(?\\d+)\\.(?\\d+)-ubuntu(?\\d+\\.\\d+)$", + "separateMajorMinor": false + }, + { + "matchPaths": ["deployments/gpu-operator/values.yaml"], + "matchPackageNames": [ + "nvcr.io/nvidia/cuda" + ], + "versioning": "regex:^(?\\d+)\\.(?\\d+)\\.(?\\d+)-base-ubi9$", + "separateMajorMinor": false + }, + { + "groupName": "bump all nvcr packages for deploymens and clusterservice, skip driver", + "matchPackageNames": ["/.*/"] + }, + { + "matchPackageNames": ["nvcr.io/nvidia/driver"], + "enabled": false + } + ] +} diff --git a/.github/workflows/renovate.yaml b/.github/workflows/renovate.yaml new file mode 100644 index 000000000..a4f1f615e --- /dev/null +++ b/.github/workflows/renovate.yaml @@ -0,0 +1,22 @@ +name: Renovate + +on: + workflow_dispatch: + schedule: + - cron: "0 9 * * *" + +jobs: + renovate: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Renovate + uses: renovatebot/github-action@v43.0.2 + with: + configurationFile: .github/renovate.json + env: + RENOVATE_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RENOVATE_REPOSITORIES: '["shivakunv/gpu-operator"]' + RENOVATE_ONBOARDING: false diff --git a/bundle/manifests/gpu-operator-certified.clusterserviceversion.yaml b/bundle/manifests/gpu-operator-certified.clusterserviceversion.yaml index 3dfd5d59e..bba47f19a 100644 --- a/bundle/manifests/gpu-operator-certified.clusterserviceversion.yaml +++ b/bundle/manifests/gpu-operator-certified.clusterserviceversion.yaml @@ -161,7 +161,7 @@ metadata: "driverType": "gpu", "repository": "nvcr.io/nvidia", "image": "driver", - "version": "sha256:b74c06db9fda39e93d65649e1f447cb7bb82edfdc729936b4e67d11bbf9a4715", + "version": "sha256:6729c252a8877f29a1e5e336b945efa5126ea555db3c83b06e2e3d9843e647c7", "nodeSelector": {}, "manager": {}, "repoConfig": { @@ -203,13 +203,13 @@ spec: - name: gpu-operator-image image: ghcr.io/nvidia/gpu-operator:main-latest - name: dcgm-exporter-image - image: nvcr.io/nvidia/k8s/dcgm-exporter@sha256:6c78381d83e2ccd84e9645d35d8768d98a52b73c75d1bb9395b5f030ce9bd3a4 + image: nvcr.io/nvidia/k8s/dcgm-exporter@sha256:b848747435dfecb216484d16363a9897f64232b3c3ae7f171dde06525d8606b4 - name: dcgm-image - image: nvcr.io/nvidia/cloud-native/dcgm@sha256:ec473ac9f8e4f638e97ec5ffd6f6d3dbbfc3a53bdd07514745c8868676979bba + image: nvcr.io/nvidia/cloud-native/dcgm@sha256:954cb65ae82d3663903299b2c9dab006df8b2bb6d59115ac5f63262f3b10aa30 - name: container-toolkit-image image: nvcr.io/nvidia/k8s/container-toolkit@sha256:51c8f71d3b3c08ae4eb4853697e3f8e6f11e435e666e08210178e6a1faf8028f - name: driver-image - image: nvcr.io/nvidia/driver@sha256:b74c06db9fda39e93d65649e1f447cb7bb82edfdc729936b4e67d11bbf9a4715 + image: nvcr.io/nvidia/driver@sha256:6729c252a8877f29a1e5e336b945efa5126ea555db3c83b06e2e3d9843e647c7 - name: driver-image-550 image: nvcr.io/nvidia/driver@sha256:8b89435d54a2e6a33c480dd0659e9a4a73f872a6187f9f9eadd934ecb45ac273 - name: driver-image-535 @@ -901,13 +901,13 @@ spec: - name: "CONTAINER_TOOLKIT_IMAGE" value: "nvcr.io/nvidia/k8s/container-toolkit@sha256:51c8f71d3b3c08ae4eb4853697e3f8e6f11e435e666e08210178e6a1faf8028f" - name: "DCGM_IMAGE" - value: "nvcr.io/nvidia/cloud-native/dcgm@sha256:ec473ac9f8e4f638e97ec5ffd6f6d3dbbfc3a53bdd07514745c8868676979bba" + value: "nvcr.io/nvidia/cloud-native/dcgm@sha256:954cb65ae82d3663903299b2c9dab006df8b2bb6d59115ac5f63262f3b10aa30" - name: "DCGM_EXPORTER_IMAGE" - value: "nvcr.io/nvidia/k8s/dcgm-exporter@sha256:6c78381d83e2ccd84e9645d35d8768d98a52b73c75d1bb9395b5f030ce9bd3a4" + value: "nvcr.io/nvidia/k8s/dcgm-exporter@sha256:b848747435dfecb216484d16363a9897f64232b3c3ae7f171dde06525d8606b4" - name: "DEVICE_PLUGIN_IMAGE" value: "nvcr.io/nvidia/k8s-device-plugin@sha256:037160a36de0f060fc21cc0cb2f795d980282ff1471b55530433ca4350b24c4f" - name: "DRIVER_IMAGE" - value: "nvcr.io/nvidia/driver@sha256:b74c06db9fda39e93d65649e1f447cb7bb82edfdc729936b4e67d11bbf9a4715" + value: "nvcr.io/nvidia/driver@sha256:6729c252a8877f29a1e5e336b945efa5126ea555db3c83b06e2e3d9843e647c7" - name: "DRIVER_IMAGE-550" value: "nvcr.io/nvidia/driver@sha256:8b89435d54a2e6a33c480dd0659e9a4a73f872a6187f9f9eadd934ecb45ac273" - name: "DRIVER_IMAGE-535" diff --git a/deployments/gpu-operator/values.yaml b/deployments/gpu-operator/values.yaml index 749208de2..3fc0a4d35 100644 --- a/deployments/gpu-operator/values.yaml +++ b/deployments/gpu-operator/values.yaml @@ -80,8 +80,8 @@ operator: # to be passed during helm upgrade. upgradeCRD: true initContainer: - image: cuda repository: nvcr.io/nvidia + image: cuda version: 12.8.1-base-ubi9 imagePullPolicy: IfNotPresent tolerations: @@ -146,7 +146,7 @@ driver: usePrecompiled: false repository: nvcr.io/nvidia image: driver - version: "570.158.01" + version: "570.148.08" imagePullPolicy: IfNotPresent imagePullSecrets: [] startupProbe: @@ -192,8 +192,8 @@ driver: timeoutSeconds: 300 deleteEmptyDir: false manager: - image: k8s-driver-manager repository: nvcr.io/nvidia/cloud-native + image: k8s-driver-manager # When choosing a different version of k8s-driver-manager, DO NOT downgrade to a version lower than v0.6.4 # to ensure k8s-driver-manager stays compatible with gpu-operator starting from v24.3.0 version: v0.8.0 @@ -234,7 +234,7 @@ toolkit: enabled: true repository: nvcr.io/nvidia/k8s image: container-toolkit - version: v1.17.8-ubuntu20.04 + version: v1.17.7-ubuntu20.04 imagePullPolicy: IfNotPresent imagePullSecrets: [] env: [] @@ -245,7 +245,7 @@ devicePlugin: enabled: true repository: nvcr.io/nvidia image: k8s-device-plugin - version: v0.17.2 + version: v0.17.1 imagePullPolicy: IfNotPresent imagePullSecrets: [] args: [] @@ -303,7 +303,7 @@ dcgm: enabled: false repository: nvcr.io/nvidia/cloud-native image: dcgm - version: 4.2.3-1-ubuntu22.04 + version: 4.1.1-2-ubuntu22.04 imagePullPolicy: IfNotPresent args: [] env: [] @@ -313,7 +313,7 @@ dcgmExporter: enabled: true repository: nvcr.io/nvidia/k8s image: dcgm-exporter - version: 4.2.3-4.1.3-ubuntu22.04 + version: 4.2.3-4.1.1-ubuntu22.04 imagePullPolicy: IfNotPresent env: - name: DCGM_EXPORTER_LISTEN @@ -464,8 +464,8 @@ vgpuManager: env: [] resources: {} driverManager: - image: k8s-driver-manager repository: nvcr.io/nvidia/cloud-native + image: k8s-driver-manager # When choosing a different version of k8s-driver-manager, DO NOT downgrade to a version lower than v0.6.4 # to ensure k8s-driver-manager stays compatible with gpu-operator starting from v24.3.0 version: v0.8.0 @@ -498,8 +498,8 @@ vfioManager: env: [] resources: {} driverManager: - image: k8s-driver-manager repository: nvcr.io/nvidia/cloud-native + image: k8s-driver-manager # When choosing a different version of k8s-driver-manager, DO NOT downgrade to a version lower than v0.6.4 # to ensure k8s-driver-manager stays compatible with gpu-operator starting from v24.3.0 version: v0.8.0 From cde5ac03fa4e1c5963b8b7f0128a04f8a6f3cd8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Jul 2025 16:25:02 +0000 Subject: [PATCH 2/2] Bump sigs.k8s.io/yaml from 1.5.0 to 1.6.0 Bumps [sigs.k8s.io/yaml](https://github.com/kubernetes-sigs/yaml) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/kubernetes-sigs/yaml/releases) - [Changelog](https://github.com/kubernetes-sigs/yaml/blob/master/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/yaml/compare/v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: sigs.k8s.io/yaml dependency-version: 1.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- vendor/modules.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index f3fe4ae25..601debe06 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( k8s.io/client-go v0.33.2 k8s.io/klog/v2 v2.130.1 sigs.k8s.io/controller-runtime v0.21.0 - sigs.k8s.io/yaml v1.5.0 + sigs.k8s.io/yaml v1.6.0 ) require ( diff --git a/go.sum b/go.sum index f305e0e58..ad268d61c 100644 --- a/go.sum +++ b/go.sum @@ -531,5 +531,5 @@ sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxO sigs.k8s.io/structured-merge-diff/v4 v4.7.0 h1:qPeWmscJcXP0snki5IYF79Z8xrl8ETFxgMd7wez1XkI= sigs.k8s.io/structured-merge-diff/v4 v4.7.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= -sigs.k8s.io/yaml v1.5.0 h1:M10b2U7aEUY6hRtU870n2VTPgR5RZiL/I6Lcc2F4NUQ= -sigs.k8s.io/yaml v1.5.0/go.mod h1:wZs27Rbxoai4C0f8/9urLZtZtF3avA3gKvGyPdDqTO4= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/vendor/modules.txt b/vendor/modules.txt index e9daeb47e..0cccb95c6 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1445,7 +1445,7 @@ sigs.k8s.io/structured-merge-diff/v4/merge sigs.k8s.io/structured-merge-diff/v4/schema sigs.k8s.io/structured-merge-diff/v4/typed sigs.k8s.io/structured-merge-diff/v4/value -# sigs.k8s.io/yaml v1.5.0 +# sigs.k8s.io/yaml v1.6.0 ## explicit; go 1.22 sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2