155 lines
4.7 KiB
Smarty
155 lines
4.7 KiB
Smarty
{{/* vim: set filetype=mustache: */}}
|
|
|
|
{{/*
|
|
Return the target Kubernetes version
|
|
*/}}
|
|
{{- define "common.capabilities.kubeVersion" -}}
|
|
{{- if .Values.global }}
|
|
{{- if .Values.global.kubeVersion }}
|
|
{{- .Values.global.kubeVersion -}}
|
|
{{- else }}
|
|
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
|
|
{{- end -}}
|
|
{{- else }}
|
|
{{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for poddisruptionbudget.
|
|
*/}}
|
|
{{- define "common.capabilities.policy.apiVersion" -}}
|
|
{{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "policy/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "policy/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for networkpolicy.
|
|
*/}}
|
|
{{- define "common.capabilities.networkPolicy.apiVersion" -}}
|
|
{{- if semverCompare "<1.7-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "extensions/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "networking.k8s.io/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for cronjob.
|
|
*/}}
|
|
{{- define "common.capabilities.cronjob.apiVersion" -}}
|
|
{{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "batch/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "batch/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for deployment.
|
|
*/}}
|
|
{{- define "common.capabilities.deployment.apiVersion" -}}
|
|
{{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "extensions/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "apps/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for statefulset.
|
|
*/}}
|
|
{{- define "common.capabilities.statefulset.apiVersion" -}}
|
|
{{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "apps/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "apps/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for ingress.
|
|
*/}}
|
|
{{- define "common.capabilities.ingress.apiVersion" -}}
|
|
{{- if .Values.ingress -}}
|
|
{{- if .Values.ingress.apiVersion -}}
|
|
{{- .Values.ingress.apiVersion -}}
|
|
{{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "extensions/v1beta1" -}}
|
|
{{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "networking.k8s.io/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "networking.k8s.io/v1" -}}
|
|
{{- end }}
|
|
{{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "extensions/v1beta1" -}}
|
|
{{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "networking.k8s.io/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "networking.k8s.io/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for RBAC resources.
|
|
*/}}
|
|
{{- define "common.capabilities.rbac.apiVersion" -}}
|
|
{{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "rbac.authorization.k8s.io/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "rbac.authorization.k8s.io/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for CRDs.
|
|
*/}}
|
|
{{- define "common.capabilities.crd.apiVersion" -}}
|
|
{{- if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "apiextensions.k8s.io/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "apiextensions.k8s.io/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for APIService.
|
|
*/}}
|
|
{{- define "common.capabilities.apiService.apiVersion" -}}
|
|
{{- if semverCompare "<1.10-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "apiregistration.k8s.io/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "apiregistration.k8s.io/v1" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return the appropriate apiVersion for Horizontal Pod Autoscaler.
|
|
*/}}
|
|
{{- define "common.capabilities.hpa.apiVersion" -}}
|
|
{{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .context) -}}
|
|
{{- if .beta2 -}}
|
|
{{- print "autoscaling/v2beta2" -}}
|
|
{{- else -}}
|
|
{{- print "autoscaling/v2beta1" -}}
|
|
{{- end -}}
|
|
{{- else -}}
|
|
{{- print "autoscaling/v2" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Returns true if the used Helm version is 3.3+.
|
|
A way to check the used Helm version was not introduced until version 3.3.0 with .Capabilities.HelmVersion, which contains an additional "{}}" structure.
|
|
This check is introduced as a regexMatch instead of {{ if .Capabilities.HelmVersion }} because checking for the key HelmVersion in <3.3 results in a "interface not found" error.
|
|
**To be removed when the catalog's minimun Helm version is 3.3**
|
|
*/}}
|
|
{{- define "common.capabilities.supportsHelmVersion" -}}
|
|
{{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }}
|
|
{{- true -}}
|
|
{{- end -}}
|
|
{{- end -}}
|