From 9eb8e69382a38781a54b51fc0b1701bc9e68a67d Mon Sep 17 00:00:00 2001 From: Nikita Korolev Date: Thu, 17 Jul 2025 14:42:20 +0300 Subject: [PATCH 1/3] chore(core): virt-operator placement Signed-off-by: Nikita Korolev add custom template Signed-off-by: Nikita Korolev move virt_helper_node_selector to templates Signed-off-by: Nikita Korolev tst tmpl 1 Signed-off-by: Nikita Korolev move tmpl Signed-off-by: Nikita Korolev work Signed-off-by: Nikita Korolev ++ Signed-off-by: Nikita Korolev format tmpl Signed-off-by: Nikita Korolev --- templates/kubevirt/virt-operator/_helpers.tpl | 21 +++++++++++++++++++ .../kubevirt/virt-operator/deployment.yaml | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 templates/kubevirt/virt-operator/_helpers.tpl diff --git a/templates/kubevirt/virt-operator/_helpers.tpl b/templates/kubevirt/virt-operator/_helpers.tpl new file mode 100644 index 0000000000..dcea006c8f --- /dev/null +++ b/templates/kubevirt/virt-operator/_helpers.tpl @@ -0,0 +1,21 @@ +{{- /* Returns node selector for workloads depend on strategy. */ -}} +{{- define "virt_helper_node_selector" }} +{{- $context := index . 0 }} {{- /* Template context with .Values, .Chart, etc */ -}} +{{- $strategy := index . 1 | include "helm_lib_internal_check_node_selector_strategy" }} {{- /* strategy, one of "system" "master" */ -}} +{{- $module_values := dict }} +{{- if lt (len .) 3 }} +{{- $module_values = (index $context.Values (include "helm_lib_module_camelcase_name" $context)) }} +{{- else }} +{{- $module_values = index . 2 }} +{{- end }} + +{{- if eq $strategy "system" }} +{{- if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "system" | int) 0 }} +nodeSelector: + node-role.deckhouse.io/system: "" +{{- else if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "master" | int) 0 }} +nodeSelector: + node-role.deckhouse.io/control-plane: "" +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/templates/kubevirt/virt-operator/deployment.yaml b/templates/kubevirt/virt-operator/deployment.yaml index 35f93318bd..c87a8cb52e 100644 --- a/templates/kubevirt/virt-operator/deployment.yaml +++ b/templates/kubevirt/virt-operator/deployment.yaml @@ -150,7 +150,7 @@ spec: name: profile-data {{- include "kube_api_rewriter.kubeconfig_volume_mount" . | nindent 8 }} {{- include "helm_lib_priority_class" (tuple . $priorityClassName) | nindent 6 }} - {{- include "helm_lib_node_selector" (tuple . "master") | nindent 6 }} + {{- include "virt_helper_node_selector" (tuple . "system") | nindent 6 }} {{- include "helm_lib_tolerations" (tuple . "any-node") | nindent 6 }} {{- include "helm_lib_module_pod_security_context_run_as_user_deckhouse" . | nindent 6 }} serviceAccountName: kubevirt-operator From 89e0183b38117c008e4b42d20fb8976b468050e3 Mon Sep 17 00:00:00 2001 From: Nikita Korolev Date: Mon, 21 Jul 2025 13:29:14 +0300 Subject: [PATCH 2/3] move tmpl to root tmpl helpers, fix template Signed-off-by: Nikita Korolev fix virt tmpl Signed-off-by: Nikita Korolev fix tmplate Signed-off-by: Nikita Korolev fix template Signed-off-by: Nikita Korolev --- templates/_helpers.tpl | 15 +++++++++++++ templates/kubevirt/virt-operator/_helpers.tpl | 21 ------------------- 2 files changed, 15 insertions(+), 21 deletions(-) delete mode 100644 templates/kubevirt/virt-operator/_helpers.tpl diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl index 309e6578d7..55941b5e91 100644 --- a/templates/_helpers.tpl +++ b/templates/_helpers.tpl @@ -38,3 +38,18 @@ spec: maxSurge: 0 maxUnavailable: 1 {{- end -}} + +{{- /* Returns node selector for workloads depend on strategy. (Returns only system or control-plane node selector) */ -}} +{{- define "virt_helper_node_selector" }} +{{- $context := index . 0 }} {{- /* Template context with .Values, .Chart, etc */ -}} +{{- $strategy := index . 1 | include "helm_lib_internal_check_node_selector_strategy" }} {{- /* check strategy, one of "frontend" "monitoring" "system" "master" "any-node" "wildcard" */ -}} +{{- if eq $strategy "system" }} +{{- if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "system" | int) 0 }} +nodeSelector: + node-role.deckhouse.io/system: "" +{{- else }} +nodeSelector: + node-role.kubernetes.io/control-plane: "" +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/templates/kubevirt/virt-operator/_helpers.tpl b/templates/kubevirt/virt-operator/_helpers.tpl deleted file mode 100644 index dcea006c8f..0000000000 --- a/templates/kubevirt/virt-operator/_helpers.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{{- /* Returns node selector for workloads depend on strategy. */ -}} -{{- define "virt_helper_node_selector" }} -{{- $context := index . 0 }} {{- /* Template context with .Values, .Chart, etc */ -}} -{{- $strategy := index . 1 | include "helm_lib_internal_check_node_selector_strategy" }} {{- /* strategy, one of "system" "master" */ -}} -{{- $module_values := dict }} -{{- if lt (len .) 3 }} -{{- $module_values = (index $context.Values (include "helm_lib_module_camelcase_name" $context)) }} -{{- else }} -{{- $module_values = index . 2 }} -{{- end }} - -{{- if eq $strategy "system" }} -{{- if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "system" | int) 0 }} -nodeSelector: - node-role.deckhouse.io/system: "" -{{- else if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "master" | int) 0 }} -nodeSelector: - node-role.deckhouse.io/control-plane: "" -{{- end }} -{{- end }} -{{- end }} \ No newline at end of file From c802dc57a8f5773fdf5c5c9ffdcb451e370a2fa2 Mon Sep 17 00:00:00 2001 From: Nikita Korolev Date: Tue, 22 Jul 2025 16:34:06 +0300 Subject: [PATCH 3/3] refactor template Signed-off-by: Nikita Korolev --- templates/_helpers.tpl | 11 ++++------- templates/kubevirt/virt-operator/deployment.yaml | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl index 55941b5e91..9c286a874c 100644 --- a/templates/_helpers.tpl +++ b/templates/_helpers.tpl @@ -39,17 +39,14 @@ spec: maxUnavailable: 1 {{- end -}} -{{- /* Returns node selector for workloads depend on strategy. (Returns only system or control-plane node selector) */ -}} -{{- define "virt_helper_node_selector" }} +{{- /* Returns node selector for workloads, only system or control-plane */ -}} +{{- define "virt_helper_system_master_node_selector" }} {{- $context := index . 0 }} {{- /* Template context with .Values, .Chart, etc */ -}} -{{- $strategy := index . 1 | include "helm_lib_internal_check_node_selector_strategy" }} {{- /* check strategy, one of "frontend" "monitoring" "system" "master" "any-node" "wildcard" */ -}} -{{- if eq $strategy "system" }} -{{- if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "system" | int) 0 }} +{{- if gt (index $context.Values.global.discovery.d8SpecificNodeCountByRole "system" | int) 0 }} nodeSelector: node-role.deckhouse.io/system: "" -{{- else }} +{{- else }} nodeSelector: node-role.kubernetes.io/control-plane: "" -{{- end }} {{- end }} {{- end }} \ No newline at end of file diff --git a/templates/kubevirt/virt-operator/deployment.yaml b/templates/kubevirt/virt-operator/deployment.yaml index c87a8cb52e..579d0cbc54 100644 --- a/templates/kubevirt/virt-operator/deployment.yaml +++ b/templates/kubevirt/virt-operator/deployment.yaml @@ -150,7 +150,7 @@ spec: name: profile-data {{- include "kube_api_rewriter.kubeconfig_volume_mount" . | nindent 8 }} {{- include "helm_lib_priority_class" (tuple . $priorityClassName) | nindent 6 }} - {{- include "virt_helper_node_selector" (tuple . "system") | nindent 6 }} + {{- include "virt_helper_system_master_node_selector" (tuple . ) | nindent 6 }} {{- include "helm_lib_tolerations" (tuple . "any-node") | nindent 6 }} {{- include "helm_lib_module_pod_security_context_run_as_user_deckhouse" . | nindent 6 }} serviceAccountName: kubevirt-operator