Skip to content

Commit 8e1c965

Browse files
committed
Add support for optional node selector labels for kube-ovn OVS/OVN pods
This change introduces a new Helm value ovsNodesLabels that allows adding custom node selector labels to ovs-ovn pods. For example: ovsNodesLabels: kube-ovn/role: ovs This is useful in environments such as OpenStack-Helm, where operators may want to schedule OVS/OVN pods only on specific nodes (e.g., compute nodes) instead of deploying them cluster-wide. When ovsNodesLabels is empty, only the default selector kubernetes.io/os: linux is applied. Signed-off-by: Saeed Padari <sam137115@gmail.com>
1 parent 49aa35d commit 8e1c965

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

charts/kube-ovn-v2/templates/agent/agent-daemonset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ spec:
231231
{{- end }}
232232
nodeSelector:
233233
kubernetes.io/os: "linux"
234+
{{ .Values.ovsNodesLabels | toYaml | nindent 8 }}
234235
volumes:
235236
- name: usr-local-sbin
236237
emptyDir: {}

charts/kube-ovn-v2/templates/ovs-ovn/ovs-ovn-daemonset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ spec:
180180
{{- end }}
181181
nodeSelector:
182182
kubernetes.io/os: "linux"
183+
{{ .Values.ovsNodesLabels | toYaml | nindent 8 }}
183184
volumes:
184185
- name: usr-local-sbin
185186
emptyDir: {}

charts/kube-ovn-v2/templates/pinger/pinger-daemonset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ spec:
156156
periodSeconds: 10
157157
nodeSelector:
158158
kubernetes.io/os: "linux"
159+
{{ .Values.ovsNodesLabels | toYaml | nindent 8 }}
159160
volumes:
160161
- name: host-run-ovs
161162
hostPath:

charts/kube-ovn-v2/values.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ masterNodesLabels:
4747
kube-ovn/role: master
4848
# node-role.kubernetes.io/control-plane: ""
4949

50+
# -- Label used to auto-identify ovs node.
51+
# Any node that has any of these labels will be considered a ovs node.
52+
# Note: This feature uses Helm "lookup" function, which is not compatible with tools such as ArgoCD.
53+
# @section -- Global parameters
54+
ovsNodesLabels: []
55+
# kube-ovn/role: ovs
56+
5057
# -- General configuration of the network created by Kube-OVN.
5158
# @section -- Network parameters of the CNI
5259
# @default -- "{}"

0 commit comments

Comments
 (0)