This commit is contained in:
parent
609949bb08
commit
65b90453dc
23
helm/.helmignore
Normal file
23
helm/.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/
|
6
helm/Chart.lock
Normal file
6
helm/Chart.lock
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
dependencies:
|
||||||
|
- name: helm-library
|
||||||
|
repository: oci://ghcr.io/allanger/allangers-helm-library
|
||||||
|
version: 0.2.1
|
||||||
|
digest: sha256:1a2c38771fede69ddcb6fa6da8927780f1dc36e1f0f92233d747e943cd76dedb
|
||||||
|
generated: "2025-01-13T14:09:55.344423+01:00"
|
15
helm/Chart.yaml
Normal file
15
helm/Chart.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: xray-docs
|
||||||
|
type: application
|
||||||
|
version: 0.1.0
|
||||||
|
appVersion: 0.1.0
|
||||||
|
maintainers:
|
||||||
|
- name: allanger
|
||||||
|
email: allanger@zohomail.com
|
||||||
|
url: https://badhouseplants.net
|
||||||
|
dependencies:
|
||||||
|
- name: helm-library
|
||||||
|
version: 0.2.1
|
||||||
|
repository: oci://ghcr.io/allanger/allangers-helm-library
|
||||||
|
annotations:
|
||||||
|
allowed_workload_kinds: "Deployment"
|
BIN
helm/charts/helm-library-0.2.1.tgz
Normal file
BIN
helm/charts/helm-library-0.2.1.tgz
Normal file
Binary file not shown.
23
helm/charts/helm-library/.helmignore
Normal file
23
helm/charts/helm-library/.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/
|
6
helm/charts/helm-library/Chart.lock
Normal file
6
helm/charts/helm-library/Chart.lock
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
dependencies:
|
||||||
|
- name: raw
|
||||||
|
repository: https://bedag.github.io/helm-charts/
|
||||||
|
version: 2.0.0
|
||||||
|
digest: sha256:12c18557553d75f5e57efa02a359517b9d95e47e80be270af17c63f9ccaff3d1
|
||||||
|
generated: "2024-12-29T11:06:41.044864+01:00"
|
12
helm/charts/helm-library/Chart.yaml
Normal file
12
helm/charts/helm-library/Chart.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
description: A Helm library to be reused by allanger's charts. It's supposed to become
|
||||||
|
an alternative for k8s-at-home
|
||||||
|
keywords:
|
||||||
|
- allanger
|
||||||
|
- k8s-at-home
|
||||||
|
maintainers:
|
||||||
|
- email: allanger@badhouseplants.net
|
||||||
|
name: allanger
|
||||||
|
name: helm-library
|
||||||
|
type: library
|
||||||
|
version: 0.2.0+09454ec
|
57
helm/charts/helm-library/templates/_chart.tpl
Normal file
57
helm/charts/helm-library/templates/_chart.tpl
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{{/*
|
||||||
|
* Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.chart.name" -}} {{- /* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- default .ctx.Chart.Name .ctx.Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }} {{- /*/define[0] */}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* Create chart name and version as used by the chart label.
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.chart.chart" -}} {{- /* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- printf "%s-%s" .ctx.Chart.Name .ctx.Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }} {{- /*/define[0] */}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
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 "lib.chart.fullname" -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- if .ctx.Values.fullnameOverride }}
|
||||||
|
{{- .ctx.Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $name := default .ctx.Chart.Name .ctx.Values.nameOverride }}
|
||||||
|
{{- if contains $name .ctx.Release.Name }}
|
||||||
|
{{- .ctx.Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- printf "%s-%s" .ctx.Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* Common labels
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.chart.labels" -}} {{- /* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
helm.sh/chart: {{ include "lib.chart.chart" (dict "ctx" .ctx) }}
|
||||||
|
{{ include "lib.chart.selectorLabels" (dict "ctx" .ctx) }}
|
||||||
|
{{- if .ctx.Chart.AppVersion }} {{- /* if[1] */}}
|
||||||
|
app.kubernetes.io/version: {{ .ctx.Chart.AppVersion | quote }}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
app.kubernetes.io/managed-by: {{ .ctx.Release.Service }}
|
||||||
|
{{- end }} {{- /*/define[0] */}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* Selector labels
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.chart.selectorLabels" -}} {{- /* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
app.kubernetes.io/name: {{ include "lib.chart.name" (dict "ctx" .ctx) }}
|
||||||
|
app.kubernetes.io/instance: {{ .ctx.Release.Name }}
|
||||||
|
{{- end }} {{- /*/define[0] */}}
|
||||||
|
|
15
helm/charts/helm-library/templates/_errors.tpl
Normal file
15
helm/charts/helm-library/templates/_errors.tpl
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{{- define "lib.error.noCtx" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- if not .ctx -}}{{- fail "no context provided" -}}{{- end -}}
|
||||||
|
{{- if not (kindIs "map" .ctx) -}} {{- /* if[1] */ -}}
|
||||||
|
{{- fail "unexpected type of ctx" -}}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.error.noKey" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- if not .key -}}{{ fail "error handler must receive a key to find" }}{{- end -}}
|
||||||
|
{{- if not (hasKey .ctx .key) -}} {{- /* if[1] */ -}}
|
||||||
|
{{- fail (printf "key %s must be not null" .key) -}}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
17
helm/charts/helm-library/templates/components/_crd.tpl
Normal file
17
helm/charts/helm-library/templates/components/_crd.tpl
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{{/*
|
||||||
|
* CRDs should always be managed as a separate chart
|
||||||
|
* They must be written to the ./crd folder and then
|
||||||
|
* they will be read by the .Files helm feature
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.component.crd" -}} {{- /* define[0] */ -}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict "ctx" $ "annotations" .Values.workload.annotations)
|
||||||
|
}}
|
||||||
|
{{ $currentScope := .}}
|
||||||
|
{{ range $path, $_ := .Files.Glob "**.yaml" }}
|
||||||
|
{{- with $currentScope}}
|
||||||
|
{{ .Files.Get $path }}
|
||||||
|
{{- end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}} {{- /* define[0] */ -}}
|
@ -0,0 +1,46 @@
|
|||||||
|
{{/*
|
||||||
|
* This component should make it easier to create sets
|
||||||
|
* of environment variables via configmaps and secrets
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.component.environment" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- range $k, $v := .ctx.Values.config.env }} {{- /* range[0] */}}
|
||||||
|
{{- $customName := include "lib.component.env.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- if $v.enabled }} {{- /* if[0] */}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"global" ($.ctx.Values.metadata).labels
|
||||||
|
"local" ($v.metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"name" $customName
|
||||||
|
"annotations" ($v.metadata).annotations
|
||||||
|
"labels" $labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- $data := dict -}}
|
||||||
|
{{- range $key, $value := $v.data }} {{- /* range[1] */}}
|
||||||
|
{{- if not (has $key ($v.remove)) }} {{- /* if[1] */}}
|
||||||
|
{{- $_ := set $data $key (tpl (toString $value) $.ctx) }}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- if $v.sensitive }} {{- /* if[1] */}}
|
||||||
|
{{ include "lib.core.secret" (dict "ctx" $ "metadata" $metadata "data" $data) }}
|
||||||
|
{{- else }}
|
||||||
|
{{ include "lib.core.configmap" (dict "ctx" $ "metadata" $metadata "data" $data) }}
|
||||||
|
{{- end -}} {{- /* /if[1] */}}
|
||||||
|
{{- end }} {{- /* /if[0] */}}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.component.env.name" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "name") -}}
|
||||||
|
{{ printf "%s-%s-env" .ctx.Release.Name .name }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
@ -0,0 +1,16 @@
|
|||||||
|
{{- define "lib.component.templates" }} {{- /* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"global" ((.ctx.Values).metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- with (.ctx.Values.extra).templates }} {{- /* with[1] */}}
|
||||||
|
{{- range . }} {{- /* range[2] */}}
|
||||||
|
---
|
||||||
|
{{- tpl . $.ctx | indent 0 }}
|
||||||
|
{{- end }} {{- /* /range[2] */}}
|
||||||
|
{{- end }} {{- /* /with[1] */}}
|
||||||
|
{{- end }} {{- /* /define[0] */}}
|
64
helm/charts/helm-library/templates/components/_files.tpl
Normal file
64
helm/charts/helm-library/templates/components/_files.tpl
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{{/*
|
||||||
|
* This component should make it easier to create sets
|
||||||
|
* of environment variables via configmaps and secrets
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.component.files" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- range $k, $v := .ctx.Values.config.files }} {{- /* range[0] */}}
|
||||||
|
{{- $customName := include "lib.component.file.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- if $v.enabled }} {{- /* if[0] */}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"global" ($.ctx.Values.metadata).labels
|
||||||
|
"local" ($v.metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"name" $customName
|
||||||
|
"annotations" $v.annotations
|
||||||
|
"labels" $labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- $entries := dict -}}
|
||||||
|
{{- range $key, $value := $v.entries }} {{- /* range[1] */}}
|
||||||
|
{{- if not (has $key ($v.remove)) }} {{- /* if[1] */}}
|
||||||
|
{{- $data := $value.data }}
|
||||||
|
{{- if and (kindIs "string" $data) ($value.convertTo) }} {{- /* if[2] */}}
|
||||||
|
{{- fail "convering is only possible for plain yaml, strings are not supported" -}}
|
||||||
|
{{- end }} {{- /* /if[2] */}}
|
||||||
|
{{- if $value.convertTo -}} {{- /* if[2] */ -}}
|
||||||
|
{{- if eq $value.convertTo "json" }} {{- /* if[3] */}}
|
||||||
|
{{- $data = include "lib.helpers.convertToJson" $data -}}
|
||||||
|
{{- else if eq $value.convertTo "toml" -}}
|
||||||
|
{{- $data = include "lib.helpers.convertToToml" $data -}}
|
||||||
|
{{- else if eq $value.convertTo "yaml" -}}
|
||||||
|
{{- $data = include "lib.helpers.convertToYaml" $data -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- fail (printf "converion to %s is not supported yet" $value.convertTo) -}}
|
||||||
|
{{- end -}} {{- /* /if[3] */ -}}
|
||||||
|
{{- end -}} {{- /* /if[2] */ -}}
|
||||||
|
{{- if not (kindIs "string" $data) -}}
|
||||||
|
{{- fail (printf "it must be a string, but it's a %s: %v" (kindOf $data) $data) -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $_ := set $entries $key (tpl $data $.ctx) }}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- if $v.sensitive }} {{- /* if[1] */}}
|
||||||
|
{{ include "lib.core.secret" (dict "ctx" $ "metadata" $metadata "data" $entries) }}
|
||||||
|
{{- else }}
|
||||||
|
{{ include "lib.core.configmap" (dict "ctx" $ "metadata" $metadata "data" $entries) }}
|
||||||
|
{{- end -}} {{- /* /if[1] */}}
|
||||||
|
{{- end }} {{- /* /if[0] */}}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.component.file.name" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "name") -}}
|
||||||
|
{{ printf "%s-%s-file" .ctx.Release.Name .name }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
33
helm/charts/helm-library/templates/components/_ingress.tpl
Normal file
33
helm/charts/helm-library/templates/components/_ingress.tpl
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{{- define "lib.component.ingress" }}
|
||||||
|
{{- range $k, $v := .ctx.Values.ingress }}
|
||||||
|
{{- $customName := include "lib.component.ingress.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- if $v.enabled }} {{- /* if[0] */}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"global" ($.ctx.Values.metadata).labels
|
||||||
|
"local" ($v.metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"annotations" ($v.metadata).annotations
|
||||||
|
"labels" $labels
|
||||||
|
"name" $customName
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- $spec := $v -}}
|
||||||
|
{{- $_ := unset $spec "enabled" -}}
|
||||||
|
{{ include "lib.core.ingress" (dict "ctx" $.ctx "metadata" $metadata "spec" $spec ) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "lib.component.ingress.name" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "name") -}}
|
||||||
|
{{ printf "%s-%s" .ctx.Release.Name .name }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
42
helm/charts/helm-library/templates/components/_service.tpl
Normal file
42
helm/charts/helm-library/templates/components/_service.tpl
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{{/*
|
||||||
|
* This component should make it easier to create pvc
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.component.service" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- range $k, $v := .ctx.Values.services }} {{- /* range[1] */}}
|
||||||
|
{{- $customName := include "lib.component.service.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- if $v.enabled }} {{- /* if[2] */}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"global" ($.ctx.Values.metadata).labels
|
||||||
|
"local" ($v.metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"name" $customName
|
||||||
|
"annotations" ($v.metadata).annotations
|
||||||
|
"labels" $labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{ $spec := $v }}
|
||||||
|
{{- if not $spec.type -}}
|
||||||
|
{{- set $spec "type" "ClusterIP" -}}
|
||||||
|
{{- end }}
|
||||||
|
{{
|
||||||
|
include "lib.core.service"
|
||||||
|
(dict "ctx" $.ctx "metadata" $metadata "spec" $spec)
|
||||||
|
}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.component.service.name" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "name") -}}
|
||||||
|
{{ printf "%s-%s" .ctx.Release.Name .name }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
35
helm/charts/helm-library/templates/components/_storage.tpl
Normal file
35
helm/charts/helm-library/templates/components/_storage.tpl
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{{/*
|
||||||
|
* This component should make it easier to create pvc
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.component.storage" -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- range $k, $v := .ctx.Values.storage }}
|
||||||
|
{{- $customName := include "lib.component.storage.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- if $v.enabled }} {{- /* if[0] */}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"global" ($.ctx.Values.metadata).labels
|
||||||
|
"local" ($v.metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict
|
||||||
|
"ctx" $.ctx
|
||||||
|
"annotations" ($v.metadata).annotations
|
||||||
|
"labels" $labels
|
||||||
|
"name" $customName
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{ include "lib.core.pvc" (dict "metadata" $metadata "spec" $v) }}
|
||||||
|
{{- end }} {{- /* /if[0] */}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "lib.component.storage.name" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "name") -}}
|
||||||
|
{{ printf "%s-%s-storage" .ctx.Release.Name .name }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
@ -0,0 +1,65 @@
|
|||||||
|
{{- define "lib.component.workload.allowed" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{ index .ctx.Chart.Annotations "allowed_workload_kinds" }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.component.workload" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{-
|
||||||
|
$labels := include "lib.metadata.mergeLabels"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"global" ((.ctx.Values).metadata).labels
|
||||||
|
"local" (((.ctx.Values.base).workload).metadata).labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$metadata := include "lib.metadata"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"annotations" (((.ctx.Values.base).workload).metadata).annotations
|
||||||
|
"labels" $labels
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{-
|
||||||
|
$securityContext := include "lib.core.pod.securityContext"
|
||||||
|
(dict
|
||||||
|
"securityContext" .ctx.Values.base.workload.securityContext
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
|
||||||
|
{{
|
||||||
|
$containers := include "lib.core.pod.containers"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"containers" .ctx.Values.base.workload.containers
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
|
||||||
|
{{
|
||||||
|
$volumes := include "lib.core.pod.volumes"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"files" (.ctx.Values.config).files
|
||||||
|
"storage" .ctx.Values.storage
|
||||||
|
"extraVolumes" .ctx.Values.extraVolumes
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
|
||||||
|
{{- if eq .ctx.Values.base.workload.kind "Deployment" -}} {{- /* if[0] */ -}}
|
||||||
|
{{- if contains .ctx.Values.base.workload.kind (include "lib.component.workload.allowed" (dict "ctx" .ctx)) }}{{- /* if[0] */ -}}
|
||||||
|
{{-
|
||||||
|
include "lib.core.deployment"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"metadata" $metadata
|
||||||
|
"securityContext" $securityContext
|
||||||
|
"containers" $containers
|
||||||
|
"volumes" $volumes
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- fail (printf "workload kind is not allowed: %s" .ctx.Values.base.workload.kind) -}}
|
||||||
|
{{- end }}{{- /* if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /if[0]*/ -}}
|
||||||
|
{{- end -}}{{- /* /define[0] */ -}}
|
18
helm/charts/helm-library/templates/core/_configmap.yaml
Normal file
18
helm/charts/helm-library/templates/core/_configmap.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{{- define "lib.core.configmap" -}} {{- /* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "metadata") -}}
|
||||||
|
---
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- This resource is managed by the allanger's helm library
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
{{ .metadata | indent 2 }}
|
||||||
|
data:
|
||||||
|
{{- range $key, $value := .data }}
|
||||||
|
{{- if $value }}
|
||||||
|
{{ $key }}: {{ tpl $value $.Context | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}} {{- /* /define[0]) */ -}}
|
78
helm/charts/helm-library/templates/core/_deployment.yaml
Normal file
78
helm/charts/helm-library/templates/core/_deployment.yaml
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
{{/*
|
||||||
|
* Bootstrap a deployment
|
||||||
|
* It should always receive a dict as an argument
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.core.deployment" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "securityContext") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "metadata") -}}
|
||||||
|
---
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- This resource is managed by the allanger's helm library
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
{{ .metadata | indent 2 }}
|
||||||
|
spec:
|
||||||
|
{{-
|
||||||
|
include "lib.core.deployment.spec"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"securityContext" .securityContext
|
||||||
|
"metadata" .metadata
|
||||||
|
"containers" .containers
|
||||||
|
"volumes" .volumes
|
||||||
|
)
|
||||||
|
| indent 2
|
||||||
|
}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.deployment.spec" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . }}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "securityContext") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "metadata") }}
|
||||||
|
replicas: {{ .ctx.Values.base.workload.replicas | default 1 }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "lib.chart.selectorLabels" (dict "ctx" .ctx) | nindent 6 }}
|
||||||
|
{{
|
||||||
|
include "lib.core.deployment.template"
|
||||||
|
(dict
|
||||||
|
"ctx" .ctx
|
||||||
|
"securityContext" .securityContext
|
||||||
|
"metadata" .metadata
|
||||||
|
"containers" .containers
|
||||||
|
"volumes" .volumes
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- /* A deployment temopalte goes here */ -}}
|
||||||
|
{{- define "lib.core.deployment.template" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "securityContext") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "metadata") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "containers") -}}
|
||||||
|
{{- $labels := toYaml (index (fromYaml .metadata) "labels") -}}
|
||||||
|
{{- $annotations := toYaml (index (fromYaml .metadata) "annotations") -}}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- $labels | nindent 6 }}
|
||||||
|
annotations:
|
||||||
|
{{- if not (eq $annotations "null") }}
|
||||||
|
{{- $annotations | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
{{
|
||||||
|
include "lib.helpers.hashes"
|
||||||
|
(dict
|
||||||
|
"env" (.ctx.Values.config).env
|
||||||
|
"files" (.ctx.Values.config).files)
|
||||||
|
| nindent 6
|
||||||
|
}}
|
||||||
|
spec:
|
||||||
|
{{- .securityContext | nindent 4 }}
|
||||||
|
{{ .containers | nindent 4 }}
|
||||||
|
{{ .volumes | nindent 4 }}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
20
helm/charts/helm-library/templates/core/_ingress.tpl
Normal file
20
helm/charts/helm-library/templates/core/_ingress.tpl
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{- define "lib.core.ingress" }}
|
||||||
|
---
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- This resource is managed by the allanger's helm library
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
{{- .metadata | nindent 2 }}
|
||||||
|
spec:
|
||||||
|
ingressClassName: {{ .spec.class }}
|
||||||
|
{{- with .spec.rules }}
|
||||||
|
rules:
|
||||||
|
{{- tpl ( . | toYaml | nindent 4 | toString) $.ctx }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .spec.tls }}
|
||||||
|
tls:
|
||||||
|
{{- tpl ( . | toYaml | nindent 4 | toString) $.ctx }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
117
helm/charts/helm-library/templates/core/_pod.tpl
Normal file
117
helm/charts/helm-library/templates/core/_pod.tpl
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
{{- define "lib.core.pod" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- fail "pods are not implemented net" -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* This function should accept a seucrityContext
|
||||||
|
* from values, so please use it with values
|
||||||
|
* directly
|
||||||
|
* SecurityContext is not templated, so it will be
|
||||||
|
* added as is
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.core.pod.securityContext" -}} {{- /* define[0] */ -}}
|
||||||
|
securityContext:
|
||||||
|
{{- if not .securityContext }} {{- /* if[1] */}}
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# Using the default security context, if it doesn't work for you,
|
||||||
|
# please update `.Values.base.workload.securityContext`
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
runAsUser: 1000
|
||||||
|
runAsGroup: 3000
|
||||||
|
fsGroup: 2000
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
{{- else -}}
|
||||||
|
{{- with .securityContext }} {{- /* with[2] */}}
|
||||||
|
{{ toYaml . | indent 2 }}
|
||||||
|
{{- end -}} {{- /* /with[2] */}}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* define[0] */ -}}
|
||||||
|
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.volumes" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "storage") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "files") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "extraVolumes") -}}
|
||||||
|
{{- if or (or .storage .files) .extraVolumes -}} {{- /* if[0]*/ -}}
|
||||||
|
volumes:
|
||||||
|
{{- /* If storage is defined, mount a pvc */ -}}
|
||||||
|
{{- if .storage }} {{- /* if[1] */}}
|
||||||
|
{{- range $k, $v := .storage }} {{- /* range[0] */}}
|
||||||
|
{{- if $v.enabled }}
|
||||||
|
{{- $name := include "lib.component.storage.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
- name: {{ $k }}-storage
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: {{ $name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- if .extraVolumes}} {{- /* if[1] */}}
|
||||||
|
{{- range $k, $v := .extraVolumes}} {{- /* range[0] */}}
|
||||||
|
- name: {{ $k }}-extra
|
||||||
|
{{- $v | toYaml | nindent 4 }}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- if .files }} {{- /* if[1] */}}
|
||||||
|
{{- range $k, $v := .files }} {{- /* range[0] */}}
|
||||||
|
- name: {{ $k }}-file
|
||||||
|
{{- $name := include "lib.component.file.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- if $v.sensitive }} {{- /* if[2] */}}
|
||||||
|
secret:
|
||||||
|
defaultMode: 420
|
||||||
|
secretName: {{ $name }}
|
||||||
|
{{- else }}
|
||||||
|
configMap:
|
||||||
|
name: {{ $name }}
|
||||||
|
{{- end }} {{- /* /if[2] */}}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end -}} {{- /* /if[0] */ -}}
|
||||||
|
{{- end -}} {{- /* define[0] */ -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* This template should generate a valid container
|
||||||
|
* defintion that should be used by both
|
||||||
|
* containers and initContainers
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.containers" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "containers") -}}
|
||||||
|
{{- $ctx := .ctx }}
|
||||||
|
containers:
|
||||||
|
{{- $containers := list }}
|
||||||
|
{{- range $k, $v := .containers }} {{- /* range[1] */}}
|
||||||
|
{{- $containerRaw := include "lib.core.pod.container"
|
||||||
|
(dict
|
||||||
|
"ctx" $ctx
|
||||||
|
"name" $k
|
||||||
|
"data" $v
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{- $container := fromYaml $containerRaw }}
|
||||||
|
{{- if hasKey $container "Error" }} {{- /* if[2] */}}
|
||||||
|
{{- fail (printf "%s\n%v" $container $containerRaw) }}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- $containers = append $containers $container }}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{ $containers | toYaml | indent 2 }}
|
||||||
|
{{- end -}} {{- /* define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.initContainers" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- end -}} {{- /* define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.image.tag" -}} {{/* define[0] */}}
|
||||||
|
{{- if or .tag .appVersion -}} {{/* if[1] */}}
|
||||||
|
{{- if .tag -}} {{/* if[2] */}}
|
||||||
|
{{- .tag -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- .appVersion -}}
|
||||||
|
{{- end -}} {{/* /if[2] */}}
|
||||||
|
{{- else -}}
|
||||||
|
{{ fail ".tag or .appVersion must be passed to this helper"}}
|
||||||
|
{{- end -}} {{/* /if[1] */}}
|
||||||
|
{{- end -}} {{/* /define[0] */}}
|
||||||
|
|
||||||
|
|
21
helm/charts/helm-library/templates/core/_pvc.tpl
Normal file
21
helm/charts/helm-library/templates/core/_pvc.tpl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{{- define "lib.core.pvc" -}}
|
||||||
|
---
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- This resource is managed by the allanger's helm library
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
{{- .metadata | nindent 2 }}
|
||||||
|
spec:
|
||||||
|
{{- with .spec.accessModes }}
|
||||||
|
accessModes:
|
||||||
|
{{ toYaml . | indent 4}}
|
||||||
|
{{- end }}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .spec.size }}
|
||||||
|
{{- if ne .spec.storageClassName "default" }}
|
||||||
|
storageClassName: {{ .spec.storageClassName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
16
helm/charts/helm-library/templates/core/_secret.yaml
Normal file
16
helm/charts/helm-library/templates/core/_secret.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{{- define "lib.core.secret" -}} {{- /* define[0] */}}
|
||||||
|
---
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- This resource is managed by the allanger's helm library
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
{{- .metadata | nindent 2 }}
|
||||||
|
data:
|
||||||
|
{{- range $key, $value := .data }}
|
||||||
|
{{- if $value }}
|
||||||
|
{{ $key }}: {{ tpl $value $.Context | b64enc }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}} {{- /* /define[0]) */ -}}
|
21
helm/charts/helm-library/templates/core/_service.tpl
Normal file
21
helm/charts/helm-library/templates/core/_service.tpl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{{- define "lib.core.service" }}
|
||||||
|
---
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- This resource is managed by the allanger's helm library
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
{{- .metadata | nindent 2 }}
|
||||||
|
spec:
|
||||||
|
type: {{ .spec.type }}
|
||||||
|
selector:
|
||||||
|
{{- include "lib.chart.selectorLabels" (dict "ctx" .ctx) | nindent 4 }}
|
||||||
|
ports:
|
||||||
|
{{- range $k,$v := .spec.ports }} {{- /* range[0] */}}
|
||||||
|
- name: {{ $k }}
|
||||||
|
port: {{ $v.port }}
|
||||||
|
targetPort: {{ $v.targetPort}}
|
||||||
|
protocol: {{ $v.protocol}}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end }}
|
214
helm/charts/helm-library/templates/core/pod/_container.tpl
Normal file
214
helm/charts/helm-library/templates/core/pod/_container.tpl
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
{{/*
|
||||||
|
* This template should be able to create a valid container spec
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.core.pod.container" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "data") -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "name") -}}
|
||||||
|
name: {{ .name }}
|
||||||
|
{{ include "lib.core.pod.container.securityContext" (dict "securityContext" .data.securityContext) }}
|
||||||
|
{{ include "lib.core.pod.container.command" (dict "command" .data.command) }}
|
||||||
|
{{ include "lib.core.pod.container.args" (dict "args" .data.command) }}
|
||||||
|
{{ include "lib.core.pod.container.livenessProbe" (dict "ctx" .ctx "probe" .data.livenessProbe) }}
|
||||||
|
{{ include "lib.core.pod.container.readinessProbe" (dict "ctx" .ctx "probe" .data.readinessProbe) }}
|
||||||
|
{{ include "lib.core.pod.container.startupProbe" (dict "ctx" .ctx "probe" .data.readinessProbe) }}
|
||||||
|
{{ include "lib.core.pod.container.image" (dict "ctx" .ctx "image" .data.image) }}
|
||||||
|
{{ include "lib.core.pod.container.envFrom" (dict "ctx" .ctx "envFrom" .data.envFrom) }}
|
||||||
|
{{ include "lib.core.pod.container.volumeMounts" (dict "ctx" .ctx "mounts" .data.volumeMounts) }}
|
||||||
|
{{ include "lib.core.pod.container.ports" (dict "ctx" .ctx "ports" .data.ports) }}
|
||||||
|
{{- /*
|
||||||
|
{{-
|
||||||
|
include "lib.core.pod.container.ports"
|
||||||
|
(dict "Context" .Context "Container" .ContainerData)
|
||||||
|
| indent 2
|
||||||
|
-}}
|
||||||
|
{{-
|
||||||
|
include "lib.core.pod.container.volumeMounts"
|
||||||
|
.ContainerData | indent 2
|
||||||
|
-}}
|
||||||
|
*/}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.securityContext" }} {{- /* define[0] */ -}}
|
||||||
|
securityContext:
|
||||||
|
{{- if not .securityContext }} {{- /* if[1] */}}
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# Using the default security context, if it doesn't work for you,
|
||||||
|
# please update `.Values.base.workload.containers[].securityContext`
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
{{- else }}
|
||||||
|
{{- with .securityContext }} {{- /* with[2] */}}
|
||||||
|
{{ toYaml . | indent 2 }}
|
||||||
|
{{- end }} {{- /* /with[2] */}}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* Command and Args are accepting a dict as an argument
|
||||||
|
* dict should contain the following keys:
|
||||||
|
* - ctx
|
||||||
|
* - command/args (optional list) - When empty, entry is not added
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.core.pod.container.command" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- with .command -}} {{- /* with[1] */ -}}
|
||||||
|
command:
|
||||||
|
{{ . | toYaml | indent 2 }}
|
||||||
|
{{- end -}} {{- /* /with[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.args" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- with .args -}} {{- /* with[1] */ -}}
|
||||||
|
args:
|
||||||
|
{{ . | toYaml | indent 2 }}
|
||||||
|
{{- end -}} {{- /* /with[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* Probes are accepting a dict as an argument
|
||||||
|
* dict should contain the following keys:
|
||||||
|
* - ctx
|
||||||
|
* - probe (optional) - When empty, probe is not added
|
||||||
|
*
|
||||||
|
* Notes: Probes can be tempalted, because some kinds of probes
|
||||||
|
* need to be aware of a port to be checking against. And to avoid
|
||||||
|
* copypaste all the probes are tempalted
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.readinessProbe" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "probe") -}}
|
||||||
|
{{- if .probe }} {{- /* if[1] */}}
|
||||||
|
{{- $probe := tpl (toYaml .probe) .ctx -}}
|
||||||
|
readinessProbe:
|
||||||
|
{{ $probe | indent 2}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.livenessProbe" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "probe") -}}
|
||||||
|
{{- if .probe }} {{- /* if[1] */}}
|
||||||
|
{{- $probe := tpl (toYaml .probe) .ctx -}}
|
||||||
|
livenessProbe:
|
||||||
|
{{ $probe | indent 2}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.startupProbe" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "probe") -}}
|
||||||
|
{{- if .probe }} {{- /* if[1] */}}
|
||||||
|
{{- $probe := tpl (toYaml .probe) .ctx -}}
|
||||||
|
startupProbe:
|
||||||
|
{{ $probe | indent 2}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.image" -}} {{/* define[0] */}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "image") -}}
|
||||||
|
image: {{ printf "%s/%s:%s"
|
||||||
|
.image.registry .image.repository
|
||||||
|
(include "lib.core.pod.container.image.tag"
|
||||||
|
(dict "appVersion" .ctx.Chart.AppVersion "tag" .image.tag))
|
||||||
|
}}
|
||||||
|
imagePullPolicy: {{ .image.pullPolicy | default "Always" }}
|
||||||
|
{{- end -}} {{/* /define[0] */}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* EnvFrom can either take values from predefined env values
|
||||||
|
* or add a raw envFrom entries to the manifests
|
||||||
|
* When using the predefined env, it's possible to remove entries
|
||||||
|
* using the '.remove' entry from the env mountpoint
|
||||||
|
*
|
||||||
|
* Should accept a dict with the followibg keys
|
||||||
|
* ctx
|
||||||
|
* envFrom
|
||||||
|
*
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.core.pod.container.envFrom" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "envFrom") -}}
|
||||||
|
{{- /* If env should be set from a Configmap/Secret */ -}}
|
||||||
|
{{- if .envFrom -}} {{- /* if[1] */ -}}
|
||||||
|
envFrom:
|
||||||
|
{{- range $k, $v := .envFrom -}} {{- /* range[2] */ -}}
|
||||||
|
{{- if not (eq $k "raw") -}} {{- /* if[3] */ -}}
|
||||||
|
{{- $source := include "lib.helpers.lookup.env" (dict "ctx" $.ctx "key" $k) | fromYaml }}
|
||||||
|
{{- if $source.sensitive }}
|
||||||
|
- secretRef:
|
||||||
|
{{- else }}
|
||||||
|
- configMapRef:
|
||||||
|
{{- end }}
|
||||||
|
name: {{ include "lib.component.env.name" (dict "ctx" $.ctx "name" $k) }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ $v | toYaml | nindent 2}}
|
||||||
|
{{- end }} {{- /* if[3] */}}
|
||||||
|
{{- end }} {{- /* /range[2] */}}
|
||||||
|
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.volumeMounts" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "mounts") -}}
|
||||||
|
{{- if .mounts }} {{- /* if[1] */}}
|
||||||
|
volumeMounts:
|
||||||
|
{{- range $mountKind, $mountData := .mounts }} {{- /* range[1] */}}
|
||||||
|
{{- if eq $mountKind "storage" }} {{- /* if[2] */}}
|
||||||
|
{{- range $mountName, $mountEntry := $mountData }} {{- /* range[3] */}}
|
||||||
|
{{- $name := include "lib.component.storage.name" (dict "ctx" $.ctx "name" $mountName) }}
|
||||||
|
- name: {{ $mountName }}-storage
|
||||||
|
mountPath: {{ $mountEntry.path }}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- if eq $mountKind "files" }} {{- /* if[1] */}}
|
||||||
|
{{- range $mountName, $mountEntry := $mountData }} {{- /* range[1] */}}
|
||||||
|
{{- $name := include "lib.component.file.name" (dict "ctx" $.ctx "name" $mountName) }}
|
||||||
|
- name: {{ $name }}
|
||||||
|
mountPath: {{ $mountEntry.path }}
|
||||||
|
{{- if $mountEntry.subPath }} {{- /* if[2] */}}
|
||||||
|
subPath: {{ $mountEntry.subPath }}
|
||||||
|
{{- end }} {{- /* /if[2] */}}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- if eq $mountKind "extraVolumes" }} {{- /* if[1] */}}
|
||||||
|
{{- range $mountName, $mountEntry := $mountData }} {{- /* range[1] */}}
|
||||||
|
- name: {{ printf "%s-extra" $mountName }}
|
||||||
|
mountPath: {{ $mountEntry.path }}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end }} {{- /* /range[0] */}}
|
||||||
|
{{- end }} {{- /* /if[0] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.core.pod.container.ports" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "ports") -}}
|
||||||
|
{{- if .ports }} {{- /* if[0] */}}
|
||||||
|
ports:
|
||||||
|
{{- range $k, $v := .ports }} {{- /* range[0] */}}
|
||||||
|
{{- if and (kindIs "string" $v) (eq $k "raw") }} {{- /* if[1] */}}
|
||||||
|
{{- fail "raw port should be an array of ports" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if ne $k "raw" }}
|
||||||
|
{{- $service := include "lib.helpers.lookup.service" (dict "ctx" $.ctx "key" $k) | fromYaml -}}
|
||||||
|
{{- $ports := index $service "ports" }}
|
||||||
|
{{- range $port := $v }}
|
||||||
|
{{- $protocol := index (index $ports $port) "protocol" }}
|
||||||
|
{{- $containerPort := index (index $ports $port) "targetPort" }}
|
||||||
|
- containerPort: {{ $containerPort }}
|
||||||
|
protocol: {{ $protocol }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
|
{{ $v | toYaml | indent 2 -}}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /range[0] */ -}}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
31
helm/charts/helm-library/templates/helpers/_chart.tpl
Normal file
31
helm/charts/helm-library/templates/helpers/_chart.tpl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{{/*
|
||||||
|
Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "chart.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 "chart.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 "chart.chart" -}}
|
||||||
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
11
helm/charts/helm-library/templates/helpers/_converter.tpl
Normal file
11
helm/charts/helm-library/templates/helpers/_converter.tpl
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{{- define "lib.helpers.convertToJson" -}}
|
||||||
|
{{ toString (toJson . ) }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "lib.helpers.convertToToml" -}}
|
||||||
|
{{ toString (toToml .) }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "lib.helpers.convertToYaml" -}}
|
||||||
|
{{ toString (toYaml .) }}
|
||||||
|
{{- end -}}
|
31
helm/charts/helm-library/templates/helpers/_hash.tpl
Normal file
31
helm/charts/helm-library/templates/helpers/_hash.tpl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{{/*
|
||||||
|
* Populate hashes from configmaps and secret to
|
||||||
|
* trigger pod restart after config was changed
|
||||||
|
* TODO: Remove the extra empty line after annotations
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.helpers.hashes" -}} {{- /* define[0] */ -}}
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- A note from the library:
|
||||||
|
# -- Pod annotations currently only support hashes of mounted
|
||||||
|
# -- config files and env variables and annotations inherited from
|
||||||
|
# -- the deployment
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
{{ range $k, $v := .env -}} {{/* range[1] */ -}}
|
||||||
|
{{- if $v.enabled -}} {{- /* if[2] */ -}}
|
||||||
|
{{
|
||||||
|
include "lib.helpers.hash"
|
||||||
|
(dict "kind" "env" "name" $k "data" $v.data)
|
||||||
|
}}
|
||||||
|
{{ end -}} {{/* /if[2] */ -}}
|
||||||
|
{{- end -}} {{- /* /range[1] */ -}}
|
||||||
|
{{ range $k, $v := .files -}} {{/* range[1] */ -}}
|
||||||
|
{{
|
||||||
|
include "lib.helpers.hash"
|
||||||
|
(dict "kind" "file" "name" $k "data" ($v).entries)
|
||||||
|
}}
|
||||||
|
{{- end -}} {{- /* /range[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.helpers.hash" -}} {{- /* define[0] */ -}}
|
||||||
|
{{ printf "helm.badhouseplants.net/%s-%s" .kind .name }}: {{ .data | toString | sha256sum }}
|
||||||
|
{{- end -}} {{- /* /end[0] */ -}}
|
32
helm/charts/helm-library/templates/helpers/_lookup.tpl
Normal file
32
helm/charts/helm-library/templates/helpers/_lookup.tpl
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{{- define "lib.helpers.lookup.env" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "key") -}}
|
||||||
|
{{- $data := (index .ctx.Values.config.env .key) -}}
|
||||||
|
{{- if not $data }} {{- /* if[1] */}}
|
||||||
|
{{- fail (printf "entry %s is not found in env" .key) }}
|
||||||
|
{{- else -}} {{- /* .if[1] */ -}}
|
||||||
|
{{ toYaml $data }}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.helpers.lookup.storage" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "key") -}}
|
||||||
|
{{- $data := (index .ctx.Values.storage .key) -}}
|
||||||
|
{{- if not $data }} {{- /* if[1] */}}
|
||||||
|
{{- fail (printf "entry %s is not found in storage" .key) }}
|
||||||
|
{{- else -}} {{- /* .if[1] */ -}}
|
||||||
|
{{ toYaml $data }}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{- define "lib.helpers.lookup.service" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "key") -}}
|
||||||
|
{{- $data := (index .ctx.Values.services .key) -}}
|
||||||
|
{{- if not $data }} {{- /* if[1] */}}
|
||||||
|
{{- fail (printf "entry %s is not found in services" .key) }}
|
||||||
|
{{- else -}} {{- /* .if[1] */ -}}
|
||||||
|
{{ toYaml $data }}
|
||||||
|
{{- end -}} {{- /* /if[1] */ -}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
46
helm/charts/helm-library/templates/metadata/_metadata.tpl
Normal file
46
helm/charts/helm-library/templates/metadata/_metadata.tpl
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{{/*
|
||||||
|
* Metadata is accepting a dict as an argument
|
||||||
|
* dict should contain the following keys:
|
||||||
|
* - ctx
|
||||||
|
* - name (optional)
|
||||||
|
* - labels
|
||||||
|
* - annotations (optional)
|
||||||
|
* TODO: Add a check to labels for an empty map (Labels must not be empty)
|
||||||
|
* TODO: Think about whether it's a good idea to let this function create resoutce with any namy
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.metadata" -}} {{- /* define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{- include "lib.error.noKey" (dict "ctx" . "key" "labels") -}}
|
||||||
|
{{- if .name -}} {{- /* if[1] */ -}}
|
||||||
|
name: {{ .name }}
|
||||||
|
{{- else -}}
|
||||||
|
name: {{ include "lib.chart.fullname" (dict "ctx" .ctx) }}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
labels:
|
||||||
|
{{ .labels | indent 2 }}
|
||||||
|
{{- if .annotations }} {{- /* if[1] */}}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml .annotations | indent 2 }}
|
||||||
|
{{- end }} {{- /* /if[1] */}}
|
||||||
|
{{- end }} {{- /* /define[0] */ -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
* Merge global helm labels with custom ones
|
||||||
|
* accepts:
|
||||||
|
* ctx
|
||||||
|
* global (optional) - Labels that are defined for
|
||||||
|
* all resources
|
||||||
|
* local (optional) - Labels that are define only for
|
||||||
|
* the current resource
|
||||||
|
*/}}
|
||||||
|
{{- define "lib.metadata.mergeLabels" -}} {{- /* /define[0] */ -}}
|
||||||
|
{{- include "lib.error.noCtx" . -}}
|
||||||
|
{{ include "lib.chart.labels" (dict "ctx" .ctx) }}
|
||||||
|
{{- range $key, $val := .global }} {{- /* /range[1] */}}
|
||||||
|
{{ $key }}: {{ $val | quote }}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- range $key, $val := .local }} {{- /* /range[1] */}}
|
||||||
|
{{ $key }}: {{ $val | quote }}
|
||||||
|
{{- end }} {{- /* /range[1] */}}
|
||||||
|
{{- end -}} {{- /* /define[0] */ -}}
|
||||||
|
|
5
helm/charts/helm-library/values.yaml
Normal file
5
helm/charts/helm-library/values.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# @schema
|
||||||
|
# type: string
|
||||||
|
# @schema
|
||||||
|
# -- helm-docs description here
|
||||||
|
test: test
|
6
helm/templates/install.yaml
Normal file
6
helm/templates/install.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{{ include "lib.component.workload" (dict "ctx" .)}}
|
||||||
|
{{ include "lib.component.service" (dict "ctx" .) }}
|
||||||
|
{{ include "lib.component.ingress" (dict "ctx" .) }}
|
||||||
|
{{ include "lib.component.environment" (dict "ctx" .) }}
|
||||||
|
{{ include "lib.component.storage" (dict "ctx" .) }}
|
||||||
|
{{ include "lib.component.templates" (dict "ctx" .) }}
|
63
helm/values.yaml
Normal file
63
helm/values.yaml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
---
|
||||||
|
shortcuts:
|
||||||
|
hostname: xray-docs.badhouseplants.net
|
||||||
|
|
||||||
|
base:
|
||||||
|
workload:
|
||||||
|
kind: Deployment
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
containers:
|
||||||
|
xray-docs:
|
||||||
|
image:
|
||||||
|
registry: zot.badhouseplants.net
|
||||||
|
repository: badhouseplants/xray-docs
|
||||||
|
tag: latest
|
||||||
|
pullPolicy: Always
|
||||||
|
ports:
|
||||||
|
main:
|
||||||
|
- http
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 80
|
||||||
|
initialDelaySeconds: 3
|
||||||
|
periodSeconds: 3
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 80
|
||||||
|
initialDelaySeconds: 3
|
||||||
|
periodSeconds: 3
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
main:
|
||||||
|
enabled: true
|
||||||
|
class: traefik
|
||||||
|
rules:
|
||||||
|
- host: "{{ .Values.shortcuts.hostname }}"
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: '{{ include "chart.fullname" $ }}-main'
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- "{{ .Values.shortcuts.hostname }}"
|
||||||
|
secretName: "{{ .Values.shortcuts.hostname }}"
|
||||||
|
extraVolumes:
|
||||||
|
logs:
|
||||||
|
emptyDir: {}
|
||||||
|
services:
|
||||||
|
main:
|
||||||
|
enabled: true
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
protocol: TCP
|
Loading…
Reference in New Issue
Block a user