github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/kafka/charts/common/templates/_capabilities.tpl (about) 1 {{/* vim: set filetype=mustache: */}} 2 3 {{/* 4 Return the target Kubernetes version 5 */}} 6 {{- define "common.capabilities.kubeVersion" -}} 7 {{- if .Values.global }} 8 {{- if .Values.global.kubeVersion }} 9 {{- .Values.global.kubeVersion -}} 10 {{- else }} 11 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} 12 {{- end -}} 13 {{- else }} 14 {{- default .Capabilities.KubeVersion.Version .Values.kubeVersion -}} 15 {{- end -}} 16 {{- end -}} 17 18 {{/* 19 Return the appropriate apiVersion for poddisruptionbudget. 20 */}} 21 {{- define "common.capabilities.policy.apiVersion" -}} 22 {{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}} 23 {{- print "policy/v1beta1" -}} 24 {{- else -}} 25 {{- print "policy/v1" -}} 26 {{- end -}} 27 {{- end -}} 28 29 {{/* 30 Return the appropriate apiVersion for networkpolicy. 31 */}} 32 {{- define "common.capabilities.networkPolicy.apiVersion" -}} 33 {{- if semverCompare "<1.7-0" (include "common.capabilities.kubeVersion" .) -}} 34 {{- print "extensions/v1beta1" -}} 35 {{- else -}} 36 {{- print "networking.k8s.io/v1" -}} 37 {{- end -}} 38 {{- end -}} 39 40 {{/* 41 Return the appropriate apiVersion for cronjob. 42 */}} 43 {{- define "common.capabilities.cronjob.apiVersion" -}} 44 {{- if semverCompare "<1.21-0" (include "common.capabilities.kubeVersion" .) -}} 45 {{- print "batch/v1beta1" -}} 46 {{- else -}} 47 {{- print "batch/v1" -}} 48 {{- end -}} 49 {{- end -}} 50 51 {{/* 52 Return the appropriate apiVersion for deployment. 53 */}} 54 {{- define "common.capabilities.deployment.apiVersion" -}} 55 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} 56 {{- print "extensions/v1beta1" -}} 57 {{- else -}} 58 {{- print "apps/v1" -}} 59 {{- end -}} 60 {{- end -}} 61 62 {{/* 63 Return the appropriate apiVersion for statefulset. 64 */}} 65 {{- define "common.capabilities.statefulset.apiVersion" -}} 66 {{- if semverCompare "<1.14-0" (include "common.capabilities.kubeVersion" .) -}} 67 {{- print "apps/v1beta1" -}} 68 {{- else -}} 69 {{- print "apps/v1" -}} 70 {{- end -}} 71 {{- end -}} 72 73 {{/* 74 Return the appropriate apiVersion for ingress. 75 */}} 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" -}} 84 {{- else -}} 85 {{- print "networking.k8s.io/v1" -}} 86 {{- end }} 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" -}} 91 {{- else -}} 92 {{- print "networking.k8s.io/v1" -}} 93 {{- end -}} 94 {{- end -}} 95 96 {{/* 97 Return the appropriate apiVersion for RBAC resources. 98 */}} 99 {{- define "common.capabilities.rbac.apiVersion" -}} 100 {{- if semverCompare "<1.17-0" (include "common.capabilities.kubeVersion" .) -}} 101 {{- print "rbac.authorization.k8s.io/v1beta1" -}} 102 {{- else -}} 103 {{- print "rbac.authorization.k8s.io/v1" -}} 104 {{- end -}} 105 {{- end -}} 106 107 {{/* 108 Return the appropriate apiVersion for CRDs. 109 */}} 110 {{- define "common.capabilities.crd.apiVersion" -}} 111 {{- if semverCompare "<1.19-0" (include "common.capabilities.kubeVersion" .) -}} 112 {{- print "apiextensions.k8s.io/v1beta1" -}} 113 {{- else -}} 114 {{- print "apiextensions.k8s.io/v1" -}} 115 {{- end -}} 116 {{- end -}} 117 118 {{/* 119 Return the appropriate apiVersion for APIService. 120 */}} 121 {{- define "common.capabilities.apiService.apiVersion" -}} 122 {{- if semverCompare "<1.10-0" (include "common.capabilities.kubeVersion" .) -}} 123 {{- print "apiregistration.k8s.io/v1beta1" -}} 124 {{- else -}} 125 {{- print "apiregistration.k8s.io/v1" -}} 126 {{- end -}} 127 {{- end -}} 128 129 {{/* 130 Return the appropriate apiVersion for Horizontal Pod Autoscaler. 131 */}} 132 {{- define "common.capabilities.hpa.apiVersion" -}} 133 {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .context) -}} 134 {{- if .beta2 -}} 135 {{- print "autoscaling/v2beta2" -}} 136 {{- else -}} 137 {{- print "autoscaling/v2beta1" -}} 138 {{- end -}} 139 {{- else -}} 140 {{- print "autoscaling/v2" -}} 141 {{- end -}} 142 {{- end -}} 143 144 {{/* 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** 149 */}} 150 {{- define "common.capabilities.supportsHelmVersion" -}} 151 {{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }} 152 {{- true -}} 153 {{- end -}} 154 {{- end -}}