3 SPDX-License-Identifier: APACHE-2.0
6 {{/* vim: set filetype=mustache: */}}
9 Return the target Kubernetes version
11 {{- define "common.capabilities.kubeVersion" -}}
12 {{- if .Values.global }}
13 {{- if .Values.global.kubeVersion }}
14 {{- .Values.global.kubeVersion -}}
16 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
19 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}}
24 Return the appropriate apiVersion for poddisruptionbudget.
26 {{- define "common.capabilities.policy.apiVersion" -}}
27 {{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}}
28 {{- print "policy/v1beta1" -}}
30 {{- print "policy/v1" -}}
35 Return the appropriate apiVersion for networkpolicy.
37 {{- define "common.capabilities.networkPolicy.apiVersion" -}}
38 {{- if semverCompare "<1.7-0" (include "common.capabilities.kubeVersion" .) -}}
39 {{- print "extensions/v1beta1" -}}
41 {{- print "networking.k8s.io/v1" -}}
46 Return the appropriate apiVersion for cronjob.
48 {{- define "common.capabilities.cronjob.apiVersion" -}}
49 {{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}}
50 {{- print "batch/v1beta1" -}}
52 {{- print "batch/v1" -}}
57 Return the appropriate apiVersion for daemonset.
59 {{- define "common.capabilities.daemonset.apiVersion" -}}
60 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
61 {{- print "extensions/v1beta1" -}}
63 {{- print "apps/v1" -}}
68 Return the appropriate apiVersion for deployment.
70 {{- define "common.capabilities.deployment.apiVersion" -}}
71 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
72 {{- print "extensions/v1beta1" -}}
74 {{- print "apps/v1" -}}
79 Return the appropriate apiVersion for statefulset.
81 {{- define "common.capabilities.statefulset.apiVersion" -}}
82 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
83 {{- print "apps/v1beta1" -}}
85 {{- print "apps/v1" -}}
90 Return the appropriate apiVersion for ingress.
92 {{- define "common.capabilities.ingress.apiVersion" -}}
93 {{- if .Values.ingress -}}
94 {{- if .Values.ingress.apiVersion -}}
95 {{- .Values.ingress.apiVersion -}}
96 {{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
97 {{- print "extensions/v1beta1" -}}
98 {{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
99 {{- print "networking.k8s.io/v1beta1" -}}
101 {{- print "networking.k8s.io/v1" -}}
103 {{- else if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}}
104 {{- print "extensions/v1beta1" -}}
105 {{- else if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
106 {{- print "networking.k8s.io/v1beta1" -}}
108 {{- print "networking.k8s.io/v1" -}}
113 Return the appropriate apiVersion for RBAC resources.
115 {{- define "common.capabilities.rbac.apiVersion" -}}
116 {{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}}
117 {{- print "rbac.authorization.k8s.io/v1beta1" -}}
119 {{- print "rbac.authorization.k8s.io/v1" -}}
124 Return the appropriate apiVersion for CRDs.
126 {{- define "common.capabilities.crd.apiVersion" -}}
127 {{- if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}}
128 {{- print "apiextensions.k8s.io/v1beta1" -}}
130 {{- print "apiextensions.k8s.io/v1" -}}
135 Return the appropriate apiVersion for APIService.
137 {{- define "common.capabilities.apiService.apiVersion" -}}
138 {{- if semverCompare "<1.10-0" (include "common.capabilities.kubeVersion" .) -}}
139 {{- print "apiregistration.k8s.io/v1beta1" -}}
141 {{- print "apiregistration.k8s.io/v1" -}}
146 Return the appropriate apiVersion for Horizontal Pod Autoscaler.
148 {{- define "common.capabilities.hpa.apiVersion" -}}
149 {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .context) -}}
151 {{- print "autoscaling/v2beta2" -}}
153 {{- print "autoscaling/v2beta1" -}}
156 {{- print "autoscaling/v2" -}}
161 Return the appropriate apiVersion for Vertical Pod Autoscaler.
163 {{- define "common.capabilities.vpa.apiVersion" -}}
164 {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .context) -}}
166 {{- print "autoscaling/v2beta2" -}}
168 {{- print "autoscaling/v2beta1" -}}
171 {{- print "autoscaling/v2" -}}
176 Returns true if PodSecurityPolicy is supported
178 {{- define "common.capabilities.psp.supported" -}}
179 {{- if semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .) -}}
185 Returns true if AdmissionConfiguration is supported
187 {{- define "common.capabilities.admissionConfiguration.supported" -}}
188 {{- if semverCompare ">=1.23-0" (include "common.capabilities.kubeVersion" .) -}}
194 Return the appropriate apiVersion for AdmissionConfiguration.
196 {{- define "common.capabilities.admissionConfiguration.apiVersion" -}}
197 {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) -}}
198 {{- print "apiserver.config.k8s.io/v1alpha1" -}}
199 {{- else if semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .) -}}
200 {{- print "apiserver.config.k8s.io/v1beta1" -}}
202 {{- print "apiserver.config.k8s.io/v1" -}}
207 Return the appropriate apiVersion for PodSecurityConfiguration.
209 {{- define "common.capabilities.podSecurityConfiguration.apiVersion" -}}
210 {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) -}}
211 {{- print "pod-security.admission.config.k8s.io/v1alpha1" -}}
212 {{- else if semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .) -}}
213 {{- print "pod-security.admission.config.k8s.io/v1beta1" -}}
215 {{- print "pod-security.admission.config.k8s.io/v1" -}}
220 Returns true if the used Helm version is 3.3+.
221 A way to check the used Helm version was not introduced until version 3.3.0 with .Capabilities.HelmVersion, which contains an additional "{}}" structure.
222 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.
223 **To be removed when the catalog's minimun Helm version is 3.3**
225 {{- define "common.capabilities.supportsHelmVersion" -}}
226 {{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }}