Skip to content

Commit 625dde8

Browse files
committed
feat(operator): update k8s version to 1.34.0
1 parent 1d1a86b commit 625dde8

File tree

669 files changed

+64265
-28951
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

669 files changed

+64265
-28951
lines changed

.github/workflows/operator-ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
strategy:
5454
matrix:
5555
# Test on all supported K8s versions (matches docs/kubernetes-support.md)
56-
k8s-version: ["1.30.13", "1.31.9", "1.32.5", "1.33.1"]
56+
k8s-version: ["1.30.13", "1.31.9", "1.32.5", "1.33.1", "1.34.0"]
5757
fail-fast: false # Continue testing other versions if one fails
5858
steps:
5959
- uses: actions/checkout@v4

chart/templates/cleanup-webhook-job.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ spec:
3939
path: namespace
4040
containers:
4141
- name: cleanup
42-
image: {{ .Values.webhook.removalImage | default "bitnami/kubectl" }}{{- if .Values.webhook.removalDigest }}{{- if .Values.webhook.removalTag }}:{{ .Values.webhook.removalTag | default "1.33.1" }}@{{ .Values.webhook.removalDigest }}{{- else }}@{{ .Values.webhook.removalDigest }}{{- end }}{{- else }}:{{ .Values.webhook.removalTag | default "1.33.1" }}{{- end }}
42+
image: {{ .Values.webhook.removalImage | default "bitnami/kubectl" }}{{- if .Values.webhook.removalDigest }}{{- if .Values.webhook.removalTag }}:{{ .Values.webhook.removalTag | default "latest" }}@{{ .Values.webhook.removalDigest }}{{- else }}@{{ .Values.webhook.removalDigest }}{{- end }}{{- else }}:{{ .Values.webhook.removalTag | default "latest" }}{{- end }}
4343
imagePullPolicy: Always
4444
securityContext:
4545
allowPrivilegeEscalation: false

chart/templates/skyhook-crd.yaml

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,9 @@ spec:
245245
in a Container.
246246
properties:
247247
name:
248-
description: Name of the environment variable. Must be a
249-
C_IDENTIFIER.
248+
description: |-
249+
Name of the environment variable.
250+
May consist of any printable ASCII characters except '='.
250251
type: string
251252
value:
252253
description: |-
@@ -304,6 +305,43 @@ spec:
304305
- fieldPath
305306
type: object
306307
x-kubernetes-map-type: atomic
308+
fileKeyRef:
309+
description: |-
310+
FileKeyRef selects a key of the env file.
311+
Requires the EnvFiles feature gate to be enabled.
312+
properties:
313+
key:
314+
description: |-
315+
The key within the env file. An invalid key will prevent the pod from starting.
316+
The keys defined within a source may consist of any printable ASCII characters except '='.
317+
During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
318+
type: string
319+
optional:
320+
default: false
321+
description: |-
322+
Specify whether the file or its key must be defined. If the file or key
323+
does not exist, then the env var is not published.
324+
If optional is set to true and the specified key does not exist,
325+
the environment variable will not be set in the Pod's containers.
326+
327+
If optional is set to false and the specified key does not exist,
328+
an error will be returned during Pod creation.
329+
type: boolean
330+
path:
331+
description: |-
332+
The path within the volume from which to select the file.
333+
Must be relative and may not contain the '..' path or start with '..'.
334+
type: string
335+
volumeName:
336+
description: The name of the volume mount containing
337+
the env file.
338+
type: string
339+
required:
340+
- key
341+
- path
342+
- volumeName
343+
type: object
344+
x-kubernetes-map-type: atomic
307345
resourceFieldRef:
308346
description: |-
309347
Selects a resource of the container: only resources limits and requests

chart/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ webhook:
158158

159159
## uninstall image for cleaning up webhook resources
160160
removalImage: bitnami/kubectl
161-
removalTag: 1.33.1
162-
removalDigest: "sha256:9081a6f83f4febf47369fc46b6f0f7683c7db243df5b43fc9defe51b0471a950"
161+
removalTag: latest
162+
removalDigest: "sha256:1bc359beb3ae3982591349df11db50b0917b0596e8bed8ab9cf0c8a84a3502d1"
163163

164164
metrics:
165165
addServiceAccountBinding: false

docs/kubernetes-support.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This document outlines Skyhook's approach to supporting different Kubernetes ver
66

77
| Kubernetes Version | Skyhook Version | Status | Notes |
88
|--------------------|-----------------|---------|-------|
9-
| 1.33, 1.32, 1.31 | v0.9.0+ | ✅ Fully Supported | Current stable versions |
9+
| 1.34, 1.33, 1.32, 1.31 | v0.9.0+ | ✅ Fully Supported | Current stable versions |
1010
| 1.30 | v0.8.x | ⚠️ Use older Skyhook | K8s 1.30 EOL: June 28, 2025 |
1111
| 1.29 and older | v0.8.x or older | ⚠️ Use older Skyhook | No longer maintained |
1212

@@ -57,21 +57,21 @@ We understand many installations run slightly older Kubernetes versions. Our str
5757

5858
**Choose your Skyhook version based on your Kubernetes version:**
5959

60-
- **Kubernetes 1.33, 1.32, or 1.31:** Use latest Skyhook (v0.9.0+)
60+
- **Kubernetes 1.34, 1.33, 1.32, or 1.31:** Use latest Skyhook (v0.9.0+)
6161
- **Kubernetes 1.30:** Use Skyhook v0.8.x (K8s 1.30 is EOL but v0.8.x still works)
6262
- **Kubernetes 1.29 or older:** Use Skyhook v0.8.x or older (check release notes for compatibility)
6363

6464
### Migration Path
6565

6666
**If you're on an older Kubernetes version:**
67-
1. **First:** Upgrade your Kubernetes cluster to a supported version (1.31, 1.32, or 1.33)
67+
1. **First:** Upgrade your Kubernetes cluster to a supported version (1.31, 1.32, 1.33, or 1.34)
6868
2. **Then:** Upgrade to the latest Skyhook version
6969

7070
**If you're on Kubernetes 1.30:**
71-
- **Option A:** Upgrade to K8s 1.31/1.32/1.33, then use latest Skyhook
71+
- **Option A:** Upgrade to K8s 1.31/1.32/1.33/1.34, then use latest Skyhook
7272
- **Option B:** Stay on Skyhook v0.8.x until you can upgrade Kubernetes
7373

74-
**Recommended:** If you can choose your Kubernetes version, use 1.33 or 1.32 for the longest support runway.
74+
**Recommended:** If you can choose your Kubernetes version, use 1.34, 1.33, or 1.32 for the longest support runway.
7575

7676
## FAQ
7777

@@ -102,7 +102,7 @@ Waiting 4+ weeks lets the ecosystem stabilize and gives us confidence in support
102102
### How do you test compatibility?
103103

