mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-04 08:57:04 +02:00
feat(common): Release version 2.0.0-beta.1 (#173)
This commit is contained in:
parent
19767d668c
commit
7b6ee00be6
189 changed files with 3110 additions and 3023 deletions
|
@ -2,9 +2,12 @@
|
|||
Return the enabled ports for a given Service object.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.enabledPorts" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $serviceObject := .serviceObject -}}
|
||||
|
||||
{{- $enabledPorts := dict -}}
|
||||
|
||||
{{- range $name, $port := .values.ports -}}
|
||||
{{- range $name, $port := $serviceObject.ports -}}
|
||||
{{- if kindIs "map" $port -}}
|
||||
{{- $portEnabled := true -}}
|
||||
{{- if hasKey $port "enabled" -}}
|
||||
|
|
|
@ -2,17 +2,22 @@
|
|||
Return the enabled services.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.enabledServices" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $enabledServices := dict -}}
|
||||
{{- range $name, $service := .Values.service -}}
|
||||
|
||||
{{- range $name, $service := $rootContext.Values.service -}}
|
||||
{{- if kindIs "map" $service -}}
|
||||
{{- /* Enable Service by default, but allow override */ -}}
|
||||
{{- $serviceEnabled := true -}}
|
||||
{{- if hasKey $service "enabled" -}}
|
||||
{{- $serviceEnabled = $service.enabled -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $serviceEnabled -}}
|
||||
{{- $_ := set $enabledServices $name . -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $enabledServices | toYaml -}}
|
||||
{{- end -}}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
{{/*
|
||||
Return a service Object by its Identifier.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.getByIdentifier" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $identifier := .id -}}
|
||||
|
||||
{{- range $name, $serviceValues := $rootContext.Values.service -}}
|
||||
{{- if eq $name $identifier -}}
|
||||
{{- include "bjw-s.common.lib.service.valuesToObject" (dict "rootContext" $rootContext "id" $identifier "values" $serviceValues) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -1,18 +0,0 @@
|
|||
{{/*
|
||||
Return the primary service object
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.primary" -}}
|
||||
{{- $enabledServices := (include "bjw-s.common.lib.service.enabledServices" $ | fromYaml ) }}
|
||||
|
||||
{{- $result := "" -}}
|
||||
{{- range $name, $service := $enabledServices -}}
|
||||
{{- if and (hasKey $service "primary") $service.primary -}}
|
||||
{{- $result = $name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not $result -}}
|
||||
{{- $result = keys $enabledServices | first -}}
|
||||
{{- end -}}
|
||||
{{- $result -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,30 @@
|
|||
{{/*
|
||||
Return the primary service object for a controller
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.primaryForController" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $controllerIdentifier := .controllerIdentifier -}}
|
||||
|
||||
{{- $identifier := "" -}}
|
||||
{{- $result := dict -}}
|
||||
|
||||
{{- /* Loop over all enabled services */ -}}
|
||||
{{- $enabledServices := (include "bjw-s.common.lib.service.enabledServices" (dict "rootContext" $rootContext) | fromYaml ) }}
|
||||
{{- if $enabledServices -}}
|
||||
{{- range $name, $service := $enabledServices -}}
|
||||
{{- /* Determine the Service that has been marked as primary */ -}}
|
||||
{{- if and (hasKey $service "primary") $service.primary -}}
|
||||
{{- $identifier = $name -}}
|
||||
{{- $result = $service -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Return the first Service if none has been explicitly marked as primary */ -}}
|
||||
{{- if not $result -}}
|
||||
{{- $identifier = keys $enabledServices | first -}}
|
||||
{{- $result = get $enabledServices $identifier -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- include "bjw-s.common.lib.service.valuesToObject" (dict "rootContext" $rootContext "id" $identifier "values" $result) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -2,17 +2,24 @@
|
|||
Return the primary port for a given Service object.
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.primaryPort" -}}
|
||||
{{- $enabledPorts := (include "bjw-s.common.lib.service.enabledPorts" . | fromYaml) }}
|
||||
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $serviceObject := .serviceObject -}}
|
||||
{{- $result := "" -}}
|
||||
|
||||
{{- /* Loop over all enabled ports */ -}}
|
||||
{{- $enabledPorts := include "bjw-s.common.lib.service.enabledPorts" (dict "rootContext" $rootContext "serviceObject" $serviceObject) | fromYaml }}
|
||||
{{- range $name, $port := $enabledPorts -}}
|
||||
{{- /* Determine the port that has been marked as primary */ -}}
|
||||
{{- if and (hasKey $port "primary") $port.primary -}}
|
||||
{{- $result = $name -}}
|
||||
{{- $result = $port -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Return the first port if none has been explicitly marked as primary */ -}}
|
||||
{{- if not $result -}}
|
||||
{{- $result = keys $enabledPorts | first -}}
|
||||
{{- $firstPortKey := keys $enabledPorts | first -}}
|
||||
{{- $result = get $enabledPorts $firstPortKey -}}
|
||||
{{- end -}}
|
||||
{{- $result -}}
|
||||
|
||||
{{- $result | toYaml -}}
|
||||
{{- end -}}
|
||||
|
|
37
charts/library/common/templates/lib/service/_validate.tpl
Normal file
37
charts/library/common/templates/lib/service/_validate.tpl
Normal file
|
@ -0,0 +1,37 @@
|
|||
{{/*
|
||||
Validate Service values
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.validate" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $serviceObject := .object -}}
|
||||
|
||||
{{- if empty (get $serviceObject "controller") -}}
|
||||
{{- fail (printf "controller is required for Service. (service: %s)" $serviceObject.identifier) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Validate Service type */ -}}
|
||||
{{- $validServiceTypes := (list "ClusterIP" "LoadBalancer" "NodePort" "ExternalName" "ExternalIP") -}}
|
||||
{{- if and $serviceObject.type (not (mustHas $serviceObject.type $validServiceTypes)) -}}
|
||||
{{- fail (
|
||||
printf "invalid service type \"%s\" for Service with key \"%s\". Allowed values are [%s]"
|
||||
$serviceObject.type
|
||||
$serviceObject.identifier
|
||||
(join ", " $validServiceTypes)
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if ne $serviceObject.type "ExternalName" -}}
|
||||
{{- $enabledPorts := include "bjw-s.common.lib.service.enabledPorts" (dict "rootContext" $rootContext "serviceObject" $serviceObject) | fromYaml }}
|
||||
{{- /* Validate at least one port is enabled */ -}}
|
||||
{{- if not $enabledPorts -}}
|
||||
{{- fail (printf "no ports are enabled for Service with key \"%s\"" $serviceObject.identifier) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $name, $port := $enabledPorts -}}
|
||||
{{- /* Validate a port number is configured */ -}}
|
||||
{{- if not $port.port -}}
|
||||
{{- fail (printf "no port number is configured for port \"%s\" under Service with key \"%s\"" $name $serviceObject.identifier) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
|
@ -0,0 +1,24 @@
|
|||
{{/*
|
||||
Convert Service values to an object
|
||||
*/}}
|
||||
{{- define "bjw-s.common.lib.service.valuesToObject" -}}
|
||||
{{- $rootContext := .rootContext -}}
|
||||
{{- $identifier := .id -}}
|
||||
{{- $objectValues := .values -}}
|
||||
|
||||
{{- /* Determine and inject the Service name */ -}}
|
||||
{{- $objectName := (include "bjw-s.common.lib.chart.names.fullname" $rootContext) -}}
|
||||
|
||||
{{- if $objectValues.nameOverride -}}
|
||||
{{- $objectName = printf "%s-%s" $objectName $objectValues.nameOverride -}}
|
||||
{{- else -}}
|
||||
{{- if not $objectValues.primary -}}
|
||||
{{- $objectName = printf "%s-%s" $objectName $identifier -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $_ := set $objectValues "name" $objectName -}}
|
||||
{{- $_ := set $objectValues "identifier" $identifier -}}
|
||||
|
||||
{{- /* Return the Service object */ -}}
|
||||
{{- $objectValues | toYaml -}}
|
||||
{{- end -}}
|
Loading…
Add table
Add a link
Reference in a new issue