add an example library
This commit is contained in:
		
							
								
								
									
										23
									
								
								library/common/.helmignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								library/common/.helmignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| # Patterns to ignore when building packages. | ||||
| # This supports shell glob matching, relative path matching, and | ||||
| # negation (prefixed with !). Only one pattern per line. | ||||
| .DS_Store | ||||
| # Common VCS dirs | ||||
| .git/ | ||||
| .gitignore | ||||
| .bzr/ | ||||
| .bzrignore | ||||
| .hg/ | ||||
| .hgignore | ||||
| .svn/ | ||||
| # Common backup files | ||||
| *.swp | ||||
| *.bak | ||||
| *.tmp | ||||
| *.orig | ||||
| *~ | ||||
| # Various IDEs | ||||
| .project | ||||
| .idea/ | ||||
| *.tmproj | ||||
| .vscode/ | ||||
							
								
								
									
										26
									
								
								library/common/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								library/common/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| apiVersion: v2 | ||||
| kubeVersion: ">=1.16.0-0" | ||||
| name: common | ||||
| version: 3.5.5 | ||||
| # upstream_version: | ||||
| appVersion: none | ||||
| description: Function library for TrueCharts | ||||
| type: library | ||||
| deprecated: false | ||||
| home: https://github.com/truecharts/apps/tree/master/common | ||||
| icon: https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png | ||||
| keywords: | ||||
|   - truecharts | ||||
|   - library-chart | ||||
|   - common | ||||
| sources: | ||||
|   - https://github.com/truecharts/apps/tree/master/library/common | ||||
| # dependencies: | ||||
| maintainers: | ||||
|   - name: TrueCharts | ||||
|     email: info@truecharts.org | ||||
|     url: truecharts.org | ||||
|   - name: Ornias1993 | ||||
|     email: kjeld@schouten-lebbing.nl | ||||
|     url: truecharts.org | ||||
| # annotations: | ||||
							
								
								
									
										151
									
								
								library/common/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								library/common/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,151 @@ | ||||
| # common | ||||
|  | ||||
|   | ||||
|  | ||||
| Function library for TrueCharts | ||||
|  | ||||
| **Homepage:** <https://github.com/truecharts/apps/tree/master/common> | ||||
|  | ||||
| ## Maintainers | ||||
|  | ||||
| | Name | Email | Url | | ||||
| | ---- | ------ | --- | | ||||
| | truecharts |  |  | | ||||
|  | ||||
| ## Requirements | ||||
|  | ||||
| Kubernetes: `>=1.16.0-0` | ||||
|  | ||||
| ## Values | ||||
|  | ||||
| | Key | Type | Default | Description | | ||||
| |-----|------|---------|-------------| | ||||
| | PGID | int | `568` |  | | ||||
| | PUID | int | `568` |  | | ||||
| | UMASK | string | `"002"` |  | | ||||
| | additionalContainers | list | `[]` |  | | ||||
| | additionalVolumeMounts | list | `[]` |  | | ||||
| | additionalVolumes | list | `[]` |  | | ||||
| | addons.codeserver.args[0] | string | `"--auth"` |  | | ||||
| | addons.codeserver.args[1] | string | `"none"` |  | | ||||
| | addons.codeserver.enabled | bool | `false` |  | | ||||
| | addons.codeserver.env | object | `{}` |  | | ||||
| | addons.codeserver.image.pullPolicy | string | `"IfNotPresent"` |  | | ||||
| | addons.codeserver.image.repository | string | `"codercom/code-server"` |  | | ||||
| | addons.codeserver.image.tag | string | `"3.7.4"` |  | | ||||
| | addons.codeserver.ingress.annotations | object | `{}` |  | | ||||
| | addons.codeserver.ingress.enabled | bool | `false` |  | | ||||
| | addons.codeserver.ingress.hosts[0].host | string | `"code.chart-example.local"` |  | | ||||
| | addons.codeserver.ingress.hosts[0].paths[0].path | string | `"/"` |  | | ||||
| | addons.codeserver.ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  | | ||||
| | addons.codeserver.ingress.labels | object | `{}` |  | | ||||
| | addons.codeserver.ingress.nameSuffix | string | `"codeserver"` |  | | ||||
| | addons.codeserver.ingress.tls | list | `[]` |  | | ||||
| | addons.codeserver.securityContext.runAsUser | int | `0` |  | | ||||
| | addons.codeserver.service.annotations | object | `{}` |  | | ||||
| | addons.codeserver.service.enabled | bool | `true` |  | | ||||
| | addons.codeserver.service.labels | object | `{}` |  | | ||||
| | addons.codeserver.service.port.name | string | `"codeserver"` |  | | ||||
| | addons.codeserver.service.port.port | int | `12321` |  | | ||||
| | addons.codeserver.service.port.protocol | string | `"TCP"` |  | | ||||
| | addons.codeserver.service.port.targetPort | string | `"codeserver"` |  | | ||||
| | addons.codeserver.service.type | string | `"ClusterIP"` |  | | ||||
| | addons.codeserver.volumeMounts | list | `[]` |  | | ||||
| | addons.codeserver.workingDir | string | `""` |  | | ||||
| | addons.vpn.additionalVolumeMounts | list | `[]` |  | | ||||
| | addons.vpn.configFile | string | `nil` |  | | ||||
| | addons.vpn.enabled | bool | `false` |  | | ||||
| | addons.vpn.env | object | `{}` |  | | ||||
| | addons.vpn.livenessProbe | object | `{}` |  | | ||||
| | addons.vpn.networkPolicy.egress | string | `nil` |  | | ||||
| | addons.vpn.networkPolicy.enabled | bool | `false` |  | | ||||
| | addons.vpn.openvpn.auth | string | `nil` |  | | ||||
| | addons.vpn.openvpn.authSecret | string | `nil` |  | | ||||
| | addons.vpn.openvpn.image.pullPolicy | string | `"IfNotPresent"` |  | | ||||
| | addons.vpn.openvpn.image.repository | string | `"dperson/openvpn-client"` |  | | ||||
| | addons.vpn.openvpn.image.tag | string | `"latest"` |  | | ||||
| | addons.vpn.scripts.down | string | `nil` |  | | ||||
| | addons.vpn.scripts.up | string | `nil` |  | | ||||
| | addons.vpn.securityContext.capabilities.add[0] | string | `"NET_ADMIN"` |  | | ||||
| | addons.vpn.securityContext.capabilities.add[1] | string | `"SYS_MODULE"` |  | | ||||
| | addons.vpn.type | string | `"openvpn"` |  | | ||||
| | addons.vpn.wireguard.image.pullPolicy | string | `"IfNotPresent"` |  | | ||||
| | addons.vpn.wireguard.image.repository | string | `"k8sathome/wireguard"` |  | | ||||
| | addons.vpn.wireguard.image.tag | string | `"1.0.20200827"` |  | | ||||
| | affinity | object | `{}` |  | | ||||
| | args | list | `[]` |  | | ||||
| | command | list | `[]` |  | | ||||
| | controllerAnnotations | object | `{}` |  | | ||||
| | controllerLabels | object | `{}` |  | | ||||
| | controllerType | string | `"deployment"` |  | | ||||
| | dnsPolicy | string | `"ClusterFirst"` |  | | ||||
| | enableServiceLinks | bool | `true` |  | | ||||
| | env | object | `{}` |  | | ||||
| | envFrom | list | `[]` |  | | ||||
| | envTpl | object | `{}` |  | | ||||
| | envValueFrom | object | `{}` |  | | ||||
| | fixMountPermissions | bool | `true` |  | | ||||
| | fullnameOverride | string | `""` |  | | ||||
| | hostAliases | list | `[]` |  | | ||||
| | hostNetwork | bool | `false` |  | | ||||
| | ingress.additionalIngresses | list | `[]` |  | | ||||
| | ingress.annotations | object | `{}` |  | | ||||
| | ingress.enabled | bool | `false` |  | | ||||
| | ingress.hosts[0].host | string | `"chart-example.local"` |  | | ||||
| | ingress.hosts[0].paths[0].path | string | `"/"` |  | | ||||
| | ingress.hosts[0].paths[0].pathType | string | `"Prefix"` |  | | ||||
| | ingress.labels | object | `{}` |  | | ||||
| | ingress.tls | list | `[]` |  | | ||||
| | initContainers | list | `[]` |  | | ||||
| | nameOverride | string | `""` |  | | ||||
| | nodeSelector | object | `{}` |  | | ||||
| | persistence.config.accessMode | string | `"ReadWriteOnce"` |  | | ||||
| | persistence.config.enabled | bool | `false` |  | | ||||
| | persistence.config.mountPath | string | `"/config"` |  | | ||||
| | persistence.config.size | string | `"1Gi"` |  | | ||||
| | persistence.config.skipuninstall | bool | `false` |  | | ||||
| | persistence.shared.emptyDir | bool | `true` |  | | ||||
| | persistence.shared.enabled | bool | `false` |  | | ||||
| | persistence.shared.mountPath | string | `"/shared"` |  | | ||||
| | podAnnotations | object | `{}` |  | | ||||
| | podSecurityContext | object | `{}` |  | | ||||
| | probes.liveness.custom | bool | `false` |  | | ||||
| | probes.liveness.enabled | bool | `true` |  | | ||||
| | probes.liveness.spec.failureThreshold | int | `5` |  | | ||||
| | probes.liveness.spec.initialDelaySeconds | int | `30` |  | | ||||
| | probes.liveness.spec.periodSeconds | int | `10` |  | | ||||
| | probes.liveness.spec.timeoutSeconds | int | `10` |  | | ||||
| | probes.readiness.custom | bool | `false` |  | | ||||
| | probes.readiness.enabled | bool | `true` |  | | ||||
| | probes.readiness.spec.failureThreshold | int | `5` |  | | ||||
| | probes.readiness.spec.initialDelaySeconds | int | `30` |  | | ||||
| | probes.readiness.spec.periodSeconds | int | `10` |  | | ||||
| | probes.readiness.spec.timeoutSeconds | int | `10` |  | | ||||
| | probes.startup.custom | bool | `false` |  | | ||||
| | probes.startup.enabled | bool | `true` |  | | ||||
| | probes.startup.spec.failureThreshold | int | `30` |  | | ||||
| | probes.startup.spec.initialDelaySeconds | int | `5` |  | | ||||
| | probes.startup.spec.periodSeconds | int | `10` |  | | ||||
| | probes.startup.spec.timeoutSeconds | int | `10` |  | | ||||
| | replicas | int | `1` |  | | ||||
| | resources | object | `{}` |  | | ||||
| | securityContext | object | `{}` |  | | ||||
| | service.additionalPorts | list | `[]` |  | | ||||
| | service.additionalServices | list | `[]` |  | | ||||
| | service.annotations | object | `{}` |  | | ||||
| | service.enabled | bool | `true` |  | | ||||
| | service.labels | object | `{}` |  | | ||||
| | service.port.name | string | `nil` |  | | ||||
| | service.port.port | string | `nil` |  | | ||||
| | service.port.protocol | string | `"TCP"` |  | | ||||
| | service.port.targetPort | string | `nil` |  | | ||||
| | service.type | string | `"ClusterIP"` |  | | ||||
| | serviceAccount.annotations | object | `{}` |  | | ||||
| | serviceAccount.create | bool | `false` |  | | ||||
| | serviceAccount.name | string | `""` |  | | ||||
| | strategy.type | string | `"RollingUpdate"` |  | | ||||
| | tolerations | list | `[]` |  | | ||||
| | volumeClaimTemplates | list | `[]` |  | | ||||
|  | ||||
| ---------------------------------------------- | ||||
| Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) | ||||
							
								
								
									
										27
									
								
								library/common/templates/_all.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								library/common/templates/_all.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| {{/* | ||||
| Main entrypoint for the common library chart. It will render all underlying templates based on the provided values. | ||||
| */}} | ||||
| {{- define "common.all" -}} | ||||
|   {{- /* Merge the local chart values and the common chart defaults */ -}} | ||||
|   {{- include "common.values.setup" . }} | ||||
|  | ||||
|   {{- /* Build the templates */ -}} | ||||
|   {{- include "common.pvc" . }} | ||||
|   {{- print "---" | nindent 0 -}} | ||||
|   {{- if .Values.serviceAccount.create -}} | ||||
|     {{- include "common.serviceAccount" . }} | ||||
|     {{- print "---" | nindent 0 -}} | ||||
|   {{- end -}} | ||||
|   {{- if eq .Values.controllerType "deployment" }} | ||||
|     {{- include "common.deployment" . | nindent 0 }} | ||||
|   {{ else if eq .Values.controllerType "daemonset" }} | ||||
|     {{- include "common.daemonset" . | nindent 0 }} | ||||
|   {{ else if eq .Values.controllerType "statefulset"  }} | ||||
|     {{- include "common.statefulset" . | nindent 0 }} | ||||
|   {{- end -}} | ||||
|   {{ include "common.services" . | nindent 0 }} | ||||
|   {{ include "common.ingress" .  | nindent 0 }} | ||||
|   {{ include "common.resources.portal" .  | nindent 0 }} | ||||
|   {{ include "common.storage.permissions" .  | nindent 0 }} | ||||
|  | ||||
| {{- end -}} | ||||
							
								
								
									
										52
									
								
								library/common/templates/_daemonset.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								library/common/templates/_daemonset.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| This template serves as the blueprint for the DaemonSet objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.daemonset" -}} | ||||
| apiVersion: {{ include "common.capabilities.daemonset.apiVersion" . }} | ||||
| kind: DaemonSet | ||||
| metadata: | ||||
|   name: {{ include "common.names.fullname" . }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|     {{- with .Values.controllerLabels }} | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
|   {{- with .Values.controllerAnnotations }} | ||||
|   annotations: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| spec: | ||||
|   selector: | ||||
|     matchLabels: | ||||
|     {{- include "common.labels.selectorLabels" . | nindent 6 }} | ||||
|   template: | ||||
|     metadata: | ||||
|       {{- with .Values.podAnnotations }} | ||||
|       annotations: | ||||
|       {{- toYaml . | nindent 8 }} | ||||
|       {{- end }} | ||||
|       labels: | ||||
|       {{- include "common.labels.selectorLabels" . | nindent 8 }} | ||||
|     spec: | ||||
|       {{- include "common.controller.pod" . | nindent 6 }} | ||||
| {{- end }} | ||||
							
								
								
									
										56
									
								
								library/common/templates/_deployment.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								library/common/templates/_deployment.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| This template serves as the blueprint for the Deployment objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.deployment" -}} | ||||
| apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} | ||||
| kind: Deployment | ||||
| metadata: | ||||
|   name: {{ include "common.names.fullname" . }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|     {{- with .Values.controllerLabels }} | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
|   {{- with .Values.controllerAnnotations }} | ||||
|   annotations: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| spec: | ||||
|   replicas: {{ .Values.replicas }} | ||||
|   {{- with .Values.strategy }} | ||||
|   strategy: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   selector: | ||||
|     matchLabels: | ||||
|     {{- include "common.labels.selectorLabels" . | nindent 6 }} | ||||
|   template: | ||||
|     metadata: | ||||
|       {{- with .Values.podAnnotations }} | ||||
|       annotations: | ||||
|       {{- toYaml . | nindent 8 }} | ||||
|       {{- end }} | ||||
|       labels: | ||||
|       {{- include "common.labels.selectorLabels" . | nindent 8 }} | ||||
|     spec: | ||||
|       {{- include "common.controller.pod" . | nindent 6 }} | ||||
| {{- end }} | ||||
							
								
								
									
										122
									
								
								library/common/templates/_ingress.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								library/common/templates/_ingress.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,122 @@ | ||||
| {{/* | ||||
| Renders the Ingress objects required by the chart by returning a concatinated list | ||||
| of the main Ingress and any additionalIngresses. | ||||
| */}} | ||||
| {{- define "common.ingress" -}} | ||||
|     {{- /* Generate named ingresses as required */ -}} | ||||
|     {{- range $name, $ingress := .Values.ingress }} | ||||
|       {{- $certType := $ingress.certType | default "disabled" -}} | ||||
|       {{- $enabled := $ingress.enabled | default false -}} | ||||
|       {{- if or ( ne $certType "disabled" ) ( $ingress.enabled ) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- $ingressValues := $ingress -}} | ||||
|  | ||||
|         {{/* set defaults */}} | ||||
|         {{- if and (not $ingressValues.nameSuffix) ( ne $name "main" ) -}} | ||||
|           {{- $_ := set $ingressValues "nameSuffix" $name -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} | ||||
|         {{- if not $ingressValues.type -}} | ||||
|           {{- $_ := set $ingressValues "type" "HTTP" -}} | ||||
|         {{ end -}} | ||||
|         {{- if not $ingressValues.certType -}} | ||||
|           {{- $_ := set $ingressValues "certType" "" -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" )  ( eq $ingressValues.type "HTTP-IR" ) -}} | ||||
|         {{- include "common.classes.ingressRoute" $ -}} | ||||
|         {{- else -}} | ||||
|         {{- include "common.classes.ingress" $ -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- if eq $ingressValues.certType "ixcert" -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- include "common.resources.cert.secret" $ }} | ||||
|         {{ end -}} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|  | ||||
|  | ||||
|     {{- /* Generate additional ingresses as required */ -}} | ||||
|     {{- range $index, $additionalIngress := .Values.additionalIngress }} | ||||
|       {{- $certType := $additionalIngress.certType | default "disabled" -}} | ||||
|       {{- if or ( ne $certType "disabled" ) ( $additionalIngress.enabled ) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- $ingressValues := $additionalIngress -}} | ||||
|  | ||||
|         {{/* set defaults */}} | ||||
|         {{- $name := $index -}} | ||||
|         {{- if  $ingressValues.name -}} | ||||
|           {{- $name := $ingressValues.name -}} | ||||
|         {{- end }} | ||||
|  | ||||
|         {{- if or (not $ingressValues.nameSuffix) ( ne ( $name | quote ) "main" ) -}} | ||||
|           {{- $_ := set $ingressValues "nameSuffix" $name -}} | ||||
|         {{ end -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} | ||||
|         {{- if not $ingressValues.type -}} | ||||
|           {{- $_ := set $ingressValues "type" "HTTP" -}} | ||||
|         {{ end -}} | ||||
|         {{- if not $ingressValues.certType -}} | ||||
|           {{- $_ := set $ingressValues "certType" "" -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} | ||||
|         {{- include "common.classes.ingressRoute" $ -}} | ||||
|         {{- else -}} | ||||
|         {{- include "common.classes.ingress" $ -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- if eq $ingressValues.certType "ixcert" -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- include "common.resources.cert.secret" $ }} | ||||
|         {{ end -}} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|  | ||||
|     {{- /* Generate externalService ingresses as required */ -}} | ||||
|     {{- range $index, $externalService := .Values.externalServices }} | ||||
|       {{- $certType := $externalService.certType | default "disabled" -}} | ||||
|       {{- if or ( ne $certType "disabled" ) ( $externalService.enabled ) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- $ingressValues := $externalService -}} | ||||
|  | ||||
|         {{/* set defaults */}} | ||||
|         {{- $name := $index -}} | ||||
|         {{- if  $ingressValues.name -}} | ||||
|           {{- $name := $ingressValues.name -}} | ||||
|         {{- end }} | ||||
|         {{- $name = printf "%v-%v" "external" $name -}} | ||||
|  | ||||
|         {{- if or (not $ingressValues.nameSuffix) -}} | ||||
|           {{- $_ := set $ingressValues "nameSuffix" $name -}} | ||||
|         {{ end -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "ingress" $ingressValues) -}} | ||||
|         {{- if not $ingressValues.type -}} | ||||
|           {{- $_ := set $ingressValues "type" "HTTP" -}} | ||||
|         {{ end -}} | ||||
|         {{- if not $ingressValues.certType -}} | ||||
|           {{- $_ := set $ingressValues "certType" "" -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- if or ( eq $ingressValues.type "TCP" ) ( eq $ingressValues.type "UDP" ) ( eq $ingressValues.type "HTTP-IR" ) -}} | ||||
|         {{- include "common.classes.ingressRoute" $ -}} | ||||
|         {{- else -}} | ||||
|         {{- include "common.classes.ingress" $ -}} | ||||
|         {{ end -}} | ||||
|  | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- include "common.classes.externalService" $ }} | ||||
|  | ||||
|         {{- if eq $ingressValues.certType "ixcert" -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "certHolder" $ingressValues) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- include "common.resources.cert.secret" $ }} | ||||
|         {{ end -}} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|  | ||||
| {{- end }} | ||||
							
								
								
									
										36
									
								
								library/common/templates/_pvc.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								library/common/templates/_pvc.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Renders the PersistentVolumeClaim objects required by the chart by returning a concatinated list | ||||
| of all the entries of the persistence key. | ||||
| */}} | ||||
| {{- define "common.pvc" -}} | ||||
|   {{- /* Generate pvc as required */ -}} | ||||
|   {{- range $index, $PVC := .Values.persistence }} | ||||
|     {{- if and $PVC.enabled (not (or $PVC.emptyDir $PVC.existingClaim)) -}} | ||||
|       {{- $persistenceValues := $PVC -}} | ||||
|       {{- if not $persistenceValues.nameSuffix -}} | ||||
|         {{- $_ := set $persistenceValues "nameSuffix" $index -}} | ||||
|       {{- end -}} | ||||
|       {{- $_ := set $ "ObjectValues" (dict "persistence" $persistenceValues) -}} | ||||
|       {{- print ("---") | nindent 0 -}} | ||||
|       {{- include "common.classes.pvc" $ -}} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										15
									
								
								library/common/templates/_serviceaccount.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								library/common/templates/_serviceaccount.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| {{/* | ||||
| The ServiceAccount object to be created. | ||||
| */}} | ||||
| {{- define "common.serviceAccount" -}} | ||||
| apiVersion: v1 | ||||
| kind: ServiceAccount | ||||
| metadata: | ||||
|   name: {{ include "common.names.serviceAccountName" . }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   {{- with .Values.serviceAccount.annotations }} | ||||
|   annotations: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										46
									
								
								library/common/templates/_services.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								library/common/templates/_services.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| {{/* | ||||
| Renders the Service objects required by the chart by returning a concatinated list | ||||
| of the main Service and any additionalServices. | ||||
| */}} | ||||
| {{- define "common.services" -}} | ||||
|   {{- if .Values.services -}} | ||||
|         {{- /* Add dict of primary services */ -}} | ||||
|     {{- range $name, $service := .Values.services }} | ||||
|       {{- if or ( $service.enabled ) ( eq $name "main" ) -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- print ("\n") | nindent 0 -}} | ||||
|         {{- $serviceValues := $service -}} | ||||
|  | ||||
|         {{- /* Dont add name suffix for primary service named "main" */ -}} | ||||
|         {{- if and (not $serviceValues.nameSuffix) ( ne $name "main" ) -}} | ||||
|           {{- $_ := set $serviceValues "nameSuffix" $name -}} | ||||
|         {{ end -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} | ||||
|         {{- include "common.classes.service" $ -}} | ||||
|     {{- end }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
|  | ||||
|  | ||||
|   {{- if .Values.additionalServices -}} | ||||
|     {{- /* Generate additional services as required */ -}} | ||||
|     {{- range $index, $extraService := .Values.additionalServices }} | ||||
|       {{- if $extraService.enabled -}} | ||||
|         {{- print ("---") | nindent 0 -}} | ||||
|         {{- $serviceValues := $extraService -}} | ||||
|  | ||||
|         {{- $name := $index -}} | ||||
|         {{- if  $serviceValues.name -}} | ||||
|           {{- $name := $serviceValues.name -}} | ||||
|         {{- end }} | ||||
|  | ||||
|         {{- /* Dont add name suffix for primary service named "main" */ -}} | ||||
|         {{- if and (not $serviceValues.nameSuffix) ( ne ( $name | quote ) "main" ) -}} | ||||
|           {{- $_ := set $serviceValues "nameSuffix" $name -}} | ||||
|         {{ end -}} | ||||
|         {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} | ||||
|         {{- include "common.classes.service" $ -}} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										71
									
								
								library/common/templates/_statefulset.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								library/common/templates/_statefulset.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| This template serves as the blueprint for the StatefulSet objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.statefulset" -}} | ||||
| apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }} | ||||
| kind: StatefulSet | ||||
| metadata: | ||||
|   name: {{ include "common.names.fullname" . }} | ||||
|   labels: | ||||
|   {{- include "common.labels" . | nindent 4 }} | ||||
|   {{- with .Values.controllerLabels }} | ||||
|   {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   {{- with .Values.controllerAnnotations }} | ||||
|   annotations: | ||||
|   {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| spec: | ||||
|   replicas: {{ .Values.replicas }} | ||||
|   {{- with .Values.strategy }} | ||||
|   updateStrategy: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   selector: | ||||
|     matchLabels: | ||||
|     {{- include "common.labels.selectorLabels" . | nindent 6 }} | ||||
|   serviceName: {{ include "common.names.fullname" . }} | ||||
|   template: | ||||
|     metadata: | ||||
|       {{- with .Values.podAnnotations }} | ||||
|       annotations: | ||||
|       {{- toYaml . | nindent 8 }} | ||||
|       {{- end }} | ||||
|       labels: | ||||
|       {{- include "common.labels.selectorLabels" . | nindent 8 }} | ||||
|     spec: | ||||
|       {{- include "common.controller.pod" . | nindent 6 }} | ||||
|   volumeClaimTemplates: | ||||
|   {{- range $index, $vct := .Values.volumeClaimTemplates }} | ||||
|   - metadata: | ||||
|       name: {{ $vct.name }} | ||||
|     spec: | ||||
|       accessModes: | ||||
|         - {{ required (printf "accessMode is required for vCT %v" $vct.name) $vct.accessMode  | quote }} | ||||
|       resources: | ||||
|         requests: | ||||
|           storage: {{ required (printf "size is required for PVC %v" $vct.name) $vct.size | quote }} | ||||
|       {{- if $vct.storageClass }} | ||||
|       storageClassName: {{ if (eq "-" $vct.storageClass) }}""{{- else }}{{ $vct.storageClass | quote }}{{- end }} | ||||
|       {{- end }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										62
									
								
								library/common/templates/classes/_pvc.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								library/common/templates/classes/_pvc.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| This template serves as a blueprint for all PersistentVolumeClaim objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.classes.pvc" -}} | ||||
| {{- $values := .Values.persistence -}} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.persistence -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
| {{- $pvcName := include "common.names.fullname" . -}} | ||||
| {{- if hasKey $values "nameOverride" -}} | ||||
|   {{- $pvcName = $values.nameOverride -}} | ||||
| {{- else if hasKey $values "nameSuffix" -}} | ||||
|   {{- $pvcName = printf "%v-%v" $pvcName $values.nameSuffix -}} | ||||
| {{ end -}} | ||||
| kind: PersistentVolumeClaim | ||||
| apiVersion: v1 | ||||
| metadata: | ||||
|   name: {{ $pvcName }} | ||||
|   {{- if or $values.skipuninstall $values.annotations }} | ||||
|   annotations: | ||||
|     {{- if $values.skipuninstall }} | ||||
|     "helm.sh/resource-policy": keep | ||||
|     {{- end }} | ||||
|     {{- with $values.annotations }} | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
|   labels: | ||||
|   {{- include "common.labels" . | nindent 4 }} | ||||
| spec: | ||||
|   accessModes: | ||||
|     - {{ required (printf "accessMode is required for PVC %v" $pvcName) $values.accessMode | quote }} | ||||
|   resources: | ||||
|     requests: | ||||
|       storage: {{ required (printf "size is required for PVC %v" $pvcName) $values.size | quote }} | ||||
|   {{- if $values.storageClass }} | ||||
|   storageClassName: {{ include "common.storage.class" . }} | ||||
|   {{- else }} | ||||
|   storageClassName: {{ ( printf "%v-%v"  "ix-storage-class" .Release.Name ) }} | ||||
|   {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										99
									
								
								library/common/templates/classes/_service.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								library/common/templates/classes/_service.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,99 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| This template serves as a blueprint for all Service objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.classes.service" -}} | ||||
| {{- $values := .Values.services.main -}} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.service -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- $serviceName := include "common.names.fullname" . -}} | ||||
|  | ||||
|  | ||||
| {{- if hasKey $values "nameSuffix" -}} | ||||
|   {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} | ||||
| {{ end -}} | ||||
| {{- $svcType := $values.type | default "" -}} | ||||
|  | ||||
| {{- $portProtocol := $values.port.protocol -}} | ||||
| {{- if or ( eq $values.port.protocol "HTTP" ) ( eq $values.port.protocol "HTTPS" ) ( eq $values.port.protocol "TCP" ) -}} | ||||
| {{- $portProtocol = "TCP" -}} | ||||
| {{- else if eq $values.port.protocol "UDP" }} | ||||
| {{- $portProtocol = "UDP" -}} | ||||
| {{- end }} | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: {{ $serviceName }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   {{- if $values.labels }} | ||||
|     {{ toYaml $values.labels | nindent 4 }} | ||||
|   {{- end }} | ||||
|   annotations: | ||||
|   {{- if eq $values.port.protocol "HTTPS" }} | ||||
|     traefik.ingress.kubernetes.io/service.serversscheme: https | ||||
|   {{- end }} | ||||
|   {{- with $values.annotations }} | ||||
|     {{ toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
| spec: | ||||
|   {{- if (or (eq $svcType "ClusterIP") (empty $svcType)) }} | ||||
|   type: ClusterIP | ||||
|   {{- if $values.clusterIP }} | ||||
|   clusterIP: {{ $values.clusterIP }} | ||||
|   {{end}} | ||||
|   {{- else if eq $svcType "LoadBalancer" }} | ||||
|   type: {{ $svcType }} | ||||
|   {{- if $values.loadBalancerIP }} | ||||
|   loadBalancerIP: {{ $values.loadBalancerIP }} | ||||
|   {{- end }} | ||||
|   {{- if $values.externalTrafficPolicy }} | ||||
|   externalTrafficPolicy: {{ $values.externalTrafficPolicy }} | ||||
|   {{- end }} | ||||
|   {{- if $values.loadBalancerSourceRanges }} | ||||
|   loadBalancerSourceRanges: | ||||
|     {{ toYaml $values.loadBalancerSourceRanges | nindent 4 }} | ||||
|   {{- end -}} | ||||
|   {{- else }} | ||||
|   type: {{ $svcType }} | ||||
|   {{- end }} | ||||
|   {{- if $values.sessionAffinity }} | ||||
|   sessionAffinity: {{ $values.sessionAffinity }} | ||||
|   {{- if $values.sessionAffinityConfig }} | ||||
|   sessionAffinityConfig: | ||||
|     {{ toYaml $values.sessionAffinityConfig | nindent 4 }} | ||||
|   {{- end -}} | ||||
|   {{- end }} | ||||
|   {{- with $values.externalIPs }} | ||||
|   externalIPs: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   {{- if $values.publishNotReadyAddresses }} | ||||
|   publishNotReadyAddresses: {{ $values.publishNotReadyAddresses }} | ||||
|   {{- end }} | ||||
|   {{- include "common.classes.service.ports" (dict "svcType" $svcType "values" $values ) | trim | nindent 2 }} | ||||
|   selector: | ||||
|     {{- include "common.labels.selectorLabels" . | nindent 4 }} | ||||
| {{- end }} | ||||
							
								
								
									
										47
									
								
								library/common/templates/classes/_service_ports.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								library/common/templates/classes/_service_ports.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Render all the ports and additionalPorts for a Service object. | ||||
| */}} | ||||
| {{- define "common.classes.service.ports" -}} | ||||
|   {{- $ports := list -}} | ||||
|   {{- $values := .values -}} | ||||
|   {{- $ports = mustAppend $ports $values.port -}} | ||||
|   {{- range $_ := $values.additionalPorts -}} | ||||
|     {{- $ports = mustAppend $ports . -}} | ||||
|   {{- end }} | ||||
|   {{- if $ports -}} | ||||
|   ports: | ||||
|   {{- range $_ := $ports }} | ||||
|   {{- $protocol := "" -}} | ||||
|   {{- if or ( eq .protocol "HTTP" ) ( eq .protocol "HTTPS" ) }} | ||||
|     {{- $protocol = "TCP" -}} | ||||
|   {{- else }} | ||||
|     {{- $protocol = .protocol | default "TCP" -}} | ||||
|   {{- end }} | ||||
|   - port: {{ .port }} | ||||
|     targetPort: {{ .targetPort | default .name | default "http" }} | ||||
|     protocol: {{ $protocol | default "TCP" }} | ||||
|     name: {{ .name | default "http" }} | ||||
|     {{- if (and (eq $.svcType "NodePort") (not (empty .nodePort))) }} | ||||
|     nodePort: {{ .nodePort }} | ||||
|     {{ end }} | ||||
|   {{- end -}} | ||||
|   {{- end -}} | ||||
| {{- end }} | ||||
| @@ -0,0 +1,63 @@ | ||||
| {{- define "common.classes.externalService" -}} | ||||
| {{- $serviceName := include "common.names.fullname" . -}} | ||||
| {{- $values := .Values -}} | ||||
| {{- $svcPort := 80 }} | ||||
| {{- $ingressService := $.Values }} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.ingress -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- if hasKey $values "nameSuffix" -}} | ||||
|   {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- $svcName := $values.serviceName | default $serviceName -}} | ||||
|  | ||||
| {{- if $values.servicePort }} | ||||
|   {{- $svcPort = $values.servicePort -}} | ||||
| {{- end }} | ||||
|  | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: {{ $svcName }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   annotations: | ||||
|     {{- if eq ( $values.serviceType | default "" ) "HTTPS" }} | ||||
|     traefik.ingress.kubernetes.io/service.serversscheme: https | ||||
|     {{- end }} | ||||
|     {{- with $values.annotations }} | ||||
|       {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
| spec: | ||||
|   ports: | ||||
| {{- if eq $values.type "UDP"}} | ||||
|     - protocol: UDP | ||||
|       port: {{ $values.servicePort }} | ||||
|       targetPort: {{ $values.servicePort }} | ||||
| {{- else }} | ||||
|     - protocol: TCP | ||||
|       port: {{ $values.servicePort }} | ||||
|       targetPort: {{ $values.servicePort }} | ||||
| {{- end }} | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: Endpoints | ||||
| metadata: | ||||
|   name: {{ $svcName }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   annotations: | ||||
|     {{- with $values.annotations }} | ||||
|       {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
| subsets: | ||||
|   - addresses: | ||||
|       - ip: {{ $values.serviceTarget }} | ||||
|     ports: | ||||
|       - port: {{ $values.servicePort }} | ||||
|  | ||||
| {{- end }} | ||||
							
								
								
									
										148
									
								
								library/common/templates/classes/ingress/_ingress.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								library/common/templates/classes/ingress/_ingress.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,148 @@ | ||||
| {{/* | ||||
| This template serves as a blueprint for all Ingress objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.classes.ingress" -}} | ||||
| {{- $ingressName := include "common.names.fullname" . -}} | ||||
| {{- $values := .Values -}} | ||||
| {{- $svcPort := 80 -}} | ||||
| {{- $portProtocol := "" -}} | ||||
| {{- $ingressService := $.Values -}} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.ingress -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
|  | ||||
|  | ||||
| {{- if hasKey $values "nameSuffix" -}} | ||||
|   {{- $ingressName = printf "%v-%v" $ingressName $values.nameSuffix -}} | ||||
|   {{- if not $values.servicePort }} | ||||
|     {{- $ingressService := index  $.Values.services ( $values.nameSuffix | quote ) }} | ||||
|     {{- if $ingressService.enabled }} | ||||
|       {{- $svcPort = $ingressService.port.port -}} | ||||
|       {{- $portProtocol = $ingressService.port.protocol | default "" }} | ||||
|     {{- else if $.Values.services.main.enabled }} | ||||
|       {{- $svcPort = $.Values.services.main.port.port -}} | ||||
|       {{- $portProtocol = $.Values.services.main.port.protocol | default "" -}} | ||||
|     {{ end -}} | ||||
|   {{ end -}} | ||||
| {{- else if and ( $.Values.services.main.enabled ) ( not $values.servicePort ) }} | ||||
|   {{- $svcPort = $.Values.services.main.port.port -}} | ||||
|   {{- $portProtocol = $.Values.services.main.port.protocol | default "" -}} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- $authForwardName := ( printf "%v-%v" $ingressName "auth-forward" ) -}} | ||||
|  | ||||
| {{- $svcName := $values.serviceName | default $ingressName -}} | ||||
|  | ||||
| {{- if $values.dynamicServiceName }} | ||||
|   {{- $dynamicServiceName := printf "%v-%v" .Release.Name $values.dynamicServiceName -}} | ||||
|   {{- $svcName = $dynamicServiceName -}} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if $values.servicePort }} | ||||
|   {{- $svcPort = $values.servicePort -}} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if $values.serviceType }} | ||||
|   {{- $portProtocol = $values.serviceType -}} | ||||
| {{- end }} | ||||
|  | ||||
| apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} | ||||
| kind: Ingress | ||||
| metadata: | ||||
|   name: {{ $ingressName }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   annotations: | ||||
|     {{- if eq $portProtocol "HTTPS" }} | ||||
|     traefik.ingress.kubernetes.io/service.serversscheme: https | ||||
|     {{- end }} | ||||
|     traefik.ingress.kubernetes.io/router.entrypoints: {{ $values.entrypoint | default "websecure" }} | ||||
|     traefik.ingress.kubernetes.io/router.middlewares: traefik-middlewares-chain-public@kubernetescrd{{ if $values.authForwardURL }},{{ printf "%v-%v@%v" .Release.Namespace  $authForwardName "kubernetescrd" }}{{ end }} | ||||
|     {{- with $values.annotations }} | ||||
|       {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
| spec: | ||||
|   {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} | ||||
|   {{- if $values.ingressClassName }} | ||||
|   ingressClassName: {{ $values.ingressClassName }} | ||||
|   {{- end }} | ||||
|   {{- end }} | ||||
|   {{- if or ( eq $values.certType "selfsigned") (eq $values.certType "ixcert") }} | ||||
|   tls: | ||||
|     - hosts: | ||||
|         {{- if $values.host}} | ||||
|         - {{ $values.host | quote }} | ||||
|         {{- else }} | ||||
|         {{- range $values.hosts }} | ||||
|         - {{ .host | quote }} | ||||
|         {{- end }} | ||||
|         {{- end }} | ||||
|       {{- if eq $values.certType "ixcert" }} | ||||
|       secretName: {{ $ingressName }} | ||||
|       {{- end }} | ||||
|   {{- end }} | ||||
|   rules: | ||||
|   {{- if $values.host }} | ||||
|     - host: {{ $values.host | quote }} | ||||
|       http: | ||||
|         paths: | ||||
|           - path: {{ $values.path | default "/" }} | ||||
|             {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} | ||||
|             pathType: Prefix | ||||
|             {{- end }} | ||||
|             backend: | ||||
|             {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} | ||||
|               service: | ||||
|                 name: {{ $svcName }} | ||||
|                 port: | ||||
|                   number: {{ $svcPort }} | ||||
|             {{- else }} | ||||
|               serviceName: {{ $svcName }} | ||||
|               servicePort: {{ $svcPort }} | ||||
|             {{- end }} | ||||
|   {{- end }} | ||||
|   {{- range $values.hosts }} | ||||
|     - host: {{ .host | quote }} | ||||
|       http: | ||||
|         paths: | ||||
|           - path: {{ .path | default "/" }} | ||||
|             {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} | ||||
|             pathType: Prefix | ||||
|             {{- end }} | ||||
|             backend: | ||||
|             {{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }} | ||||
|               service: | ||||
|                 name: {{ $svcName }} | ||||
|                 port: | ||||
|                   number: {{ $svcPort }} | ||||
|             {{- else }} | ||||
|               serviceName: {{ $svcName }} | ||||
|               servicePort: {{ $svcPort }} | ||||
|             {{- end }} | ||||
|   {{- end }} | ||||
|  | ||||
| {{- if $values.authForwardURL }} | ||||
|  | ||||
| --- | ||||
|  | ||||
| apiVersion: traefik.containo.us/v1alpha1 | ||||
| kind: Middleware | ||||
| metadata: | ||||
|   name: {{ $authForwardName }} | ||||
| spec: | ||||
|   forwardAuth: | ||||
|     address: {{ $values.authForwardURL | quote }} | ||||
|     tls: | ||||
|       insecureSkipVerify: true | ||||
|     trustForwardHeader: true | ||||
|     authResponseHeaders: | ||||
|       - Remote-User | ||||
|       - Remote-Groups | ||||
|       - Remote-Name | ||||
|       - Remote-Email | ||||
| {{- end }} | ||||
|  | ||||
| {{- end }} | ||||
							
								
								
									
										127
									
								
								library/common/templates/classes/ingress/_ingressRoute.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								library/common/templates/classes/ingress/_ingressRoute.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | ||||
| {{/* | ||||
| This template serves as a blueprint for all ingressRoute objects that are created | ||||
| within the common library. | ||||
| */}} | ||||
| {{- define "common.classes.ingressRoute" -}} | ||||
| {{- $ingressName := include "common.names.fullname" . -}} | ||||
| {{- $values := .Values -}} | ||||
| {{- $svcPort := 80 }} | ||||
| {{- $portProtocol := "" }} | ||||
| {{- $ingressService := $.Values }} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.ingress -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- if hasKey $values "nameSuffix" -}} | ||||
|   {{- $ingressName = printf "%v-%v" $ingressName $values.nameSuffix -}} | ||||
|   {{- if and ( $.Values.services ) ( not $values.servicePort ) }} | ||||
|     {{- $ingressService := index  $.Values.services ( $values.nameSuffix | quote) }} | ||||
|     {{- $svcPort = $ingressService.port.port }} | ||||
|     {{- $portProtocol = $ingressService.port.protocol | default "" }} | ||||
|   {{ end -}} | ||||
| {{- else if and ( $.Values.services ) ( not $values.servicePort ) }} | ||||
|   {{- $svcPort = $.Values.services.main.port.port }} | ||||
|   {{- $portProtocol = $.Values.services.main.port.protocol  | default "" }} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- $authForwardName := ( printf "%v-%v" $ingressName "auth-forward" ) -}} | ||||
|  | ||||
| {{- $svcName := $values.serviceName | default $ingressName -}} | ||||
|  | ||||
| {{- if $values.servicePort }} | ||||
|   {{- $svcPort = $values.servicePort }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if $values.serviceType }} | ||||
|     {{- $portProtocol = $values.serviceType }} | ||||
| {{- end }} | ||||
|  | ||||
| apiVersion: traefik.containo.us/v1alpha1 | ||||
| {{- if eq $values.type "UDP" }} | ||||
| kind: IngressRouteUDP | ||||
| {{- else if eq $values.type "TCP" }} | ||||
| kind: IngressRouteTCP | ||||
| {{- else }} | ||||
| kind: IngressRoute | ||||
| {{- end }} | ||||
| metadata: | ||||
|   name: {{ $ingressName }} | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   annotations: | ||||
|     {{- with $values.annotations }} | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|     {{- end }} | ||||
| spec: | ||||
|   entryPoints: | ||||
|     - {{ $values.entrypoint }} | ||||
|   routes: | ||||
|   {{- if eq $values.type "UDP" }} | ||||
|   - services: | ||||
|     - name: {{ $svcName }} | ||||
|       port: {{ $svcPort }} | ||||
|       weight: 10 | ||||
|   {{- else if eq $values.type "TCP" }} | ||||
|   - match: HostSNI(`*`) | ||||
|     services: | ||||
|     - name: {{ $svcName }} | ||||
|       port: {{ $svcPort }} | ||||
|       weight: 10 | ||||
|       terminationDelay: 400 | ||||
|   {{- else }} | ||||
|   - kind: Rule | ||||
|     match: Host(`{{ (index  $values.hosts 0).host }}`) && PathPrefix(`{{ (index  $values.hosts 0).path | default "/" }}`) | ||||
|     services: | ||||
|       - name: {{ $svcName }} | ||||
|         {{- if $values.serviceKind }} | ||||
|         kind: {{ $values.serviceKind }} | ||||
|         {{- else }} | ||||
|         port: {{ $svcPort }} | ||||
|         {{- end }} | ||||
|     middlewares: | ||||
|       - name: traefik-middlewares-chain-public@kubernetescrd | ||||
|       {{- if $values.authForwardURL }} | ||||
|       - name: "{{ printf "%v-%v@%v" .Release.Namespace $authForwardName "kubernetescrd" }}" | ||||
|       {{- end }} | ||||
|   {{- end }} | ||||
|  | ||||
| {{- if not ( eq $values.type "UDP" ) }} | ||||
| {{- if or ( eq $values.certType "selfsigned") (eq $values.certType "ixcert") }} | ||||
|   tls: | ||||
|     domains: | ||||
|       - main: {{ (index  $values.hosts 0).host }} | ||||
|         sans: | ||||
|             {{- range $values.hosts }} | ||||
|             - {{ .host | quote }} | ||||
|             {{- end }} | ||||
|     {{- if eq $values.certType "ixcert" }} | ||||
|     secretName: {{ $ingressName }} | ||||
|     {{- end }} | ||||
|     passthrough: false | ||||
|  | ||||
| {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if $values.authForwardURL }} | ||||
| --- | ||||
|  | ||||
| apiVersion: traefik.containo.us/v1alpha1 | ||||
| kind: Middleware | ||||
| metadata: | ||||
|   name: {{ $authForwardName }} | ||||
| spec: | ||||
|   forwardAuth: | ||||
|     address: {{ $values.authForwardURL | quote }} | ||||
|     tls: | ||||
|       insecureSkipVerify: true | ||||
|     trustForwardHeader: true | ||||
|     authResponseHeaders: | ||||
|       - Remote-User | ||||
|       - Remote-Groups | ||||
|       - Remote-Name | ||||
|       - Remote-Email | ||||
|  | ||||
| {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										146
									
								
								library/common/templates/lib/chart/_capabilities.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								library/common/templates/lib/chart/_capabilities.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,146 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Return the appropriate apiVersion for DaemonSet objects. | ||||
| */}} | ||||
| {{- define "common.capabilities.daemonset.apiVersion" -}} | ||||
| {{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} | ||||
| {{- print "extensions/v1beta1" -}} | ||||
| {{- else -}} | ||||
| {{- print "apps/v1" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Waiting on https://github.com/helm/helm/pull/8608 | ||||
| {{- define "common.capabilities.daemonset.apiVersion" -}} | ||||
| {{- if .Capabilities.APIVersions.Has "apps/v1/DaemonSet" -}} | ||||
| {{- print "apps/v1" -}} | ||||
| {{- else -}} | ||||
| {{- print "extensions/v1beta1" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Return the appropriate apiVersion for Deployment objects. | ||||
| */}} | ||||
| {{- define "common.capabilities.deployment.apiVersion" -}} | ||||
| {{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} | ||||
| {{- print "extensions/v1beta1" -}} | ||||
| {{- else -}} | ||||
| {{- print "apps/v1" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Waiting on https://github.com/helm/helm/pull/8608 | ||||
| {{- define "common.capabilities.deployment.apiVersion" -}} | ||||
| {{- if .Capabilities.APIVersions.Has "apps/v1/Deployment" -}} | ||||
| {{- print "apps/v1" -}} | ||||
| {{- else -}} | ||||
| {{- print "extensions/v1beta1" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Return the appropriate apiVersion for StatefulSet objects. | ||||
| */}} | ||||
| {{- define "common.capabilities.statefulset.apiVersion" -}} | ||||
| {{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} | ||||
| {{- print "apps/v1beta1" -}} | ||||
| {{- else -}} | ||||
| {{- print "apps/v1" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Waiting on https://github.com/helm/helm/pull/8608 | ||||
| {{- define "common.capabilities.statefulset.apiVersion" -}} | ||||
| {{- if .Capabilities.APIVersions.Has "apps/v1/StatefulSet" -}} | ||||
| {{- print "apps/v1" -}} | ||||
| {{- else -}} | ||||
| {{- print "apps/v1beta1" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Return the appropriate apiVersion for Ingress objects. | ||||
| */}} | ||||
|  | ||||
| {{- define "common.capabilities.ingress.apiVersion" -}} | ||||
| {{- if .Values.ingress.apiVersion -}} | ||||
| {{- .Values.ingress.apiVersion -}} | ||||
| {{- else if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} | ||||
| {{- print "extensions/v1beta1" -}} | ||||
| {{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion -}} | ||||
| {{- print "networking.k8s.io/v1beta1" -}} | ||||
| {{- else -}} | ||||
| {{- print "networking.k8s.io/v1" -}} | ||||
| {{- end }} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Waiting on https://github.com/helm/helm/pull/8608 | ||||
| {{- define "common.capabilities.ingress.apiVersion" -}} | ||||
| {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" -}} | ||||
| {{- print "networking.k8s.io/v1" -}} | ||||
| {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" -}} | ||||
| {{- print "networking.k8s.io/v1beta1" -}} | ||||
| {{- else -}} | ||||
| {{- print "extensions/v1beta1" -}} | ||||
| {{- 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 -}} | ||||
|  | ||||
| {{/* | ||||
| 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 -}} | ||||
							
								
								
									
										38
									
								
								library/common/templates/lib/chart/_errors.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								library/common/templates/lib/chart/_errors.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* vim: set filetype=mustache: */}} | ||||
| {{/* | ||||
| Through error when upgrading using empty passwords values that must not be empty. | ||||
|  | ||||
| Usage: | ||||
| {{- $validationError00 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password00" "secret" "secretName" "field" "password-00") -}} | ||||
| {{- $validationError01 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password01" "secret" "secretName" "field" "password-01") -}} | ||||
| {{ include "common.errors.upgrade.passwords.empty" (dict "validationErrors" (list $validationError00 $validationError01) "context" $) }} | ||||
|  | ||||
| Required password params: | ||||
|   - validationErrors - String - Required. List of validation strings to be return, if it is empty it won't throw error. | ||||
|   - context - Context - Required. Parent context. | ||||
| */}} | ||||
| {{- define "common.errors.upgrade.passwords.empty" -}} | ||||
|   {{- $validationErrors := join "" .validationErrors -}} | ||||
|   {{- if and $validationErrors .context.Release.IsUpgrade -}} | ||||
|     {{- $errorString := "\nPASSWORDS ERROR: you must provide your current passwords when upgrade the release%s" -}} | ||||
|     {{- printf $errorString $validationErrors | fail -}} | ||||
|   {{- end -}} | ||||
| {{- end -}} | ||||
							
								
								
									
										65
									
								
								library/common/templates/lib/chart/_images.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								library/common/templates/lib/chart/_images.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* vim: set filetype=mustache: */}} | ||||
| {{/* | ||||
| Return the proper image name | ||||
| {{ include "common.images.image" ( dict "imageRoot" .Values.path.to.the.image "global" $) }} | ||||
| */}} | ||||
| {{- define "common.images.image" -}} | ||||
| {{- $registryName := .imageRoot.registry -}} | ||||
| {{- $repositoryName := .imageRoot.repository -}} | ||||
| {{- $tag := .imageRoot.tag | toString -}} | ||||
| {{- if .global }} | ||||
|     {{- if .global.imageRegistry }} | ||||
|      {{- $registryName = .global.imageRegistry -}} | ||||
|     {{- end -}} | ||||
| {{- end -}} | ||||
| {{- if $registryName }} | ||||
| {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} | ||||
| {{- else -}} | ||||
| {{- printf "%s:%s" $repositoryName $tag -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Return the proper Docker Image Registry Secret Names | ||||
| {{ include "common.images.pullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global) }} | ||||
| */}} | ||||
| {{- define "common.images.pullSecrets" -}} | ||||
|   {{- $pullSecrets := list }} | ||||
|  | ||||
|   {{- if .global }} | ||||
|     {{- range .global.imagePullSecrets -}} | ||||
|       {{- $pullSecrets = append $pullSecrets . -}} | ||||
|     {{- end -}} | ||||
|   {{- end -}} | ||||
|  | ||||
|   {{- range .images -}} | ||||
|     {{- range .pullSecrets -}} | ||||
|       {{- $pullSecrets = append $pullSecrets . -}} | ||||
|     {{- end -}} | ||||
|   {{- end -}} | ||||
|  | ||||
|   {{- if (not (empty $pullSecrets)) }} | ||||
| imagePullSecrets: | ||||
|     {{- range $pullSecrets }} | ||||
|   - name: {{ . }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										55
									
								
								library/common/templates/lib/chart/_labels.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								library/common/templates/lib/chart/_labels.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Common labels shared across objects. | ||||
| */}} | ||||
| {{- define "common.labels" -}} | ||||
| helm.sh/chart: {{ include "common.names.chart" . }} | ||||
| {{ include "common.labels.selectorLabels" . }} | ||||
| {{- if .Chart.AppVersion }} | ||||
| app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||||
| {{- end }} | ||||
| app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||
| {{- end }} | ||||
|  | ||||
| {{/* | ||||
| Selector labels shared across objects. | ||||
| */}} | ||||
| {{- define "common.labels.selectorLabels" -}} | ||||
| app.kubernetes.io/name: {{ include "common.names.name" . }} | ||||
| app.kubernetes.io/instance: {{ .Release.Name }} | ||||
| {{- end }} | ||||
|  | ||||
|  | ||||
| ## Bitnami Compatibility links | ||||
|  | ||||
| {{/* vim: set filetype=mustache: */}} | ||||
| {{/* | ||||
| Kubernetes standard labels | ||||
| */}} | ||||
| {{- define "common.labels.standard" -}} | ||||
| {{ include "common.labels" . }} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector | ||||
| */}} | ||||
| {{- define "common.labels.matchLabels" -}} | ||||
| {{ include "common.labels.selectorLabels" . }} | ||||
| {{- end -}} | ||||
							
								
								
									
										62
									
								
								library/common/templates/lib/chart/_names.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								library/common/templates/lib/chart/_names.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* vim: set filetype=mustache: */}} | ||||
| {{/* | ||||
| Expand the name of the chart. | ||||
| */}} | ||||
| {{- define "common.names.name" -}} | ||||
| {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Create a default fully qualified app name. | ||||
| We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). | ||||
| If release name contains chart name it will be used as a full name. | ||||
| */}} | ||||
| {{- define "common.names.fullname" -}} | ||||
| {{- if .Values.fullnameOverride -}} | ||||
| {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} | ||||
| {{- else -}} | ||||
| {{- $name := default .Chart.Name .Values.nameOverride -}} | ||||
| {{- if contains $name .Release.Name -}} | ||||
| {{- .Release.Name | trunc 63 | trimSuffix "-" -}} | ||||
| {{- else -}} | ||||
| {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Create chart name and version as used by the chart label. | ||||
| */}} | ||||
| {{- define "common.names.chart" -}} | ||||
| {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} | ||||
| {{- end }} | ||||
|  | ||||
| {{/* | ||||
| Create the name of the ServiceAccount to use. | ||||
| */}} | ||||
| {{- define "common.names.serviceAccountName" -}} | ||||
| {{- if .Values.serviceAccount.create }} | ||||
|     {{- default (include "common.names.fullname" .) .Values.serviceAccount.name }} | ||||
| {{- else }} | ||||
|     {{- default "default" .Values.serviceAccount.name }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										80
									
								
								library/common/templates/lib/chart/_utils.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								library/common/templates/lib/chart/_utils.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* vim: set filetype=mustache: */}} | ||||
| {{/* | ||||
| Print instructions to get a secret value. | ||||
| Usage: | ||||
| {{ include "common.utils.secret.getvalue" (dict "secret" "secret-name" "field" "secret-value-field" "context" $) }} | ||||
| */}} | ||||
| {{- define "common.utils.secret.getvalue" -}} | ||||
| {{- $varname := include "common.utils.fieldToEnvVar" . -}} | ||||
| export {{ $varname }}=$(kubectl get secret --namespace {{ .context.Release.Namespace | quote }} {{ .secret }} -o jsonpath="{.data.{{ .field }}}" | base64 --decode) | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Build env var name given a field | ||||
| Usage: | ||||
| {{ include "common.utils.fieldToEnvVar" dict "field" "my-password" }} | ||||
| */}} | ||||
| {{- define "common.utils.fieldToEnvVar" -}} | ||||
|   {{- $fieldNameSplit := splitList "-" .field -}} | ||||
|   {{- $upperCaseFieldNameSplit := list -}} | ||||
|  | ||||
|   {{- range $fieldNameSplit -}} | ||||
|     {{- $upperCaseFieldNameSplit = append $upperCaseFieldNameSplit ( upper . ) -}} | ||||
|   {{- end -}} | ||||
|  | ||||
|   {{ join "_" $upperCaseFieldNameSplit }} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Gets a value from .Values given | ||||
| Usage: | ||||
| {{ include "common.utils.getValueFromKey" (dict "key" "path.to.key" "context" $) }} | ||||
| */}} | ||||
| {{- define "common.utils.getValueFromKey" -}} | ||||
| {{- $splitKey := splitList "." .key -}} | ||||
| {{- $value := "" -}} | ||||
| {{- $latestObj := $.context.Values -}} | ||||
| {{- range $splitKey -}} | ||||
|   {{- if not $latestObj -}} | ||||
|     {{- printf "please review the entire path of '%s' exists in values" $.key | fail -}} | ||||
|   {{- end -}} | ||||
|   {{- $value = ( index $latestObj . ) -}} | ||||
|   {{- $latestObj = $value -}} | ||||
| {{- end -}} | ||||
| {{- printf "%v" (default "" $value) -}} | ||||
| {{- end -}} | ||||
|  | ||||
| {{/* | ||||
| Returns first .Values key with a defined value or first of the list if all non-defined | ||||
| Usage: | ||||
| {{ include "common.utils.getKeyFromList" (dict "keys" (list "path.to.key1" "path.to.key2") "context" $) }} | ||||
| */}} | ||||
| {{- define "common.utils.getKeyFromList" -}} | ||||
| {{- $key := first .keys -}} | ||||
| {{- $reverseKeys := reverse .keys }} | ||||
| {{- range $reverseKeys }} | ||||
|   {{- $value := include "common.utils.getValueFromKey" (dict "key" . "context" $.context ) }} | ||||
|   {{- if $value -}} | ||||
|     {{- $key = . }} | ||||
|   {{- end -}} | ||||
| {{- end -}} | ||||
| {{- printf "%s" $key -}} | ||||
| {{- end -}} | ||||
							
								
								
									
										29
									
								
								library/common/templates/lib/chart/_values.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								library/common/templates/lib/chart/_values.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
