mirror of
				https://github.com/TeamPiped/Piped-Kubernetes.git
				synced 2024-08-14 23:57:15 +00:00 
			
		
		
		
	Progress
This commit is contained in:
		
							parent
							
								
									73ac9b4437
								
							
						
					
					
						commit
						52ed0d9374
					
				
					 41 changed files with 2439 additions and 269 deletions
				
			
		
							
								
								
									
										186
									
								
								charts/apps/piped/templates/frontend/lib/_service.tpl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										186
									
								
								charts/apps/piped/templates/frontend/lib/_service.tpl
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,186 @@ | |||
| {{/* | ||||
| Renders the Service objects required by the chart. | ||||
| */}} | ||||
| {{- define "frontend.service" -}} | ||||
|   {{- /* Generate named services as required */ -}} | ||||
|   {{- range $name, $service := .Values.frontend.service }} | ||||
|     {{- if $service.enabled -}} | ||||
|       {{- $serviceValues := $service -}} | ||||
| 
 | ||||
|       {{/* set the default nameOverride to the service name */}} | ||||
|       {{- if and (not $serviceValues.nameOverride) (ne $name (include "frontend.service.primary" $)) -}} | ||||
|         {{- $_ := set $serviceValues "nameOverride" $name -}} | ||||
|       {{ end -}} | ||||
| 
 | ||||
|       {{- $_ := set $ "ObjectValues" (dict "service" $serviceValues) -}} | ||||
|       {{- include "frontend.classes.service" $ }} | ||||
|     {{- end }} | ||||
|   {{- end }} | ||||
| {{- end }} | ||||
| 
 | ||||
| {{/* | ||||
| Return the primary service object | ||||
| */}} | ||||
| {{- define "frontend.service.primary" -}} | ||||
|   {{- $enabledServices := dict -}} | ||||
|   {{- range $name, $service := .Values.frontend.service -}} | ||||
|     {{- if $service.enabled -}} | ||||
|       {{- $_ := set $enabledServices $name . -}} | ||||
|     {{- end -}} | ||||
|   {{- end -}} | ||||
| 
 | ||||
|   {{- $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 -}} | ||||
| 
 | ||||
| {{/* | ||||
| Return the primary port for a given Service object. | ||||
| */}} | ||||
| {{- define "frontend.classes.service.ports.primary" -}} | ||||
|   {{- $enabledPorts := dict -}} | ||||
|   {{- range $name, $port := .values.ports -}} | ||||
|     {{- if $port.enabled -}} | ||||
|       {{- $_ := set $enabledPorts $name . -}} | ||||
|     {{- end -}} | ||||
|   {{- end -}} | ||||
| 
 | ||||
|   {{- if eq 0 (len $enabledPorts) }} | ||||
|     {{- fail (printf "No ports are enabled for service \"%s\"!" .serviceName) }} | ||||
|   {{- end }} | ||||
| 
 | ||||
|   {{- $result := "" -}} | ||||
|   {{- range $name, $port := $enabledPorts -}} | ||||
|     {{- if and (hasKey $port "primary") $port.primary -}} | ||||
|       {{- $result = $name -}} | ||||
|     {{- end -}} | ||||
|   {{- end -}} | ||||
| 
 | ||||
|   {{- if not $result -}} | ||||
|     {{- $result = keys $enabledPorts | first -}} | ||||
|   {{- end -}} | ||||
|   {{- $result -}} | ||||
| {{- end -}} | ||||
| 
 | ||||
| {{/* | ||||
| This saves the name of the service in a global variable | ||||
| */}} | ||||
| {{- define "frontend.servicename" -}} | ||||
| {{- $values := .Values.frontend.service -}} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.service -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
| 
 | ||||
| {{- $serviceName := include "frontend.names.fullname" . -}} | ||||
| {{- if and (hasKey $values "nameOverride") $values.nameOverride -}} | ||||
|   {{- $serviceName = printf "%v-%v" $serviceName $values.nameOverride -}} | ||||
| {{ end -}} | ||||
| {{ $serviceName }} | ||||
| {{- end -}} | ||||
| 
 | ||||
| 
 | ||||
| {{/* | ||||
| This template serves as a blueprint for all Service objects that are created | ||||
| within the web. | ||||
| */}} | ||||
| {{- define "frontend.classes.service" -}} | ||||
| {{- $values := .Values.frontend.service -}} | ||||
| {{- if hasKey . "ObjectValues" -}} | ||||
|   {{- with .ObjectValues.service -}} | ||||
|     {{- $values = . -}} | ||||
|   {{- end -}} | ||||
| {{ end -}} | ||||
| 
 | ||||
| {{- $serviceName := include "frontend.names.fullname" . -}} | ||||
| {{- if and (hasKey $values "nameOverride") $values.nameOverride -}} | ||||
|   {{- $serviceName = printf "%v-%v" $serviceName $values.nameOverride -}} | ||||
| {{ end -}} | ||||
| {{- $svcType := $values.type | default "" -}} | ||||
| {{- $primaryPort := get $values.ports (include "frontend.classes.service.ports.primary" (dict "values" $values)) }} | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: piped-frontend | ||||
|   {{- with (merge ($values.labels | default dict) (include "frontend.labels" $ | fromYaml)) }} | ||||
|   labels: {{- toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   annotations: | ||||
|   {{- with (merge ($values.annotations | default dict) (include "frontend.annotations" $ | fromYaml)) }} | ||||
|     {{ 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.loadBalancerSourceRanges }} | ||||
|   loadBalancerSourceRanges: | ||||
|     {{ toYaml $values.loadBalancerSourceRanges | nindent 4 }} | ||||
|   {{- end -}} | ||||
|   {{- else }} | ||||
|   type: {{ $svcType }} | ||||
|   {{- end }} | ||||
|   {{- if $values.externalTrafficPolicy }} | ||||
|   externalTrafficPolicy: {{ $values.externalTrafficPolicy }} | ||||
|   {{- 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 }} | ||||
|   {{- if $values.ipFamilyPolicy }} | ||||
|   ipFamilyPolicy: {{ $values.ipFamilyPolicy }} | ||||
|   {{- end }} | ||||
|   {{- with $values.ipFamilies }} | ||||
|   ipFamilies: | ||||
|     {{ toYaml . | nindent 4 }} | ||||
|   {{- end }} | ||||
|   ports: | ||||
|   {{- range $name, $port := $values.ports }} | ||||
|   {{- if $port.enabled }} | ||||
|   - port: {{ $port.port }} | ||||
|     targetPort: {{ $port.targetPort | default $name }} | ||||
|     {{- if $port.protocol }} | ||||
|     {{- if or ( eq $port.protocol "HTTP" ) ( eq $port.protocol "HTTPS" ) ( eq $port.protocol "TCP" ) }} | ||||
|     protocol: TCP | ||||
|     {{- else }} | ||||
|     protocol: {{ $port.protocol }} | ||||
|     {{- end }} | ||||
|     {{- else }} | ||||
|     protocol: TCP | ||||
|     {{- end }} | ||||
|     name: {{ $name }} | ||||
|     {{- if (and (eq $svcType "NodePort") (not (empty $port.nodePort))) }} | ||||
|     nodePort: {{ $port.nodePort }} | ||||
|     {{ end }} | ||||
|   {{- end }} | ||||
|   {{- end }} | ||||
|   selector: | ||||
|     {{- include "frontend.labels.selectorLabels" . | nindent 4 }} | ||||
| {{- end }} | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue