{{/* 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 -}}