Compare commits

..

No commits in common. "d52444b21cb26e443284508a7c744adb2871fb37" and "869a756e4b17f5e7a24dff410179ecd1d1a9d9c3" have entirely different histories.

6 changed files with 58 additions and 137 deletions

View File

@ -6,8 +6,6 @@ type: library
version: 0.0.0
kubeVersion: ">=1.27.0"
home: git.rre.nu
sources:
- https://git.rre.nu/jonas/common-helm-lib
maintainers:
- name: Jonas Forsberg
email: barregargamel@gmail.com

View File

@ -4,18 +4,11 @@ Main entrypoint for the common library chart. It will render all underlying temp
{{- define "lib.all" -}}
{{- include "lib.values.setup" . }}
{{- if .Values.serviceAccount.create -}}
{{- include "lib.serviceaccount" . | nindent 0 }}
{{- end -}}
{{- if .Values.ingress.enabled -}}
{{- include "lib.ingress" . | nindent 0}}
{{- include "lib.serviceaccount" . | nindent 0 }}
{{- end -}}
{{ include "lib.service" . | nindent 0 }}
{{ include "lib.secrets" . | nindent 0 }}
{{ include "lib.configs" . | nindent 0 }}
{{ if .Values.controller.enabled }}
{{ if eq .Values.controller.type "statefulset" }}
{{- include "lib.statefulset" . | nindent 0}}
{{- end -}}
{{ if eq .Values.controller.type "statefulset" }}
{{- include "lib.statefulset" . | nindent 0}}
{{- end -}}
{{- end -}}

View File

@ -61,9 +61,7 @@ Create the name of the service account to use
{{- end }}
{{- end }}
{{/*
Merge the local chart values and the library chart defaults
*/}}
{{/* Merge the local chart values and the library chart defaults */}}
{{- define "lib.values.setup" -}}
{{- if .Values.lib -}}
{{- $defaultValues := deepCopy .Values.lib -}}
@ -72,54 +70,3 @@ Merge the local chart values and the library chart defaults
{{- $_ := set . "Values" (deepCopy $mergedValues) -}}
{{- end -}}
{{- end -}}
{{/*
Get all environment variables and
secrets that should be mounted as environment variables
*/}}
{{- define "lib.environmentVariables" -}}
{{- $envIncluded := "false" -}}
{{- $fullName := include "lib.fullname" . -}}
{{- range $name, $settings := .Values.secrets -}}
{{- if $settings.enabled -}}
{{- if $settings.env -}}
{{- $envIncluded := "true" -}}
{{- range $key, $value := $settings.data }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: {{ $fullName }}-{{ $name }}
key: {{ $key }}
{{- end -}}
{{- range $key, $value := $settings.stringData }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: {{ $fullName }}-{{ $name }}
key: {{ $key }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- range $name, $settings := .Values.configs -}}
{{- if $settings.enabled -}}
{{- if $settings.env -}}
{{- $envIncluded := "true" -}}
{{- range $key, $value := $settings.data }}
- name: {{ $key }}
valueFrom:
configMapKeyRef:
name: {{ $fullName }}-{{ $name }}
key: {{ $key }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if $envIncluded = "true" -}}
{{- if .Values.env -}}
{{- toYaml .Values.env | nindent 0 -}}
{{- end -}}
{{- else -}}
{{- toYaml .Values.env | nindent 0 -}}
{{- end -}}
{{- end -}}

View File

@ -1,7 +1,7 @@
{{ define "lib.ingress" }}
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "lib.fullname" . -}}
{{- $svcPort := .Values.ingress.servicePort -}}
{{- $svcName := .Values.ingress.service -}}
{{- $svcPort := .Values.ingress.servicePort -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
@ -17,11 +17,9 @@ apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}
namespace: {{ .Values.namespace }}
labels:
{{- include "lib.labels" . | nindent 4 }}
{{- with .Values.ingressingresstservicePort }}
{{- $svcName := .Values.ingress.service -}}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
@ -52,11 +50,11 @@ spec:
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}-${{ $svcName }}
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}-${{ $svcName }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}

View File

@ -50,8 +50,6 @@ spec:
{{- end -}}
{{- end -}}
{{- end }}
env:
{{- include "lib.environmentVariables" . | default "{}" | nindent 12 }}
livenessProbe:
{{- toYaml .Values.livenessProbe | nindent 12 }}
readinessProbe:

View File

@ -1,28 +1,54 @@
---
# Namespace to deploy to, if not set it targets default namespace
namespace: default
controller:
# -- enable the controller
enabled: true
# type of controller
# valid options are deployment, statefulset, job
type: deployment
annotations: {}
labels: {}
replicas: 1
podSecurityContext: {}
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
image:
repository:
repository:
pullPolicy:
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Automatically mount a ServiceAccount's API credentials?
automount: true
# 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: ""
service:
main:
enabled: true
enabled: false
type: ClusterIP
annotations: {}
labels: {}
ports:
ports: {}
# http:
# # -- Enables or disables the port
# enabled: false#
@ -42,30 +68,29 @@ service:
#
# # -- Specify the nodePort value for the LoadBalancer and NodePort service types.
# # [[ref]](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
# nodePort:
# nodePort:
ingress:
enabled: false
service: main
#Service to target
servicePort: 80
className: ""
annotations:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
main:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
service: main
servicePort: 80
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources:
{}
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
@ -84,29 +109,6 @@ autoscaling:
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
# Secrets that needs to be created
secrets: {}
# secrets:
# <name>:
# type: #default Opaque
# annotations: {}
# labels: {}
# env: false #should template load each key in the seacret as
# data:
# KEY: VALUE
# ConfigMaps that needs to be created
configs: {}
# configs:
# <name>:
# annotations: {}
# labels: {}
# env: false #should template load each key in the seacret as
# data:
# KEY: VALUE
env: {}
# Additional volumes on the output Deployment definition.
volumes: []
# - name: foo
@ -120,21 +122,6 @@ volumeMounts: []
# mountPath: "/etc/foo"
# readOnly: true
serviceAccount:
# Specifies whether a service account should be created
create: true
# Automatically mount a ServiceAccount's API credentials?
automount: true
# 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: ""
livenessProbe: {}
readinessProbe: {}
nodeSelector: {}
tolerations: []