104104
For each Skyhook release, we test against all supported Kubernetes versions using:
105-
- GitHub Actions matrix builds with multiple K8s versions (currently 1.31, 1.32, 1.33)
105+
- GitHub Actions matrix builds with multiple K8s versions (currently 1.31, 1.32, 1.33, 1.34)
106106
- Local testing with [kind](https://kind.sigs.k8s.io/)
107107
- Basic functionality and integration tests
108108

operator/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ IMG_REPO ?= ghcr.io/nvidia/skyhook
2424
IMG ?= $(IMG_REPO)/operator
2525

2626
## default version of kind to use
27-
KIND_VERSION?=1.33.1
27+
KIND_VERSION?=1.34.0
2828

2929
PLATFORM := $(shell uname -s 2>/dev/null || echo unknown)
3030
SKYHOOK_NAMESPACE ?= skyhook

operator/api/v1alpha1/webhook_suite_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ var _ = BeforeSuite(func() {
7575
// Note that you must have the required binaries setup under the bin directory to perform
7676
// the tests directly. When we run make test it will be setup and used automatically.
7777
BinaryAssetsDirectory: filepath.Join("..", "..", "bin", "k8s",
78-
fmt.Sprintf("1.33.0-%s-%s", runtime.GOOS, runtime.GOARCH)),
78+
fmt.Sprintf("1.34.0-%s-%s", runtime.GOOS, runtime.GOARCH)),
7979

8080
WebhookInstallOptions: envtest.WebhookInstallOptions{
8181
Paths: []string{filepath.Join("..", "..", "config", "webhook")},

operator/config/crd/bases/skyhook.nvidia.com_skyhooks.yaml

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,9 @@ spec:
239239
in a Container.
240240
properties:
241241
name:
242-
description: Name of the environment variable. Must be
243-
a C_IDENTIFIER.
242+
description: |-
243+
Name of the environment variable.
244+
May consist of any printable ASCII characters except '='.
244245
type: string
245246
value:
246247
description: |-
@@ -298,6 +299,43 @@ spec:
298299
- fieldPath
299300
type: object
300301
x-kubernetes-map-type: atomic
302+
fileKeyRef:
303+
description: |-
304+
FileKeyRef selects a key of the env file.
305+
Requires the EnvFiles feature gate to be enabled.
306+
properties:
307+
key:
308+
description: |-
309+
The key within the env file. An invalid key will prevent the pod from starting.
310+
The keys defined within a source may consist of any printable ASCII characters except '='.
311+
During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
312+
type: string
313+
optional:
314+
default: false
315+
description: |-
316+
Specify whether the file or its key must be defined. If the file or key
317+
does not exist, then the env var is not published.
318+
If optional is set to true and the specified key does not exist,
319+
the environment variable will not be set in the Pod's containers.
320+
321+
If optional is set to false and the specified key does not exist,
322+
an error will be returned during Pod creation.
323+
type: boolean
324+
path:
325+
description: |-
326+
The path within the volume from which to select the file.
327+
Must be relative and may not contain the '..' path or start with '..'.
328+
type: string
329+
volumeName:
330+
description: The name of the volume mount containing
331+
the env file.
332+
type: string
333+
required:
334+
- key
335+
- path
336+
- volumeName
337+
type: object
338+
x-kubernetes-map-type: atomic
301339
resourceFieldRef:
302340
description: |-
303341
Selects a resource of the container: only resources limits and requests

operator/deps.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ endif
3939
GOLANGCI_LINT_VERSION ?= v2.2.1
4040
KUSTOMIZE_VERSION ?= v5.4.1
4141
CONTROLLER_TOOLS_VERSION ?= v0.18.0
42-
ENVTEST_K8S_VERSION ?= 1.33.0
42+
ENVTEST_K8S_VERSION ?= 1.34.0
4343
GOCOVER_VERSION ?= v1.3.0
4444
GINKGO_VERSION ?= v2.22.2
4545
MOCKERY_VERSION ?= v3.5.0

operator/go.mod

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,55 +11,58 @@ require (
1111
github.com/sethvargo/go-envconfig v1.0.0
1212
github.com/stretchr/testify v1.10.0
1313
go.uber.org/zap v1.27.0
14-
k8s.io/api v0.33.2
15-
k8s.io/apimachinery v0.33.2
16-
k8s.io/client-go v0.33.2
17-
k8s.io/kubernetes v1.33.4
14+
k8s.io/api v0.34.0
15+
k8s.io/apimachinery v0.34.0
16+
k8s.io/client-go v0.34.0
17+
k8s.io/kubernetes v1.34.0
1818
sigs.k8s.io/controller-runtime v0.21.0
1919
)
2020

2121
require (
2222
github.com/blang/semver/v4 v4.0.0 // indirect
2323
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
24-
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
24+
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
2525
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
2626
github.com/google/btree v1.1.3 // indirect
2727
github.com/x448/float16 v0.8.4 // indirect
28+
go.yaml.in/yaml/v2 v2.4.2 // indirect
29+
go.yaml.in/yaml/v3 v3.0.4 // indirect
2830
golang.org/x/sync v0.12.0 // indirect
2931
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
3032
gopkg.in/yaml.v3 v3.0.1 // indirect
3133
sigs.k8s.io/randfill v1.0.0 // indirect
34+
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
3235
)
3336

3437
require (
3538
github.com/beorn7/perks v1.0.1 // indirect
3639
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3740
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
38-
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
41+
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
3942
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
40-
github.com/fsnotify/fsnotify v1.7.0 // indirect
43+
github.com/fsnotify/fsnotify v1.9.0 // indirect
4144
github.com/go-logr/zapr v1.3.0 // indirect
4245
github.com/go-openapi/jsonpointer v0.21.0 // indirect
4346
github.com/go-openapi/jsonreference v0.20.2 // indirect
4447
github.com/go-openapi/swag v0.23.0 // indirect
4548
github.com/gogo/protobuf v1.3.2 // indirect
46-
github.com/google/gnostic-models v0.6.9 // indirect
49+
github.com/google/gnostic-models v0.7.0 // indirect
4750
github.com/google/go-cmp v0.7.0 // indirect
4851
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
4952
github.com/google/uuid v1.6.0 // indirect
5053
github.com/josharian/intern v1.0.0 // indirect
5154
github.com/json-iterator/go v1.1.12 // indirect
5255
github.com/mailru/easyjson v0.7.7 // indirect
5356
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
54-
github.com/modern-go/reflect2 v1.0.2 // indirect
57+
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
5558
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
5659
github.com/pkg/errors v0.9.1 // indirect
5760
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
5861
github.com/prometheus/client_golang v1.22.0
5962
github.com/prometheus/client_model v0.6.1 // indirect
6063
github.com/prometheus/common v0.62.0 // indirect
6164
github.com/prometheus/procfs v0.15.1 // indirect
62-
github.com/spf13/pflag v1.0.5 // indirect
65+
github.com/spf13/pflag v1.0.6 // indirect
6366
github.com/stretchr/objx v0.5.2 // indirect
6467
go.uber.org/multierr v1.11.0 // indirect
6568
golang.org/x/mod v0.22.0
@@ -73,11 +76,10 @@ require (
7376
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
7477
google.golang.org/protobuf v1.36.5 // indirect
7578
gopkg.in/inf.v0 v0.9.1 // indirect
76-
k8s.io/apiextensions-apiserver v0.33.0 // indirect
79+
k8s.io/apiextensions-apiserver v0.34.0 // indirect
7780
k8s.io/klog/v2 v2.130.1 // indirect
78-
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
79-
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
80-
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
81-
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
82-
sigs.k8s.io/yaml v1.4.0 // indirect
81+
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
82+
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
83+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
84+
sigs.k8s.io/yaml v1.6.0 // indirect
8385
)

0 commit comments

Comments
 (0)