| {{/* | ||||
| Merge the local chart values and the common chart defaults. | ||||
| */}} | ||||
| {{- define "common.values.setup" -}} | ||||
|   {{- if .Values.common -}} | ||||
|     {{- $defaultValues := deepCopy .Values.common -}} | ||||
|     {{- $userValues := deepCopy (omit .Values "common") -}} | ||||
|     {{- $mergedValues := mustMergeOverwrite $defaultValues $userValues -}} | ||||
|     {{- $_ := set . "Values" (deepCopy $mergedValues) -}} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										92
									
								
								library/common/templates/lib/controller/_container.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								library/common/templates/lib/controller/_container.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
|  | ||||
| {{- /* | ||||
| The main container included in the controller. | ||||
| */ -}} | ||||
| {{- define "common.controller.mainContainer" -}} | ||||
| - name: {{ include "common.names.fullname" . }} | ||||
|   image: "{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}" | ||||
|   imagePullPolicy: {{ .Values.image.pullPolicy }} | ||||
|   {{- with .Values.command }} | ||||
|   command: {{ . }} | ||||
|   {{- end }} | ||||
|   {{- with .Values.args }} | ||||
|   args: {{ . }} | ||||
|   {{- end }} | ||||
|   {{- with .Values.securityContext }} | ||||
|   securityContext: | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   env: | ||||
|     - name: PUID | ||||
|       value: {{ .Values.PUID | quote }} | ||||
|     - name: PGID | ||||
|       value: {{ .Values.PGID | quote }} | ||||
|     - name: UMASK | ||||
|       value: {{ .Values.UMASK | quote }} | ||||
|   {{- if .Values.timezone }} | ||||
|     - name: TZ | ||||
|       value: {{ .Values.timezone | quote }} | ||||
|   {{- end }} | ||||
|   {{- if or .Values.env .Values.envTpl .Values.envValueFrom .Values.envVariable .Values.environmentVariables }} | ||||
|   {{- range $envVariable := .Values.environmentVariables }} | ||||
|   {{- if and $envVariable.name $envVariable.value }} | ||||
|     - name: {{ $envVariable.name }} | ||||
|       value: {{ $envVariable.value | quote }} | ||||
|   {{- else }} | ||||
|     {{- fail "Please specify name/value for environment variable" }} | ||||
|   {{- end }} | ||||
|   {{- end}} | ||||
|   {{- range $key, $value := .Values.env }} | ||||
|     - name: {{ $key }} | ||||
|       value: {{ $value | quote }} | ||||
|   {{- end }} | ||||
|   {{- range $key, $value := .Values.envTpl }} | ||||
|     - name: {{ $key }} | ||||
|       value: {{ tpl $value $ | quote }} | ||||
|   {{- end }} | ||||
|   {{- range $key, $value := .Values.envValueFrom }} | ||||
|     - name: {{ $key }} | ||||
|       valueFrom: | ||||
|         {{- $value | toYaml | nindent 8 }} | ||||
|   {{- end }} | ||||
|   {{- end }} | ||||
|   {{- with .Values.envFrom }} | ||||
|   envFrom: | ||||
|     {{- toYaml . | nindent 12 }} | ||||
|   {{- end }} | ||||
|   {{- include "common.controller.ports" . | trim | nindent 2 }} | ||||
|  | ||||
|   {{- with (include "common.controller.volumeMounts" . | trim) }} | ||||
|   volumeMounts: | ||||
|     {{- . | nindent 2 }} | ||||
|   {{- end }} | ||||
|  | ||||
|  | ||||
|   {{- include "common.controller.probes" . | nindent 2 }} | ||||
|   resources: | ||||
|   {{- with .Values.resources }} | ||||
|     {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   {{- if and .Values.gpuConfiguration }} | ||||
|     limits: | ||||
|       {{- toYaml .Values.gpuConfiguration | nindent 6 }} | ||||
|   {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										69
									
								
								library/common/templates/lib/controller/_pod.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								library/common/templates/lib/controller/_pod.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| {{- /* | ||||
| The pod definition included in the controller. | ||||
| */ -}} | ||||
| {{- define "common.controller.pod" -}} | ||||
| {{- with .Values.imagePullSecrets }} | ||||
| imagePullSecrets: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| serviceAccountName: {{ include "common.names.serviceAccountName" . }} | ||||
| {{- with .Values.podSecurityContext }} | ||||
| securityContext: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| {{- with .Values.priorityClassName }} | ||||
| priorityClassName: {{ . }} | ||||
| {{- end }} | ||||
| {{- with .Values.schedulerName }} | ||||
| schedulerName: {{ . }} | ||||
| {{- end }} | ||||
| {{- with .Values.hostNetwork }} | ||||
| hostNetwork: {{ . }} | ||||
| {{- end }} | ||||
| {{- with .Values.hostname }} | ||||
| hostname: {{ . }} | ||||
| {{- end }} | ||||
| {{- if .Values.dnsPolicy }} | ||||
| {{- with .Values.dnsPolicy }} | ||||
| dnsPolicy: {{ . }} | ||||
| {{- end }} | ||||
| {{- else if .Values.hostNetwork }} | ||||
| dnsPolicy: "ClusterFirstWithHostNet" | ||||
| {{- else }} | ||||
| dnsPolicy: ClusterFirst | ||||
| {{- end }} | ||||
| {{- with .Values.dnsConfig }} | ||||
| dnsConfig: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| enableServiceLinks: {{ .Values.enableServiceLinks }} | ||||
| {{- with .Values.initContainers }} | ||||
| initContainers: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| containers: | ||||
|   {{- include "common.controller.mainContainer" . | nindent 0 }} | ||||
|   {{- with .Values.additionalContainers }} | ||||
|     {{- toYaml . | nindent 0 }} | ||||
|   {{- end }} | ||||
| {{- with (include "common.controller.volumes" . | trim) }} | ||||
| volumes: | ||||
|   {{- . | nindent 0 }} | ||||
| {{- end }} | ||||
| {{- with .Values.hostAliases }} | ||||
| hostAliases: | ||||
| {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| {{- with .Values.nodeSelector }} | ||||
| nodeSelector: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| {{- with .Values.affinity }} | ||||
| affinity: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| {{- with .Values.tolerations }} | ||||
| tolerations: | ||||
|   {{- toYaml . | nindent 2 }} | ||||
| {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										76
									
								
								library/common/templates/lib/controller/_ports.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								library/common/templates/lib/controller/_ports.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Ports included by the controller. | ||||
| */}} | ||||
| {{- define "common.controller.ports" -}} | ||||
| {{- $ports := list -}} | ||||
|     {{/* append the ports for each appAdditionalService - TrueCharts */}} | ||||
|     {{- if $.Values.services -}} | ||||
|       {{- range $name, $_ := $.Values.services }} | ||||
|         {{- if or ( .enabled ) ( eq $name "main" ) -}} | ||||
|           {{- if eq $name "main" -}} | ||||
|             {{- $_ := set .port "name" (default "http" .port.name) -}} | ||||
|           {{- else if kindIs "string" $name -}} | ||||
|             {{- $_ := set .port "name" (default .port.name | default $name) -}} | ||||
|             {{- else -}} | ||||
|             {{- $_ := set .port "name" (required "Missing port.name" .port.name) -}} | ||||
|           {{- end -}} | ||||
|           {{- $ports = mustAppend $ports .port -}} | ||||
|           {{- range $_ := .additionalPorts -}} | ||||
|             {{/* append the additonalPorts for each additional service */}} | ||||
|             {{- $ports = mustAppend $ports . -}} | ||||
|           {{- end }} | ||||
|         {{- end }} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|  | ||||
|     {{- if $.Values.additionalServices -}} | ||||
|       {{- range $_ := $.Values.additionalServices }} | ||||
|         {{- if .enabled -}} | ||||
|           {{- $_ := set .port "name" (required "Missing port.name" .port.name) -}} | ||||
|           {{- $ports = mustAppend $ports .port -}} | ||||
|           {{- range $_ := .additionalPorts -}} | ||||
|             {{/* append the additonalPorts for each additional service */}} | ||||
|             {{- $ports = mustAppend $ports . -}} | ||||
|           {{- end }} | ||||
|         {{- end }} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|  | ||||
| {{/* export/render the list of ports */}} | ||||
| {{- if $ports -}} | ||||
| ports: | ||||
| {{- range $_ := $ports }} | ||||
| {{- $protocol := "" -}} | ||||
| {{- if or ( eq .protocol "HTTP" ) ( eq .protocol "HTTPS" ) }} | ||||
|   {{- $protocol = "TCP" -}} | ||||
| {{- else }} | ||||
|   {{- $protocol = .protocol | default "TCP" -}} | ||||
| {{- end }} | ||||
| - name: {{ required "The port's 'name' is not defined" .name }} | ||||
|   {{- if and .targetPort (kindIs "string" .targetPort) }} | ||||
|   {{- fail (printf "Our charts do not support named ports for targetPort. (port name %s, targetPort %s)" .name .targetPort) }} | ||||
|   {{- end }} | ||||
|   containerPort: {{ .targetPort | default .port }} | ||||
|   protocol: {{ $protocol | default "TCP" }} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
							
								
								
									
										41
									
								
								library/common/templates/lib/controller/_probes.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								library/common/templates/lib/controller/_probes.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Probes selection logic. | ||||
| */}} | ||||
| {{- define "common.controller.probes" -}} | ||||
| {{- $svcPort := .Values.services.main.port.name -}} | ||||
| {{- range $probeName, $probe := .Values.probes }} | ||||
|   {{- if $probe.enabled -}} | ||||
|     {{- "" | nindent 0 }} | ||||
|     {{- $probeName }}Probe: | ||||
|     {{- if $probe.custom -}} | ||||
|       {{- $probe.spec | toYaml | nindent 2 }} | ||||
|     {{- else }} | ||||
|       {{- "tcpSocket:" | nindent 2 }} | ||||
|         {{- printf "port: %v" $svcPort  | nindent 4 }} | ||||
|       {{- printf "initialDelaySeconds: %v" $probe.spec.initialDelaySeconds  | nindent 2 }} | ||||
|       {{- printf "failureThreshold: %v" $probe.spec.failureThreshold  | nindent 2 }} | ||||
|       {{- printf "timeoutSeconds: %v" $probe.spec.timeoutSeconds  | nindent 2 }} | ||||
|       {{- printf "periodSeconds: %v" $probe.spec.periodSeconds | nindent 2 }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										62
									
								
								library/common/templates/lib/controller/_volumeMounts.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								library/common/templates/lib/controller/_volumeMounts.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
|  | ||||
| {{/* | ||||
| Volumes included by the controller. | ||||
| */}} | ||||
| {{- define "common.controller.volumeMounts" -}} | ||||
| {{- range $index, $PVC := .Values.persistence }} | ||||
| {{- if and ( $PVC.enabled ) ( $PVC.mountPath ) }} | ||||
| - mountPath: {{ $PVC.mountPath }} | ||||
|   name: {{ $index }} | ||||
| {{- if $PVC.subPath }} | ||||
|   subPath: {{ $PVC.subPath }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
|  | ||||
| {{ range $name, $dmm := .Values.deviceMounts }} | ||||
| {{- if $dmm.enabled -}} | ||||
| {{ if $dmm.name }} | ||||
|   {{ $name = $dmm.name }} | ||||
| {{ end }} | ||||
| - name: devicemount-{{ $name }} | ||||
|   mountPath: {{ $dmm.devicePath }} | ||||
|   {{ if $dmm.subPath }} | ||||
|   subPath: {{ $dmm.subPath }} | ||||
|   {{ end }} | ||||
| {{- end -}} | ||||
| {{ end }} | ||||
|  | ||||
| {{ range $name, $csm := .Values.customStorage }} | ||||
| {{- if $csm.enabled -}} | ||||
| {{ if $csm.name }} | ||||
|   {{ $name = $csm.name }} | ||||
| {{ end }} | ||||
| - name: customstorage-{{ $name }} | ||||
|   mountPath: {{ $csm.mountPath }} | ||||
|   {{ if $csm.subPath }} | ||||
|   subPath: {{ $csm.subPath }} | ||||
|   {{ end }} | ||||
|   {{ if $csm.readOnly }} | ||||
|   readOnly: {{ $csm.readOnly }} | ||||
|   {{ end }} | ||||
| {{- end -}} | ||||
| {{ end }} | ||||
|  | ||||
|  | ||||
| {{- if .Values.additionalVolumeMounts }} | ||||
|   {{- toYaml .Values.additionalVolumeMounts | nindent 0 }} | ||||
| {{- end }} | ||||
|  | ||||
|  | ||||
| {{- if eq .Values.controllerType "statefulset"  }} | ||||
| {{- range $index, $vct := .Values.volumeClaimTemplates }} | ||||
| - mountPath: {{ $vct.mountPath }} | ||||
|   name: {{ $vct.name }} | ||||
| {{- if $vct.subPath }} | ||||
|   subPath: {{ $vct.subPath }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- end -}} | ||||
							
								
								
									
										84
									
								
								library/common/templates/lib/controller/_volumes.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								library/common/templates/lib/controller/_volumes.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| {{/* | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
|  | ||||
| `SPDX-License-Identifier: Apache-2.0` | ||||
|  | ||||
| This file is considered to be modified by the TrueCharts Project. | ||||
| */}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Volumes included by the controller. | ||||
| */}} | ||||
| {{- define "common.controller.volumes" -}} | ||||
| {{- range $index, $persistence := .Values.persistence }} | ||||
| {{- if $persistence.enabled }} | ||||
| - name: {{ $index }} | ||||
| {{- if $persistence.existingClaim }} | ||||
| {{- /* Always prefer an existingClaim if that is set */}} | ||||
|   persistentVolumeClaim: | ||||
|     claimName: {{ $persistence.existingClaim }} | ||||
| {{- else -}} | ||||
|   {{- if $persistence.emptyDir -}} | ||||
|   {{- /* Always prefer an emptyDir next if that is set */}} | ||||
|   emptyDir: {} | ||||
|   {{- else -}} | ||||
|   {{- /* Otherwise refer to the PVC name */}} | ||||
|   persistentVolumeClaim: | ||||
|     {{- if $persistence.nameOverride }} | ||||
|     claimName: {{ $persistence.nameOverride }} | ||||
|     {{- else if $persistence.nameSuffix }} | ||||
|     claimName: {{ printf "%s-%s" (include "common.names.fullname" $) $persistence.nameSuffix }} | ||||
|     {{- else }} | ||||
|     claimName: {{ printf "%s-%s" (include "common.names.fullname" $) $index }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- range $name, $dm := .Values.deviceMounts -}} | ||||
| {{ if $dm.enabled }} | ||||
| {{ if $dm.name }} | ||||
| {{ $name = $dm.name }} | ||||
| {{ end }} | ||||
| - name: devicemount-{{ $name }} | ||||
|   {{ if $dm.emptyDir }} | ||||
|   emptyDir: {} | ||||
|   {{- else -}} | ||||
|   hostPath: | ||||
|     path: {{ required "hostPath not set" $dm.devicePath }} | ||||
|   {{ end }} | ||||
| {{ end }} | ||||
| {{- end -}} | ||||
|  | ||||
| {{- range $name, $cs := .Values.customStorage -}} | ||||
| {{ if $cs.enabled }} | ||||
| {{ if $cs.name }} | ||||
| {{ $name = $cs.name }} | ||||
| {{ end }} | ||||
| - name: customstorage-{{ $name }} | ||||
|   {{ if $cs.emptyDir }} | ||||
|   emptyDir: {} | ||||
|   {{- else -}} | ||||
|   hostPath: | ||||
|     path: {{ required "hostPath not set" $cs.hostPath }} | ||||
|   {{ end }} | ||||
| {{ end }} | ||||
| {{- end -}} | ||||
|  | ||||
|  | ||||
| {{- if .Values.additionalVolumes }} | ||||
|   {{- toYaml .Values.additionalVolumes | nindent 0 }} | ||||
| {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										32
									
								
								library/common/templates/lib/resources/_certHelpers.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								library/common/templates/lib/resources/_certHelpers.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| {{/* | ||||
| Retrieve true/false if certificate is configured | ||||
| */}} | ||||
| {{- define "common.resources.cert.available" -}} | ||||
| {{- if .ObjectValues.certHolder.certificate -}} | ||||
| {{- $values := (. | mustDeepCopy) -}} | ||||
| {{- $_ := set $values "commonCertOptions" (dict "certKeyName" $values.ObjectValues.certHolder.certificate) -}} | ||||
| {{- template "common.resources.cert_present" $values -}} | ||||
| {{- else -}} | ||||
| {{- false -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Retrieve public key of certificate | ||||
| */}} | ||||
| {{- define "common.resources.cert.publicKey" -}} | ||||
| {{- $values := (. | mustDeepCopy) -}} | ||||
| {{- $_ := set $values "commonCertOptions" (dict "certKeyName" $values.ObjectValues.certHolder.certificate "publicKey" true) -}} | ||||
| {{ include "common.resources.cert" $values }} | ||||
| {{- end -}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Retrieve private key of certificate | ||||
| */}} | ||||
| {{- define "common.resources.cert.privateKey" -}} | ||||
| {{- $values := (. | mustDeepCopy) -}} | ||||
| {{- $_ := set $values "commonCertOptions" (dict "certKeyName" $values.ObjectValues.certHolder.certificate) -}} | ||||
| {{ include "common.resources.cert" $values }} | ||||
| {{- end -}} | ||||
							
								
								
									
										25
									
								
								library/common/templates/lib/resources/_certSecret.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								library/common/templates/lib/resources/_certSecret.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| {{- define "common.resources.cert.secret" -}} | ||||
|  | ||||
|  | ||||
| {{- $secretName := include "common.names.fullname" . -}} | ||||
|  | ||||
| {{- if .ObjectValues.certHolder -}} | ||||
|   {{- if hasKey .ObjectValues.certHolder "nameSuffix" -}} | ||||
|     {{- $secretName = printf "%v-%v" $secretName .ObjectValues.certHolder.nameSuffix -}} | ||||
|   {{ end -}} | ||||
| {{ else }} | ||||
|   {{- $_ := set $ "ObjectValues" (dict "certHolder" .Values) -}} | ||||
| {{ end -}} | ||||
|  | ||||
| {{- if eq (include "common.resources.cert.available" $ ) "true" -}} | ||||
| apiVersion: v1 | ||||
| kind: Secret | ||||
| metadata: | ||||
|   name: {{ $secretName }} | ||||
|   labels: {{ include "common.labels" . | nindent 4 }} | ||||
| type: kubernetes.io/tls | ||||
| data: | ||||
|   tls.crt: {{ (include "common.resources.cert.publicKey" $ ) | toString | b64enc | quote }} | ||||
|   tls.key: {{ (include "common.resources.cert.privateKey" $ ) | toString | b64enc | quote }} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
							
								
								
									
										24
									
								
								library/common/templates/lib/resources/_certs.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								library/common/templates/lib/resources/_certs.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| {{/* | ||||
| Retrieve true/false if certificate is available in ixCertificates | ||||
| */}} | ||||
| {{- define "common.resources.cert_present" -}} | ||||
| {{- $values := . -}} | ||||
| {{- hasKey $values.Values.ixCertificates ($values.commonCertOptions.certKeyName | toString) -}} | ||||
| {{- end -}} | ||||
|  | ||||
|  | ||||
| {{/* | ||||
| Retrieve certificate from variable name | ||||
| */}} | ||||
| {{- define "common.resources.cert" -}} | ||||
| {{- $values := . -}} | ||||
| {{- $certKey := ($values.commonCertOptions.certKeyName | toString) -}} | ||||
| {{- if hasKey $values.Values.ixCertificates $certKey -}} | ||||
| {{- $cert := get $values.Values.ixCertificates $certKey -}} | ||||
| {{- if $values.commonCertOptions.publicKey -}} | ||||
| {{ $cert.certificate }} | ||||
| {{- else -}} | ||||
| {{ $cert.privatekey }} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
| {{- end -}} | ||||
							
								
								
									
										64
									
								
								library/common/templates/lib/resources/_portal_config.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								library/common/templates/lib/resources/_portal_config.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| {{- define "common.resources.portal" -}} | ||||
