chart: support Rancher deployed Windows Cluster

Longhorn-4262

Signed-off-by: Chin-Ya Huang <chin-ya.huang@suse.com>
This commit is contained in:
c3y1huang 2022-07-22 18:44:56 +08:00 committed by David Ko
parent 0ed376c4cc
commit c9161b9ca7
9 changed files with 109 additions and 19 deletions

View File

@ -621,3 +621,9 @@ WARNING:
label: Pod Security Policy label: Pod Security Policy
type: boolean type: boolean
group: "Other Settings" group: "Other Settings"
- variable: global.cattle.windowsCluster.enabled
default: "false"
description: "Enable this to allow Longhorn to run on the Rancher deployed Windows cluster."
label: Rancher Windows Cluster
type: boolean
group: "Other Settings"

View File

@ -82,15 +82,25 @@ spec:
- name: {{ .Values.privateRegistry.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.priorityClass }} {{- if .Values.longhornManager.priorityClass }}
priorityClassName: {{ .Values.longhornManager.priorityClass | quote}} priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.tolerations }} {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
tolerations: tolerations:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
{{- end }}
{{- if .Values.longhornManager.tolerations }}
{{ toYaml .Values.longhornManager.tolerations | indent 6 }} {{ toYaml .Values.longhornManager.tolerations | indent 6 }}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.nodeSelector }} {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
nodeSelector: nodeSelector:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.longhornManager.nodeSelector }}
{{ toYaml .Values.longhornManager.nodeSelector | indent 8 }} {{ toYaml .Values.longhornManager.nodeSelector | indent 8 }}
{{- end }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account
updateStrategy: updateStrategy:

View File

@ -20,8 +20,26 @@ data:
{{ if not (kindIs "invalid" .Values.defaultSettings.defaultDataLocality) }}default-data-locality: {{ .Values.defaultSettings.defaultDataLocality }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.defaultDataLocality) }}default-data-locality: {{ .Values.defaultSettings.defaultDataLocality }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.defaultLonghornStaticStorageClass) }}default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.defaultLonghornStaticStorageClass) }}default-longhorn-static-storage-class: {{ .Values.defaultSettings.defaultLonghornStaticStorageClass }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.backupstorePollInterval) }}backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.backupstorePollInterval) }}backupstore-poll-interval: {{ .Values.defaultSettings.backupstorePollInterval }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.taintToleration) }}taint-toleration: {{ .Values.defaultSettings.taintToleration }}{{ end }} {{- if or (not (kindIs "invalid" .Values.defaultSettings.taintToleration)) (not (kindIs "invalid" .Values.global.cattle.windowsCluster.enabled)) }}
{{ if not (kindIs "invalid" .Values.defaultSettings.systemManagedComponentsNodeSelector) }}system-managed-components-node-selector: {{ .Values.defaultSettings.systemManagedComponentsNodeSelector }}{{ end }} taint-toleration: {{ $windowsDefaultSettingTaintToleration := list }}{{ $defaultSettingTaintToleration := list -}}
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.defaultSetting.taintToleration -}}
{{- $windowsDefaultSettingTaintToleration = .Values.global.cattle.windowsCluster.defaultSetting.taintToleration -}}
{{- end -}}
{{- if not (kindIs "invalid" .Values.defaultSettings.taintToleration) -}}
{{- $defaultSettingTaintToleration = .Values.defaultSettings.taintToleration -}}
{{- end -}}
{{- $taintToleration := list $windowsDefaultSettingTaintToleration $defaultSettingTaintToleration }}{{ join ";" (compact $taintToleration) -}}
{{- end }}
{{- if or (not (kindIs "invalid" .Values.defaultSettings.systemManagedComponentsNodeSelector)) (not (kindIs "invalid" .Values.global.cattle.windowsCluster.enabled)) }}
system-managed-components-node-selector: {{ $windowsDefaultSettingNodeSelector := list }}{{ $defaultSettingNodeSelector := list -}}
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.defaultSetting.systemManagedComponentsNodeSelector -}}
{{ $windowsDefaultSettingNodeSelector = .Values.global.cattle.windowsCluster.defaultSetting.systemManagedComponentsNodeSelector -}}
{{- end -}}
{{- if not (kindIs "invalid" .Values.defaultSettings.systemManagedComponentsNodeSelector) -}}
{{- $defaultSettingNodeSelector = .Values.defaultSettings.systemManagedComponentsNodeSelector -}}
{{- end -}}
{{- $nodeSelector := list $windowsDefaultSettingNodeSelector $defaultSettingNodeSelector }}{{ join ";" (compact $nodeSelector) -}}
{{- end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.priorityClass) }}priority-class: {{ .Values.defaultSettings.priorityClass }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.priorityClass) }}priority-class: {{ .Values.defaultSettings.priorityClass }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.autoSalvage) }}auto-salvage: {{ .Values.defaultSettings.autoSalvage }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.autoSalvage) }}auto-salvage: {{ .Values.defaultSettings.autoSalvage }}{{ end }}
{{ if not (kindIs "invalid" .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly) }}auto-delete-pod-when-volume-detached-unexpectedly: {{ .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly }}{{ end }} {{ if not (kindIs "invalid" .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly) }}auto-delete-pod-when-volume-detached-unexpectedly: {{ .Values.defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly }}{{ end }}

View File

