Skip to content

Commit a5a9cc1

Browse files
authored
feat: Integrate maintenance OP upgrade with network OP (Mellanox#1379)
Integrate network operator upgrade controller with `k8s-operator-libs` changes for supporting new maintenance OP `requestor` upgrade mode This PR depends on [NVIDIA/k8s-operator-libs#86](NVIDIA/k8s-operator-libs#86)
2 parents 2099e0f + fb651be commit a5a9cc1

File tree

12 files changed

+121
-78
lines changed

12 files changed

+121
-78
lines changed

config/rbac/role.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,12 @@ rules:
205205
- patch
206206
- update
207207
- watch
208+
- apiGroups:
209+
- maintenance.nvidia.com
210+
resources:
211+
- nodemaintenances/status
212+
verbs:
213+
- get
208214
- apiGroups:
209215
- mellanox.com
210216
resources:

controllers/nicclusterpolicy_controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ type NicClusterPolicyReconciler struct {
103103
// +kubebuilder:rbac:groups=configuration.net.nvidia.com,resources=nicfirmwaresources,verbs=get;list;watch;create;update;patch;delete
104104
// +kubebuilder:rbac:groups=configuration.net.nvidia.com,resources=nicfirmwaresources/finalizers,verbs=update
105105
// +kubebuilder:rbac:groups=maintenance.nvidia.com,resources=nodemaintenances,verbs=get;list;watch;create;update;patch;delete
106+
// +kubebuilder:rbac:groups=maintenance.nvidia.com,resources=nodemaintenances/status,verbs=get
106107

107108
// Reconcile is part of the main kubernetes reconciliation loop which aims to
108109
// move the current state of the cluster closer to the desired state.

controllers/upgrade_controller.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ import (
3838
"sigs.k8s.io/controller-runtime/pkg/predicate"
3939
"sigs.k8s.io/controller-runtime/pkg/reconcile"
4040

41+
maintenancev1alpha1 "github.com/Mellanox/maintenance-operator/api/v1alpha1"
42+
4143
mellanoxv1alpha1 "github.com/Mellanox/network-operator/api/v1alpha1"
4244
"github.com/Mellanox/network-operator/pkg/config"
4345
"github.com/Mellanox/network-operator/pkg/consts"
@@ -192,7 +194,8 @@ func (r *UpgradeReconciler) removeNodeUpgradeStateAnnotations(ctx context.Contex
192194
// SetupWithManager sets up the controller with the Manager.
193195
//
194196
//nolint:dupl
195-
func (r *UpgradeReconciler) SetupWithManager(mgr ctrl.Manager) error {
197+
func (r *UpgradeReconciler) SetupWithManager(mgr ctrl.Manager,
198+
requestorPredicate upgrade.ConditionChangedPredicate) error {
196199
// we always add object with a same(static) key to the queue to reduce
197200
// reconciliation count
198201
qHandler := func(q workqueue.TypedRateLimitingInterface[reconcile.Request]) {
@@ -228,14 +231,14 @@ func (r *UpgradeReconciler) SetupWithManager(mgr ctrl.Manager) error {
228231
labels := object.GetLabels()
229232
_, ok := labels[consts.OfedDriverLabel]
230233
return ok
231-
}))
234+
}), requestorPredicate)
232235

233236
// react only on label and annotation changes
234237
nodePredicates := builder.WithPredicates(
235238
predicate.Or(predicate.AnnotationChangedPredicate{},
236239
predicate.LabelChangedPredicate{}))
237240

238-
return ctrl.NewControllerManagedBy(mgr).
241+
mngr := ctrl.NewControllerManagedBy(mgr).
239242
For(&mellanoxv1alpha1.NicClusterPolicy{}).
240243
Named("Upgrade").
241244
// set MaxConcurrentReconciles to 1, by default it is already 1, but
@@ -244,6 +247,14 @@ func (r *UpgradeReconciler) SetupWithManager(mgr ctrl.Manager) error {
244247
WithOptions(controller.Options{MaxConcurrentReconciles: 1}).
245248
Watches(&mellanoxv1alpha1.NicClusterPolicy{}, createUpdateDeleteEnqueue).
246249
Watches(&corev1.Node{}, createUpdateEnqueue, nodePredicates).
247-
Watches(&appsv1.DaemonSet{}, createUpdateDeleteEnqueue, daemonSetPredicates).
248-
Complete(r)
250+
Watches(&appsv1.DaemonSet{}, createUpdateDeleteEnqueue, daemonSetPredicates)
251+
252+
// Conditionally add Watches for NodeMaintenance if UseMaintenanceOperator is true
253+
requestorOpts := upgrade.GetRequestorOptsFromEnvs()
254+
if requestorOpts.UseMaintenanceOperator {
255+
mngr = mngr.Watches(&maintenancev1alpha1.NodeMaintenance{}, createUpdateDeleteEnqueue,
256+
builder.WithPredicates(requestorPredicate))
257+
}
258+
259+
return mngr.Complete(r)
249260
}

deployment/network-operator/templates/operator.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ spec:
9090
value: "{{ .repository }}/{{ .image }}:{{ .version }}"
9191
{{- end }}
9292
{{- end }}
93+
{{- if .Values.maintenanceOperator.enabled }}
94+
- name: MAINTENANCE_OPERATOR_ENABLED
95+
value: "{{ .Values.operator.maintenanceOperator.useRequestor }}"
96+
- name: MAINTENANCE_OPERATOR_REQUESTOR_ID
97+
value: {{ .Values.operator.maintenanceOperator.requestorID }}
98+
- name: MAINTENANCE_OPERATOR_REQUESTOR_NAMESPACE
99+
value: {{ .Values.operator.maintenanceOperator.nodeMaintenanceNamespace }}
100+
{{- end }}
93101
securityContext:
94102
allowPrivilegeEscalation: false
95103
livenessProbe:

deployment/network-operator/templates/role.yaml

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -332,19 +332,7 @@ rules:
332332
- patch
333333
- update
334334
- apiGroups:
335-
- maintenance.nvidia.com
336-
resources:
337-
- nodemaintenances
338-
verbs:
339-
- create
340-
- delete
341-
- get
342-
- list
343-
- patch
344-
- update
345-
- watch
346-
- apiGroups:
347-
- mellanox.com
335+
- mellanox.com
348336
resources:
349337
- nicclusterpolicies
350338
- nicclusterpolicies/status
@@ -458,4 +446,22 @@ rules:
458446
- deletecollection
459447
- get
460448
- list
461-
- patch
449+
- patch
450+
- apiGroups:
451+
- maintenance.nvidia.com
452+
resources:
453+
- nodemaintenances
454+
verbs:
455+
- create
456+
- delete
457+
- get
458+
- list
459+
- patch
460+
- update
461+
- watch
462+
- apiGroups:
463+
- maintenance.nvidia.com
464+
resources:
465+
- nodemaintenances/status
466+
verbs:
467+
- get

deployment/network-operator/values.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ operator:
270270
# parameter. Note that the CNI bin directory should be aligned with the CNI bin
271271
# directory in the container runtime.
272272
cniBinDirectory: /opt/cni/bin
273+
# -- Enable the use of maintenance operator upgrade logic.
274+
maintenanceOperator:
275+
useRequestor: false
276+
requestorID: "nvidia.network.operator"
277+
nodeMaintenanceNamespace: default
273278
# -- Enable the use of Driver ToolKit to compile DOCA Drivers (OpenShift only).
274279
useDTK: true
275280
admissionController:

go.mod

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ go 1.23.2
44

55
require (
66
github.com/Masterminds/semver/v3 v3.3.1
7-
github.com/NVIDIA/k8s-operator-libs v0.0.0-20241120073822-1ad8938d7274
7+
github.com/Mellanox/maintenance-operator/api v0.1.1
8+
github.com/NVIDIA/k8s-operator-libs v0.0.0-20250423130453-abf588756c1c
89
github.com/caarlos0/env/v6 v6.10.1
910
github.com/containers/image/v5 v5.34.3
1011
github.com/go-logr/logr v1.4.2
@@ -18,11 +19,11 @@ require (
1819
github.com/stretchr/testify v1.10.0
1920
github.com/xeipuuv/gojsonschema v1.2.0
2021
gopkg.in/yaml.v3 v3.0.1
21-
k8s.io/api v0.31.7
22-
k8s.io/apimachinery v0.31.7
23-
k8s.io/client-go v0.31.7
24-
k8s.io/utils v0.0.0-20240921022957-49e7df575cb6
25-
sigs.k8s.io/controller-runtime v0.19.7
22+
k8s.io/api v0.32.3
23+
k8s.io/apimachinery v0.32.3
24+
k8s.io/client-go v0.32.3
25+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
26+
sigs.k8s.io/controller-runtime v0.20.4
2627
sigs.k8s.io/yaml v1.4.0
2728
)
2829

@@ -41,7 +42,7 @@ require (
4142
github.com/docker/docker-credential-helpers v0.8.2 // indirect
4243
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
4344
github.com/evanphx/json-patch v5.9.0+incompatible // indirect
44-
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
45+
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
4546
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
4647
github.com/fsnotify/fsnotify v1.7.0 // indirect
4748
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
@@ -52,7 +53,6 @@ require (
5253
github.com/go-openapi/swag v0.23.0 // indirect
5354
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
5455
github.com/gogo/protobuf v1.3.2 // indirect
55-
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
5656
github.com/golang/protobuf v1.5.4 // indirect
5757
github.com/google/btree v1.1.3 // indirect
5858
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
@@ -63,7 +63,6 @@ require (
6363
github.com/google/uuid v1.6.0 // indirect
6464
github.com/gorilla/websocket v1.5.3 // indirect
6565
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
66-
github.com/imdario/mergo v0.3.16 // indirect
6766
github.com/inconshreveable/mousetrap v1.1.0 // indirect
6867
github.com/josharian/intern v1.0.0 // indirect
6968
github.com/json-iterator/go v1.1.12 // indirect
@@ -100,7 +99,6 @@ require (
10099
go.uber.org/automaxprocs v1.6.0 // indirect
101100
go.uber.org/multierr v1.11.0 // indirect
102101
go.uber.org/zap v1.27.0 // indirect
103-
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
104102
golang.org/x/net v0.38.0 // indirect
105103
golang.org/x/oauth2 v0.25.0 // indirect
106104
golang.org/x/sync v0.12.0 // indirect
@@ -113,15 +111,14 @@ require (
113111
google.golang.org/protobuf v1.36.5 // indirect
114112
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
115113
gopkg.in/inf.v0 v0.9.1 // indirect
116-
gopkg.in/yaml.v2 v2.4.0 // indirect
117-
k8s.io/apiextensions-apiserver v0.31.1 // indirect
118-
k8s.io/cli-runtime v0.31.2 // indirect
119-
k8s.io/component-base v0.31.2 // indirect
114+
k8s.io/apiextensions-apiserver v0.32.3 // indirect
115+
k8s.io/cli-runtime v0.32.3 // indirect
116+
k8s.io/component-base v0.32.3 // indirect
120117
k8s.io/klog/v2 v2.130.1 // indirect
121-
k8s.io/kube-openapi v0.0.0-20241009091222-67ed5848f094 // indirect
122-
k8s.io/kubectl v0.31.2 // indirect
118+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
119+
k8s.io/kubectl v0.32.3 // indirect
123120
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
124121
sigs.k8s.io/kustomize/api v0.18.0 // indirect
125122
sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect
126-
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
123+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
127124
)

go.sum

Lines changed: 28 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ
44
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
55
github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4=
66
github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
7-
github.com/NVIDIA/k8s-operator-libs v0.0.0-20241120073822-1ad8938d7274 h1:ClLcJZjIgIWOYtLXnELKng4F5uDTUZwpgg0a1Dl0Fo8=
8-
github.com/NVIDIA/k8s-operator-libs v0.0.0-20241120073822-1ad8938d7274/go.mod h1:g8DW2t4Vit91uLdqCxsjKbKYrwCdb/oB9q/YOXdUjmQ=
7+
github.com/Mellanox/maintenance-operator/api v0.1.1 h1:DSPE7SS9DmieddjZtiL7eA5yCnYm9UkwRo1ViJtixoc=
8+
github.com/Mellanox/maintenance-operator/api v0.1.1/go.mod h1:5OIBO4beWexC3JvLIH1GGNzr49QW7UoZe2LgT/IXYIc=
9+
github.com/NVIDIA/k8s-operator-libs v0.0.0-20250423130453-abf588756c1c h1:QAx1rvFT70PPyYU/bx1KlKoQBZpod1D7hKLAluU4lIE=
10+
github.com/NVIDIA/k8s-operator-libs v0.0.0-20250423130453-abf588756c1c/go.mod h1:B5g1bFq39qbuVK62pz0m93Qy3CCjeutfNICSl7SFoYo=
911
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
1012
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
1113
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -41,8 +43,8 @@ github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtz
4143
github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
4244
github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
4345
github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
44-
github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
45-
github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
46+
github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
47+
github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM=
4648
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4=
4749
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc=
4850
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
@@ -65,8 +67,6 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v
6567
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
6668
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
6769
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
68-
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
69-
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
7070
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
7171
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
7272
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
@@ -93,8 +93,6 @@ github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aN
9393
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
9494
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
9595
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
96-
github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
97-
github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
9896
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
9997
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
10098
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
@@ -209,8 +207,6 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
209207
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
210208
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
211209
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
212-
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo=
213-
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
214210
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
215211
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
216212
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -262,44 +258,41 @@ gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSP
262258
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
263259
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
264260
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
265-
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
266-
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
267-
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
268261
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
269262
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
270263
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
271264
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
272265
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
273266
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
274-
k8s.io/api v0.31.7 h1:wSo59nXpVXmaB6hgNVJCrdnKtyYoutIgpNNBbROBd2U=
275-
k8s.io/api v0.31.7/go.mod h1:vLUha4nXRUGtQdayzsmjur0lQApK/sJSxyR/fwuujcU=
276-
k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40=
277-
k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ=
278-
k8s.io/apimachinery v0.31.7 h1:fpV8yLerIZFAkj0of66+i1ArPv/Btf9KO6Aulng7RRw=
279-
k8s.io/apimachinery v0.31.7/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
280-
k8s.io/cli-runtime v0.31.2 h1:7FQt4C4Xnqx8V1GJqymInK0FFsoC+fAZtbLqgXYVOLQ=
281-
k8s.io/cli-runtime v0.31.2/go.mod h1:XROyicf+G7rQ6FQJMbeDV9jqxzkWXTYD6Uxd15noe0Q=
282-
k8s.io/client-go v0.31.7 h1:2+LFJc6Xw6rhmpDbN1NSmhoFLWBh62cPG/P+IfaTSGY=
283-
k8s.io/client-go v0.31.7/go.mod h1:hrrMorBQ17LqzoKIxKg5cSWvmWl94EwA/MUF0Mkf+Zw=
284-
k8s.io/component-base v0.31.2 h1:Z1J1LIaC0AV+nzcPRFqfK09af6bZ4D1nAOpWsy9owlA=
285-
k8s.io/component-base v0.31.2/go.mod h1:9PeyyFN/drHjtJZMCTkSpQJS3U9OXORnHQqMLDz0sUQ=
267+
k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls=
268+
k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k=
269+
k8s.io/apiextensions-apiserver v0.32.3 h1:4D8vy+9GWerlErCwVIbcQjsWunF9SUGNu7O7hiQTyPY=
270+
k8s.io/apiextensions-apiserver v0.32.3/go.mod h1:8YwcvVRMVzw0r1Stc7XfGAzB/SIVLunqApySV5V7Dss=
271+
k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U=
272+
k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
273+
k8s.io/cli-runtime v0.32.3 h1:khLF2ivU2T6Q77H97atx3REY9tXiA3OLOjWJxUrdvss=
274+
k8s.io/cli-runtime v0.32.3/go.mod h1:vZT6dZq7mZAca53rwUfdFSZjdtLyfF61mkf/8q+Xjak=
275+
k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU=
276+
k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY=
277+
k8s.io/component-base v0.32.3 h1:98WJvvMs3QZ2LYHBzvltFSeJjEx7t5+8s71P7M74u8k=
278+
k8s.io/component-base v0.32.3/go.mod h1:LWi9cR+yPAv7cu2X9rZanTiFKB2kHA+JjmhkKjCZRpI=
286279
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
287280
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
288-
k8s.io/kube-openapi v0.0.0-20241009091222-67ed5848f094 h1:MErs8YA0abvOqJ8gIupA1Tz6PKXYUw34XsGlA7uSL1k=
289-
k8s.io/kube-openapi v0.0.0-20241009091222-67ed5848f094/go.mod h1:7ioBJr1A6igWjsR2fxq2EZ0mlMwYLejazSIc2bzMp2U=
290-
k8s.io/kubectl v0.31.2 h1:gTxbvRkMBwvTSAlobiTVqsH6S8Aa1aGyBcu5xYLsn8M=
291-
k8s.io/kubectl v0.31.2/go.mod h1:EyASYVU6PY+032RrTh5ahtSOMgoDRIux9V1JLKtG5xM=
292-
k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI=
293-
k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
294-
sigs.k8s.io/controller-runtime v0.19.7 h1:DLABZfMr20A+AwCZOHhcbcu+TqBXnJZaVBri9K3EO48=
295-
sigs.k8s.io/controller-runtime v0.19.7/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
281+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
282+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
283+
k8s.io/kubectl v0.32.3 h1:VMi584rbboso+yjfv0d8uBHwwxbC438LKq+dXd5tOAI=
284+
k8s.io/kubectl v0.32.3/go.mod h1:6Euv2aso5GKzo/UVMacV6C7miuyevpfI91SvBvV9Zdg=
285+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
286+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
287+
sigs.k8s.io/controller-runtime v0.20.4 h1:X3c+Odnxz+iPTRobG4tp092+CvBU9UK0t/bRf+n0DGU=
288+
sigs.k8s.io/controller-runtime v0.20.4/go.mod h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY=
296289
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
297290
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
298291
sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo=
299292
sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U=
300293
sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E=
301294
sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo=
302-
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
303-
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
295+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
296+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
304297
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
305298
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

hack/templates/values/values.template

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ operator:
270270
# parameter. Note that the CNI bin directory should be aligned with the CNI bin
271271
# directory in the container runtime.
272272
cniBinDirectory: /opt/cni/bin
273+
# -- Enable the use of maintenance operator upgrade logic.
274+
maintenanceOperator:
275+
useRequestor: false
276+
requestorID: "nvidia.network.operator"
277+
nodeMaintenanceNamespace: default
273278
# -- Enable the use of Driver ToolKit to compile DOCA Drivers (OpenShift only).
274279
useDTK: true
275280
admissionController:

0 commit comments

Comments
 (0)