|  | ||||
| {{- if .Values.portal }} | ||||
| {{- if .Values.portal.enabled }} | ||||
| {{- $host := "$node_ip" }} | ||||
| {{- $port := 443 }} | ||||
| {{- $protocol := "https" }} | ||||
| {{- $portProtocol := "" }} | ||||
|  | ||||
| {{- if hasKey .Values "ingress" }} | ||||
|   {{- if hasKey .Values.ingress "main" -}} | ||||
|     {{- if .Values.ingress.main.host }} | ||||
|         {{- $host = .Values.ingress.main.host }} | ||||
|     {{- else }} | ||||
|     {{- range .Values.ingress.main.hosts }} | ||||
|         {{- $host = ( .host | quote ) }} | ||||
|     {{- end }} | ||||
|         {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if and ( .Values.portal.ingressPort ) ( ne $host "$node_ip" ) }} | ||||
|   {{- $port = .Values.portal.ingressPort }} | ||||
| {{- else  if and ( eq $host "$node_ip" ) ( hasKey .Values "services" ) }} | ||||
|   {{- if hasKey .Values.services "main" }} | ||||
|     {{- if and (hasKey .Values.services.main.port "nodePort" ) ( eq .Values.services.main.type "NodePort" ) }} | ||||
|       {{- $port = .Values.services.main.port.nodePort }} | ||||
|       {{- if or ( eq .Values.services.main.port.protocol "HTTP" ) ( eq .Values.services.main.port.protocol "HTTPS" ) }} | ||||
|         {{- $portProtocol = .Values.services.main.port.protocol }} | ||||
|       {{- end }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if and ( $portProtocol ) ( eq $host "$node_ip" ) }} | ||||
|   {{- $protocol = $portProtocol }} | ||||
| {{- else if and ( ne $host "$node_ip" ) }} | ||||
|   {{- if .Values.ingress.main.certType }} | ||||
|     {{- if eq .Values.ingress.main.certType "" }} | ||||
|       {{- $protocol = "http" }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
|  | ||||
| {{- if and ( .Values.portal.host ) ( eq $host "$node_ip" ) }} | ||||
|   {{- $host = .Values.portal.host }} | ||||
| {{- end }} | ||||
|  | ||||
| --- | ||||
|  | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: portal | ||||
|   labels: {{ include "common.labels" . | nindent 4 }} | ||||
| data: | ||||
|   protocol: {{ $protocol }} | ||||
|   host: {{ $host }} | ||||
|   port: {{ $port | quote }} | ||||
|   url: {{ printf "%v%v%v%v%v" $protocol "://" $host ":" $port }} | ||||
|  | ||||
| {{- end }} | ||||
| {{- end }} | ||||
| {{- end -}} | ||||
							
								
								
									
										77
									
								
								library/common/templates/lib/storage/_mountPermissions.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								library/common/templates/lib/storage/_mountPermissions.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| {{/* | ||||
| This template serves as the blueprint for the mountPermissions job that is run | ||||
| before chart installation. | ||||
| */}} | ||||
| {{- define "common.storage.permissions" -}} | ||||
| {{- if .Values.fixMountPermissions }} | ||||
|  | ||||
|  | ||||
| {{- $jobName := include "common.names.fullname" . -}} | ||||
| {{- $values := .Values -}} | ||||
|  | ||||
|  | ||||
| {{- print "---" | nindent 0 -}} | ||||
|  | ||||
| apiVersion: batch/v1 | ||||
| kind: Job | ||||
| metadata: | ||||
|   name: {{ $jobName }}-autopermissions | ||||
|   labels: | ||||
|     {{- include "common.labels" . | nindent 4 }} | ||||
|   annotations: | ||||
|    "helm.sh/hook": pre-install,pre-upgrade | ||||
|    "helm.sh/hook-weight": "-10" | ||||
|    "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation | ||||
| spec: | ||||
|   template: | ||||
|     metadata: | ||||
|     spec: | ||||
|       restartPolicy: Never | ||||
|       containers: | ||||
|         - name: set-mount-permissions | ||||
|           image: "alpine:3.3" | ||||
|           command: | ||||
|           - /bin/sh | ||||
|           - -c | ||||
|           - | {{ range $index, $cs := .Values.customStorage}}{{ if and $cs.enabled $cs.setPermissions}} | ||||
|             chown -R {{ if eq $values.podSecurityContext.runAsNonRoot false }}{{ print $values.PUID }}{{ else }}{{ print $values.podSecurityContext.runAsUser }}{{ end }}:{{ print $values.podSecurityContext.fsGroup }}  {{ print $cs.mountPath }}{{ end }}{{ end }} | ||||
|           #args: | ||||
|           # | ||||
|           #securityContext: | ||||
|           # | ||||
|           volumeMounts: | ||||
|           {{ range $name, $csm := .Values.customStorage }} | ||||
|           {{- if $csm.enabled -}} | ||||
|           {{- if $csm.setPermissions -}} | ||||
|           {{ if $csm.name }} | ||||
|             {{ $name = $csm.name }} | ||||
|           {{ end }} | ||||
|           - name: customstorage-{{ $name }} | ||||
|             mountPath: {{ $csm.mountPath }} | ||||
|             {{ if $csm.subPath }} | ||||
|             subPath: {{ $csm.subPath }} | ||||
|             {{ end }} | ||||
|           {{- end -}} | ||||
|           {{- end -}} | ||||
|           {{ end }} | ||||
|       volumes: | ||||
|       {{- range $name, $cs := .Values.customStorage -}} | ||||
|       {{ if $cs.enabled }} | ||||
|       {{ if $cs.setPermissions }} | ||||
|       {{ if $cs.name }} | ||||
|       {{ $name = $cs.name }} | ||||
|       {{ end }} | ||||
|       - name: customstorage-{{ $name }} | ||||
|         {{ if $cs.emptyDir }} | ||||
|         emptyDir: {} | ||||
|         {{- else -}} | ||||
|         hostPath: | ||||
|           path: {{ required "hostPath not set" $cs.hostPath }} | ||||
|         {{ end }} | ||||
|       {{ end }} | ||||
|       {{ end }} | ||||
|       {{- end -}} | ||||
|  | ||||
|  | ||||
| {{- end }} | ||||
| {{- end }} | ||||
							
								
								
									
										314
									
								
								library/common/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								library/common/values.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,314 @@ | ||||
| # type: options are deployment, daemonset or statefulset | ||||
| controllerType: deployment | ||||
| # Set annotations on the deployment/statefulset/daemonset | ||||
| controllerAnnotations: {} | ||||
| # Set labels on the deployment/statefulset/daemonset | ||||
| controllerLabels: {} | ||||
|  | ||||
| replicas: 1 | ||||
| strategy: | ||||
|   ## For Deployments, valid values are Recreate and RollingUpdate | ||||
|   ## For StatefulSets, valid values are OnDelete and RollingUpdate | ||||
|   ## DaemonSets ignore this | ||||
|   type: RollingUpdate | ||||
|  | ||||
| # Override the default command | ||||
| command: [] | ||||
| # Override the default args | ||||
| args: [] | ||||
|  | ||||
| nameOverride: "" | ||||
| fullnameOverride: "" | ||||
|  | ||||
| # Set annotations on the pod | ||||
| podAnnotations: {} | ||||
|  | ||||
| serviceAccount: | ||||
|   # Specifies whether a service account should be created | ||||
|   create: false | ||||
|   # Annotations to add to the service account | ||||
|   annotations: {} | ||||
|   # The name of the service account to use. | ||||
|   # If not set and create is true, a name is generated using the fullname template | ||||
|   name: "" | ||||
|  | ||||
|  | ||||
| env: {} | ||||
|   # TZ: UTC | ||||
|  | ||||
| ## Variables with values set from templates, example | ||||
| ## With a release name of: demo, the example env value will be: demo-admin | ||||
| envTpl: {} | ||||
|   # TEMPLATE_VALUE: "{{ .Release.Name }}-admin" | ||||
|  | ||||
| ## Variables with values from (for example) the Downward API | ||||
| ## See https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ | ||||
| envValueFrom: {} | ||||
|   # NODE_NAME: | ||||
|   #   fieldRef: | ||||
|   #     fieldPath: spec.nodeName | ||||
|  | ||||
| envFrom: [] | ||||
| # - configMapRef: | ||||
| #     name: config-map-name | ||||
| # - secretRef: | ||||
| #     name: secret-name | ||||
|  | ||||
| # Custom priority class for different treatment by the scheduler | ||||
| # priorityClassName: system-node-critical | ||||
|  | ||||
| # Allow specifying a custom scheduler name | ||||
| # schedulerName: awkward-dangerous-scheduler | ||||
|  | ||||
| # Allow specifying explicit hostname setting | ||||
| # hostname: | ||||
|  | ||||
| # When using hostNetwork make sure you set dnsPolicy to ClusterFirstWithHostNet | ||||
| hostNetwork: false | ||||
|  | ||||
| ## Default get based on hostNetwork setting | ||||
| # dnsPolicy: ClusterFirst | ||||
|  | ||||
| # Optional DNS settings, configuring the ndots option may resolve | ||||
| # nslookup issues on some Kubernetes setups. | ||||
| # dnsConfig: | ||||
| #   options: | ||||
| #     - name: ndots | ||||
| #       value: "1" | ||||
|  | ||||
| # Enable/disable the generation of environment variables for services. | ||||
| # See https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#accessing-the-service | ||||
| # for more information. | ||||
| enableServiceLinks: true | ||||
|  | ||||
| # Configure the Security Context for the Pod | ||||
| podSecurityContext: | ||||
|   runAsNonRoot: true | ||||
|   runAsUser: 568 | ||||
|   runAsGroup: 568 | ||||
|   fsGroup: 568 | ||||
|   fsGroupChangePolicy: "OnRootMismatch" | ||||
|  | ||||
| # Configure the Security Context for the main container | ||||
| securityContext: {} | ||||
|  | ||||
|  | ||||
| initContainers: [] | ||||
|  | ||||
| additionalContainers: [] | ||||
|  | ||||
| ## Probes configuration | ||||
| probes: | ||||
|   liveness: | ||||
|     enabled: true | ||||
|     ## Set this to true if you wish to specify your own livenessProbe | ||||
|     custom: false | ||||
|     ## The spec field contains the values for the default livenessProbe. | ||||
|     ## If you selected custom: true, this field holds the definition of the livenessProbe. | ||||
|     spec: | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 10 | ||||
|       failureThreshold: 5 | ||||
|  | ||||
|   readiness: | ||||
|     enabled: true | ||||
|     ## Set this to true if you wish to specify your own readinessProbe | ||||
|     custom: false | ||||
|     ## The spec field contains the values for the default readinessProbe. | ||||
|     ## If you selected custom: true, this field holds the definition of the readinessProbe. | ||||
|     spec: | ||||
|       initialDelaySeconds: 0 | ||||
|       periodSeconds: 10 | ||||
|       timeoutSeconds: 10 | ||||
|       failureThreshold: 5 | ||||
|  | ||||
|   startup: | ||||
|     enabled: true | ||||
|     ## Set this to true if you wish to specify your own startupProbe | ||||
|     custom: false | ||||
|     ## The spec field contains the values for the default startupProbe. | ||||
|     ## If you selected custom: true, this field holds the definition of the startupProbe. | ||||
|     spec: | ||||
|       initialDelaySeconds: 0 | ||||
|       timeoutSeconds: 10 | ||||
|       ## This means it has a maximum of 5*30=150 seconds to start up before it fails | ||||
|       periodSeconds: 10 | ||||
|       failureThreshold: 30 | ||||
|  | ||||
| services: | ||||
|   main: | ||||
|     enabled: true | ||||
|     type: ClusterIP | ||||
|     ## Specify the default port information | ||||
|     port: | ||||
|       port: | ||||
|       ## name defaults to http | ||||
|       name: | ||||
|       protocol: TCP | ||||
|       ## Specify a service targetPort if you wish to differ the service port from the application port. | ||||
|       ## If targetPort is specified, this port number is used in the container definition instead of | ||||
|       ## service.port.port. Therefore named ports are not supported for this field. | ||||
|       targetPort: | ||||
|       ## Specify the nodePort value for the LoadBalancer and NodePort service types. | ||||
|       ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport | ||||
|       ## | ||||
|       # nodePort: | ||||
|     additionalPorts: [] | ||||
|  | ||||
|     ## Provide any additional annotations which may be required. This can be used to | ||||
|     ## set the LoadBalancer service type to internal only. | ||||
|     ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer | ||||
|     ## | ||||
|     annotations: {} | ||||
|     labels: {} | ||||
|  | ||||
| additionalServices: [] | ||||
| # - enabled: false | ||||
| #   nameSuffix: api | ||||
| #   type: ClusterIP | ||||
| #   # Specify the default port information | ||||
| #   port: | ||||
| #     port: | ||||
| #     # name defaults to http | ||||
| #     name: | ||||
| #     protocol: TCP | ||||
| #     # targetPort defaults to http | ||||
| #     targetPort: | ||||
| #     # nodePort: | ||||
| #   additionalPorts: [] | ||||
| #   annotations: {} | ||||
| #   labels: {} | ||||
|  | ||||
| # ingress: | ||||
| #   main: | ||||
| #     enabled: false | ||||
| #     # Used when including ingress using {{ include "common.ingress" . }} | ||||
| #     type: "HTTP" | ||||
| #     entrypoint: "websecure" | ||||
| #     certType: "" | ||||
| #     ## Optional: defaults to IngressName | ||||
| #     serviceName: "" | ||||
| #     ## Optional: Almost never needed | ||||
| #     serviceKind: "" | ||||
| #     ## Optional: defaults to either service port | ||||
| #     servicePort: 80 | ||||
| #     annotations: {} | ||||
| #       # kubernetes.io/ingress.class: nginx | ||||
| #       # kubernetes.io/tls-acme: "true" | ||||
| #     labels: {} | ||||
| #     hosts: | ||||
| #       - host: chart-example.local | ||||
| #         path: / | ||||
| # additionalIngresses: [] | ||||
| #  - enabled: false | ||||
| #    nameSuffix: "api" | ||||
| #    annotations: {} | ||||
| #    # kubernetes.io/ingress.class: nginx | ||||
| #    # kubernetes.io/tls-acme: "true" | ||||
| #    labels: {} | ||||
| #    hosts: | ||||
| #      - host: chart-example.local | ||||
| #        paths: | ||||
| #          - path: /api | ||||
| #            # Ignored if not kubeVersion >= 1.14-0 | ||||
| #            pathType: Prefix | ||||
| #    tls: [] | ||||
| #    #  - secretName: chart-example-tls | ||||
| #    #    hosts: | ||||
| #    #      - chart-example.local | ||||
|  | ||||
| persistence: | ||||
|   config: | ||||
|     enabled: false | ||||
|     mountPath: /config | ||||
|     ## configuration data Persistent Volume Storage Class | ||||
|     ## If defined, storageClassName: <storageClass> | ||||
|     ## If set to "-", storageClassName: "", which disables dynamic provisioning | ||||
|     ## If undefined (the default) or set to null, no storageClassName spec is | ||||
|     ##   set, choosing the default provisioner.  (gp2 on AWS, standard on | ||||
|     ##   GKE, AWS & OpenStack) | ||||
|     ## | ||||
|     # storageClass: "-" | ||||
|     ## | ||||
|     ## If you want to reuse an existing claim, you can pass the name of the PVC using | ||||
|     ## the existingClaim variable | ||||
|     # existingClaim: your-claim | ||||
|     # subPath: some-subpath | ||||
|     accessMode: ReadWriteOnce | ||||
|     size: 1Gi | ||||
|     ## Set to true to retain the PVC upon helm uninstall | ||||
|     skipuninstall: false | ||||
|  | ||||
|   # Create an emptyDir volume to share between all containers | ||||
|   shared: | ||||
|     enabled: false | ||||
|     emptyDir: true | ||||
|     mountPath: /shared | ||||
|  | ||||
| additionalVolumes: [] | ||||
|  | ||||
| additionalVolumeMounts: [] | ||||
|  | ||||
| volumeClaimTemplates: [] | ||||
| # Used in statefulset to create individual disks for each instance | ||||
| # - name: data | ||||
| #   mountPath: /data | ||||
| #   accessMode: "ReadWriteOnce" | ||||
| #   size: 1Gi | ||||
| # - name: backup | ||||
| #   mountPath: /backup | ||||
| #   subPath: theSubPath | ||||
| #   accessMode: "ReadWriteOnce" | ||||
| #   size: 2Gi | ||||
| #   storageClass: cheap-storage-class | ||||
|  | ||||
| nodeSelector: {} | ||||
|  | ||||
| affinity: {} | ||||
|  | ||||
| tolerations: [] | ||||
|  | ||||
| hostAliases: [] | ||||
| # Use hostAliases to add custom entries to /etc/hosts - mapping IP addresses to hostnames. | ||||
| # ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ | ||||
| # - ip: "192.168.1.100" | ||||
| #   hostnames: | ||||
| #   - "example.com" | ||||
| #   - "www.example.com" | ||||
|  | ||||
| resources: {} | ||||
| # We usually recommend not to specify default resources and to leave this as a conscious | ||||
| # choice for the user. This also increases chances charts run on environments with little | ||||
| # resources, such as Minikube. If you do want to specify resources, uncomment the following | ||||
| # lines, adjust them as necessary, and remove the curly braces after 'resources:'. | ||||
| # limits: | ||||
| #   cpu: 100m | ||||
| #   memory: 128Mi | ||||
| # requests: | ||||
| #   cpu: 100m | ||||
| #   memory: 128Mi | ||||
|  | ||||
| ## TrueCharts Specific | ||||
|  | ||||
| PUID: 568 | ||||
| PGID: 568 | ||||
| UMASK: "002" | ||||
| fixMountPermissions: true | ||||
|  | ||||
| # deviceMounts: | ||||
| #   config: | ||||
| #     enabled: false | ||||
| #     emptyDir: false | ||||
| #     hostPath: "/config" | ||||
| #     setPermissions: true | ||||
|  | ||||
| # customStorage: | ||||
| #   - name: "data" | ||||
| #     enabled: false | ||||
| #     emptyDir: false | ||||
| #     mountPath: "/data" | ||||
| #     subPath: some-subpath | ||||
| #     hostPath: "" | ||||
| #     readOnly: false | ||||
| #     setPermissions: true | ||||
		Reference in New Issue
	
	Block a user