@ -89,15 +89,25 @@ spec:
- name: {{ .Values.privateRegistry.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
{{- if .Values.longhornDriver.priorityClass }} {{- if .Values.longhornDriver.priorityClass }}
priorityClassName: {{ .Values.longhornDriver.priorityClass | quote}} priorityClassName: {{ .Values.longhornDriver.priorityClass | quote }}
{{- end }} {{- end }}
{{- if .Values.longhornDriver.tolerations }} {{- if or .Values.longhornDriver.tolerations .Values.global.cattle.windowsCluster.enabled }}
tolerations: tolerations:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
{{- end }}
{{- if .Values.longhornDriver.tolerations }}
{{ toYaml .Values.longhornDriver.tolerations | indent 6 }} {{ toYaml .Values.longhornDriver.tolerations | indent 6 }}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.longhornDriver.nodeSelector }} {{- if or .Values.longhornDriver.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
nodeSelector: nodeSelector:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.longhornDriver.nodeSelector }}
{{ toYaml .Values.longhornDriver.nodeSelector | indent 8 }} {{ toYaml .Values.longhornDriver.nodeSelector | indent 8 }}
{{- end }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account
securityContext: securityContext:

View File

@ -44,15 +44,25 @@ spec:
- name: {{ .Values.privateRegistry.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
{{- if .Values.longhornUI.priorityClass }} {{- if .Values.longhornUI.priorityClass }}
priorityClassName: {{ .Values.longhornUI.priorityClass | quote}} priorityClassName: {{ .Values.longhornUI.priorityClass | quote }}
{{- end }} {{- end }}
{{- if .Values.longhornUI.tolerations }} {{- if or .Values.longhornUI.tolerations .Values.global.cattle.windowsCluster.enabled }}
tolerations: tolerations:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
{{- end }}
{{- if .Values.longhornUI.tolerations }}
{{ toYaml .Values.longhornUI.tolerations | indent 6 }} {{ toYaml .Values.longhornUI.tolerations | indent 6 }}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.longhornUI.nodeSelector }} {{- if or .Values.longhornUI.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
nodeSelector: nodeSelector:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.longhornUI.nodeSelector }}
{{ toYaml .Values.longhornUI.nodeSelector | indent 8 }} {{ toYaml .Values.longhornUI.nodeSelector | indent 8 }}
{{- end }}
{{- end }} {{- end }}
--- ---
kind: Service kind: Service

View File

@ -35,14 +35,24 @@ spec:
- name: {{ .Values.privateRegistry.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.priorityClass }} {{- if .Values.longhornManager.priorityClass }}
priorityClassName: {{ .Values.longhornManager.priorityClass | quote}} priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account
{{- if .Values.longhornManager.tolerations }} {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
tolerations: tolerations:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
{{- end }}
{{- if .Values.longhornManager.tolerations }}
{{ toYaml .Values.longhornManager.tolerations | indent 6 }} {{ toYaml .Values.longhornManager.tolerations | indent 6 }}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.nodeSelector }} {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
nodeSelector: nodeSelector:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.longhornManager.nodeSelector }}
{{ toYaml .Values.longhornManager.nodeSelector | indent 8 }} {{ toYaml .Values.longhornManager.nodeSelector | indent 8 }}
{{- end }}
{{- end }} {{- end }}

View File

@ -21,10 +21,10 @@ data:
staleReplicaTimeout: "30" staleReplicaTimeout: "30"
fromBackup: "" fromBackup: ""
{{- if .Values.persistence.defaultFsType }} {{- if .Values.persistence.defaultFsType }}
fsType: "{{.Values.persistence.defaultFsType}}" fsType: "{{ .Values.persistence.defaultFsType }}"
{{- end }} {{- end }}
{{- if .Values.persistence.migratable }} {{- if .Values.persistence.migratable }}
migratable: "{{.Values.persistence.migratable}}" migratable: "{{ .Values.persistence.migratable }}"
{{- end }} {{- end }}
{{- if .Values.persistence.backingImage.enable }} {{- if .Values.persistence.backingImage.enable }}
backingImage: {{ .Values.persistence.backingImage.name }} backingImage: {{ .Values.persistence.backingImage.name }}

View File

@ -36,14 +36,24 @@ spec:
- name: {{ .Values.privateRegistry.registrySecret }} - name: {{ .Values.privateRegistry.registrySecret }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.priorityClass }} {{- if .Values.longhornManager.priorityClass }}
priorityClassName: {{ .Values.longhornManager.priorityClass | quote}} priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
{{- end }} {{- end }}
serviceAccountName: longhorn-service-account serviceAccountName: longhorn-service-account
{{- if .Values.longhornManager.tolerations }} {{- if or .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
tolerations: tolerations:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
{{- end }}
{{- if .Values.longhornManager.tolerations }}
{{ toYaml .Values.longhornManager.tolerations | indent 6 }} {{ toYaml .Values.longhornManager.tolerations | indent 6 }}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.longhornManager.nodeSelector }} {{- if or .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
nodeSelector: nodeSelector:
{{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
{{- end }}
{{- if or .Values.longhornManager.nodeSelector }}
{{ toYaml .Values.longhornManager.nodeSelector | indent 8 }} {{ toYaml .Values.longhornManager.nodeSelector | indent 8 }}
{{- end }}
{{- end }} {{- end }}

View File

@ -4,6 +4,22 @@
global: global:
cattle: cattle:
systemDefaultRegistry: "" systemDefaultRegistry: ""
windowsCluster:
# Enable this to allow Longhorn to run on the Rancher deployed Windows cluster
enabled: false
# Tolerate Linux node taint
tolerations:
- key: "cattle.io/os"
value: "linux"
effect: "NoSchedule"
operator: "Equal"
# Select Linux nodes
nodeSelector:
kubernetes.io/os: "linux"
# Recognize toleration and node selector for Longhorn run-time created components
defaultSetting:
taintToleration: cattle.io/os=linux:NoSchedule
systemManagedComponentsNodeSelector: kubernetes.io/os:linux
image: image:
longhorn: longhorn: