1 {{/* vim: set filetype=mustache: */}}
4 Return the target Kubernetes version
6 {{- define "common.capabilities.kubeVersion" -}}
7 {{- if .Values.global }}
8 {{- if .Values.global.kubeVersion }}
9 {{- .Values.global.kubeVersion -}}
11 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
14 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
19 Return the appropriate apiVersion for poddisruptionbudget.
21 {{- define "common.capabilities.policy.apiVersion" -}}
22 {{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}}
23 {{- print "policy/v1beta1" -}}
25 {{- print "policy/v1" -}}
30 Return the appropriate apiVersion for networkpolicy.
32 {{- define "common.capabilities.networkPolicy.apiVersion" -}}
33 {{- if semverCompare "<1.7-0" (include "common.capabilities.kubeVersion" .) -}}
34 {{- print "extensions/v1beta1" -}}
36 {{- print "networking.k8s.io/v1" -}}
41 Return the appropriate apiVersion for cronjob.
43 {{- define "common.capabilities.cronjob.apiVersion" -}}
44 {{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}}
45 {{- print "batch/v1beta1" -}}
47 {{- print "batch/v1" -}}
52 Return the appropriate apiVersion for deployment.
54 {{- define "common.capabilities.deployment.apiVersion" -}}
55 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
56 {{- print "extensions/v1beta1" -}}
58 {{- print "apps/v1" -}}
63 Return the appropriate apiVersion for statefulset.
65 {{- define "common.capabilities.statefulset.apiVersion" -}}
66 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
67 {{- print "apps/v1beta1" -}}
69 {{- print "apps/v1" -}}
74 Return the appropriate apiVersion for ingress.
76 {{- define "common.capabilities.ingress.apiVersion" -}}
77 {{- if .Values.ingress -}}
78 {{- if .Values.ingress.apiVersion -}}
79 {{- .Values.ingress.apiVersion -}}
80 {{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
81 {{- print "extensions/v1beta1" -}}
82 {{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
83 {{- print "networking.k8s.io/v1beta1" -}}
85 {{- print "networking.k8s.io/v1" -}}
87 {{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
88 {{- print "extensions/v1beta1" -}}
89 {{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
90 {{- print "networking.k8s.io/v1beta1" -}}
92 {{- print "networking.k8s.io/v1" -}}
97 Return the appropriate apiVersion for RBAC resources.
99 {{- define "common.capabilities.rbac.apiVersion" -}}
100 {{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}}
101 {{- print "rbac.authorization.k8s.io/v1beta1" -}}
103 {{- print "rbac.authorization.k8s.io/v1" -}}
108 Return the appropriate apiVersion for CRDs.
110 {{- define "common.capabilities.crd.apiVersion" -}}
111 {{- if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
112 {{- print "apiextensions.k8s.io/v1beta1" -}}
114 {{- print "apiextensions.k8s.io/v1" -}}
119 Return the appropriate apiVersion for APIService.
121 {{- define "common.capabilities.apiService.apiVersion" -}}
122 {{- if semverCompare "<1.10-0" (include "common.capabilities.kubeVersion" .) -}}
123 {{- print "apiregistration.k8s.io/v1beta1" -}}
125 {{- print "apiregistration.k8s.io/v1" -}}
130 Return the appropriate apiVersion for Horizontal Pod Autoscaler.
132 {{- define "common.capabilities.hpa.apiVersion" -}}
133 {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .context) -}}
135 {{- print "autoscaling/v2beta2" -}}
137 {{- print "autoscaling/v2beta1" -}}
140 {{- print "autoscaling/v2" -}}
145 Returns true if the used Helm version is 3.3+.
146 A way to check the used Helm version was not introduced until version 3.3.0 with .Capabilities.HelmVersion, which contains an additional "{}}" structure.
147 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.
148 **To be removed when the catalog's minimun Helm version is 3.3**
150 {{- define "common.capabilities.supportsHelmVersion" -}}
151 {{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }}