Public Information

This commit is contained in:
2025-01-24 16:18:47 +01:00
commit 0bd2038c86
449 changed files with 108655 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
apiVersion: v2
name: nplus-environment-backend
description: Installs Namespace-Wide Resources such as the conf PVC and the ptemp PVC
icon: data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNTEuMDI0IDUxLjAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNTEuMDI0IDUxLjAyNCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBvbHlnb24gZmlsbD0iI0E0QkZFNCIgcG9pbnRzPSIzMi4zMjIsMTkuNzQ0IDIwLjY0OSwxOS43NDQgMTguNTkxLDMxLjQxNyAzMC4yNjQsMzEuNDE3IAkiLz4KCTxwb2x5Z29uIGZpbGw9IiNBNEJGRTQiIHBvaW50cz0iNDcuMTg1LDE5Ljc0NCAzNS41MTIsMTkuNzQ0IDMzLjQ1NCwzMS40MTcgNDUuMTI2LDMxLjQxNyAJIi8+Cgk8cG9seWdvbiBmaWxsPSIjQTRCRkU0IiBwb2ludHM9IjI5Ljc2NiwzNC41NTEgMTguMDk0LDM0LjU1MSAxNi4wMzUsNDYuMjI0IDI3LjcwOCw0Ni4yMjQgCSIvPgoJPHBvbHlnb24gZmlsbD0iI0E0QkZFNCIgcG9pbnRzPSIxNy41NywxOS43NDQgNS44OTcsMTkuNzQ0IDMuODM5LDMxLjQxNyAxNS41MTIsMzEuNDE3IAkiLz4KCTxwb2x5Z29uIGZpbGw9IiNBNEJGRTQiIHBvaW50cz0iMzUuMTUsNC43OTkgMjMuNDc3LDQuNzk5IDIxLjQxOSwxNi40NzIgMzMuMDkyLDE2LjQ3MiAJIi8+Cjwvc3ZnPgo=
type: application
dependencies:
- name: nplus-globals
alias: globals
version: "*-0"
repository: "file://../globals"
version: 1.0.0

115
charts/envbackend/README.md Normal file
View File

@@ -0,0 +1,115 @@
# nplus-environment-backend
Installs Namespace-Wide Resources such as the conf PVC and the ptemp PVC
## nplus-environment-backend Chart Configuration
You can customize / configure nplus-environment-backend by setting configuration values on the command line or in values files,
that you can pass to helm. Please see the samples directory for details.
In case there is no value set, the key will not be used in the manifest, resulting in values taken from the config files of the component.
### Template Functions
You can use template functions in the values files. If you do so, make sure you quote correctly (single quotes, if you have double quotes in the template,
or escaped quotes).
### Global Values
All values can be set per component, per instance or globally per environment.
Example: `global.ingress.domain` sets the domain on instance level. You can still set a different domain on a component, such as administrator.
In that case, simply set `ingress.domain` for the administrator chart and that setting will have priority:
- Prio 1 - Component Level: `ingress.domain`
- Prio 2 - Instance Level: `global.ingress.domain`
- Prio 3 - Environment Level: `global.environment.ingress.domain`
### Using Values in Templates
As it would be a lot of typing to write `.Values.ingress.domain | default .Values.global.ingress.domain | default .Values.global.environment.ingress.domain`in your
template code, this is automatically done by nplus. You can simply type `.this.ingress.domain` and you will get a condensed and defaulted version
of your Values.
So an example in your `values.yaml` would be:
```
administrator:
waitFor:
- '-service {{ .component.prefix }}nappljobs.{{ .Release.Namespace }}.svc.cluster.local:\{{ .this.nappl.port }} -timeout 600'
```
This example shows `.this.nappl.port` which might come from a component, instance or global setting. You do not need to care.
The `.Release.Namespace` is set by helm. You have access to all Release and Chart Metadata, just like in your chart code.
The `.component.prefix` is calculated by nplus and gives you some handy shortcuts to internal variables:
- `.component.chartName`
The name of the chart as in `.Chart.Name`, but with override by `.Values.nameOverride`
- `.component.shortChartName`
A shorter Version of the name - `nappl` instead of `nplus-component-nappl`
- `.component.prefix`
The instance Prefix used to name the resources including `-`. This prefix is dropped, if the
`.Release.Name` equals `.Release.Namespace` for those of you that only
run one nplus Instance per namespace
- `.component.name`
The name of the component, including `.Values.nameOverride` and some logic
- `.component.fullName`
The fullName inlcuding `.Values.fullnameOverride` and some logic
- `.component.chart`
Mainly the `Chart.Name` and `Chart.Version`
- `.component.storagePath`
The path where the component config is stored in the conf PVC
- `.component.handler`
The handler (either helm, argoCD or manual)
- `.instance.name`
The name of the instance, but with override by `.Values.instanceOverride`
- `.instance.group`
The group, this instance belongs to. Override by `.Values.groupOverride`
- `.instance.version`
The *nscale* version (mostly taken from Application Layer), this instance is deploying.
- `.environment.name`
The name of the environment, but with override by `.Values.environmentNameOverride`
### Keys
You can set any of the following values for this component:
| Key | Description | Default |
|-----|-------------|---------|
env | Sets additional environment variables for the configuration. | |
envMap | Sets the name of a configMap, which holds additional environment variables for the configuration. It is added as envFrom configMap to the container. | |
envSecret | Sets the name of a secret, which holds additional environment variables for the configuration. It is added as envFrom secretRef to the container. | |
fullnameOverride | This overrides the output of the internal fullname function | |
**meta**​.language | Sets the language of the main service (in the *service* container). This is used for instance if you turn OpenTelemetry on, to know which Agent to inject into the container. | |
**meta**​.provider | sets provider (partner, reseller) information to be able to invoice per use in a cloud environment | |
**meta**​.serviceContainer | The container name of the main service for this component. This is used to define where to inject the telemetry agents, if any | |
**meta**​.stage | A optional parameter to indicate the stage (DEV, QA, PROD, ...) this component, instance or environment runs in. This can be used in template functions to add the stage to for instance the service name of telemetry services like open telemetry. (see telemetry example) | |
**meta**​.tenant | sets tenant information to be able to invoice per use in a cloud environment | |
**meta**​.type | the type of the component. You should not change this value, except if you use a pipeliner in core mode. In core mode, it should be *core*, else *pipeliner* This type is used to create cluster communication for nappl and nstl and potentially group multiple replicaSets into one service. | |
**meta**​.wave | Sets the wave in which this component should be deployed within an ArgoCD deployment if unset, it uses the default wave thus all components are installed in one wave, then relying on correct wait settings just like in a helm installation | |
minReplicaCountType | if you set minReplicaCountType, a podDesruptionBudget will be created with this value as minAvailable, using the component type as selector. This is useful for components, that are spread across multiple replicaSets, like sharepoint or storage layer | |
nameOverride | This overrides the output of the internal name function | |
nodeSelector | select specific nodes for this component | |
**storage**​.conf​.name | this is the name of the common config storage. please see section "Storage" for more information | |
**storage**​.conf​.size | this is the size of the common config storage. please see section "Storage" for more information | |
**storage**​.conf​.volumeName | you can set the volumeName to the value of a pre-existing volume to avoid having the PV created for you by the csi driver provisioner | |
**storage**​.ptemp​.name | this is the name of the common persistant temp storage. please see section "Storage" for more information | |
**storage**​.ptemp​.size | this is the size of the common ptemp storage. please see section "Storage" for more information | |
**storage**​.ptemp​.volumeName | you can set the volumeName to the value of a pre-existing volume to avoid having the PV created for you by the csi driver provisioner | |
**telemetry**​.openTelemetry | turns Open Telemetry on | |
**telemetry**​.serviceName | Sets the service name for the telemetry service to more convenient identify the displayed component Example: "{{ .this.meta.type }}-{{ .instance.name }}" | |
terminationGracePeriodSeconds | Sets the terminationGracePeriodSeconds for the component If not set, it uses the Kubernetes defaults | |
timezone | set the time zone for this component to make sure log output has a specific timestamp, internal dates and times are correct (like the creationDate in nappl) etc. | `Europe/Berlin` |
tolerations | Set tolerations for this component | |
**utils**​.debug | Turn debugging *on* will give you stack trace etc. Please check out the Chart Developer Guide | `false` |
**utils**​.disableWait | in case you use the argoCD Wave feature, you might think about switching off the waitFor mechanism, that makes sure PODs are only started after pre-requisites are fulfilled. You can disable the starndard wait mechanism, but at your own risk, as this might start components even if they are not intended to run yet. | `false` |
**utils**​.disableWave | If you use argoCD, you most likely want to use the argo Wave Feature as well, making sure the components of an instance are deployed ordered. However, in DEV you might want to disable this to allow live changing components while previous waves are not finished yet. | `false` |
**utils**&#8203;.includeNamespace | By default, the namespace is rendered into the manifest. However, if you want to use `helm template` and store manifests for later applying them to multiple namespaces, you might want to turn this `false` to be able to use `kubectl apply -n <namespace> -f template.yaml` later | `true` |
**utils**&#8203;.maintenance | in Maintenance Mode, all *waitFor* actions will be skipped, the *Health Checks* are ignored and the pods will start in idle, not starting the service at all. This will allow you to gain access to the container to perform recovery and maintenance tasks while having the real container up. | `false` |
**utils**&#8203;.renderComments | You can turn Comment rendering *on* to get descriptive information inside the manifests. It will also fail on depricated functions and keys, so it is recommended to only switch it off in PROD | `true` |

View File

@@ -0,0 +1,43 @@
{{- include "nplus.init" $ -}}
# The "conf" PVC is used to store all config data of the nplus components.
# You may want to use a git repo on this conf store
{{- if ((.this.storage).conf).name }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ required "You have to define a name for the conf PVC" ((.this.storage).conf).name }}
{{- if .this.utils.includeNamespace }}
namespace: {{ .Release.Namespace }}
{{- end }}
labels:
{{- include "nplus.environmentLabels" . | nindent 4 }}
annotations:
{{- include "nplus.argoSharedResource" . | nindent 4 }}
spec:
{{- if ((.this.storage).conf).volumeName }}
# -- You have set storage.conf.volumeName,
# so we add the volumeName here to avoid automatic
# volume generation and rather use an existing volume
# to bind to this PVC.
volumeName: {{ tpl .this.storage.conf.volumeName . }}
# -- set an empty string must be explicitly set otherwise default StorageClass will be set
# see https://kubernetes.io/docs/concepts/storage/persistent-volumes/
storageClassName: ""
{{- else }}
# -- volumeName: storage.conf.volumeName
# If you set the volumeName, it appears here. You
# have not done so, so the provisioner for this
# volume class will pick up this claim and fulfill it.
{{- $scn := ((.this.storage).conf).class }}
{{- if $scn }}
storageClassName: {{ $scn | quote }}
{{- end }}
{{- end }}
accessModes:
- ReadWriteMany
resources:
requests:
storage: {{ required "You have to define a size for the conf PVC" ((.this.storage).conf).size }}
{{- end }}

View File

@@ -0,0 +1,44 @@
{{- include "nplus.init" $ -}}
# The "ptemp" PVC is used to persist temporary data of the nplus components.
# This is used e.g. in nstl, to store accounting.log info to make sure it is not deleted
# during a PODs recreate
{{- if ((.this.storage).ptemp).name }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ required "You have to define a name for the ptemp PVC" ((.this.storage).ptemp).name }}
{{- if .this.utils.includeNamespace }}
namespace: {{ .Release.Namespace }}
{{- end }}
labels:
{{- include "nplus.environmentLabels" . | nindent 4 }}
annotations:
{{- include "nplus.argoSharedResource" . | nindent 4 }}
spec:
{{- if ((.this.storage).ptemp).volumeName }}
# -- You have set storage.ptemp.volumeName,
# so we add the volumeName here to avoid automatic
# volume generation and rather use an existing volume
# to bind to this PVC.
volumeName: {{ tpl .this.storage.ptemp.volumeName . }}
# -- set an empty string must be explicitly set otherwise default StorageClass will be set
# see https://kubernetes.io/docs/concepts/storage/persistent-volumes/
storageClassName: ""
{{- else }}
# -- volumeName: storage.ptemp.volumeName
# If you set the volumeName, it appears here. You
# have not done so, so the provisioner for this
# volume class will pick up this claim and fulfill it.
{{- $scn := ((.this.storage).ptemp).class }}
{{- if $scn }}
storageClassName: {{ $scn | quote }}
{{- end }}
{{- end }}
accessModes:
- ReadWriteMany
resources:
requests:
storage: {{ required "You have to define a size for the ptemp PVC" ((.this.storage).ptemp).size }}
{{- end }}

View File

@@ -0,0 +1,258 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"env": {
"default": "",
"description": "Sets additional environment variables for the configuration.",
"title": "env"
},
"envMap": {
"default": "",
"description": "Sets the name of a configMap, which holds additional environment variables for the configuration. It is added as envFrom configMap to the container.",
"title": "envMap"
},
"envSecret": {
"default": "",
"description": "Sets the name of a secret, which holds additional environment variables for the configuration. It is added as envFrom secretRef to the container.",
"title": "envSecret"
},
"fullnameOverride": {
"default": "",
"description": "This overrides the output of the internal fullname function",
"title": "fullnameOverride"
},
"global": {
"description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.",
"title": "global",
"type": "object"
},
"globals": {
"description": "nplus Global Functions Library Chart",
"properties": {
"global": {
"description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.",
"title": "global",
"type": "object"
}
},
"title": "nplus-globals",
"type": "object"
},
"meta": {
"additionalProperties": false,
"properties": {
"componentVersion": {
"default": "",
"description": "This is the version of the component, used for display @internal -- set by devOps pipeline, so do not modify",
"title": "componentVersion"
},
"language": {
"default": "",
"description": "Sets the language of the main service (in the *service* container). This is used for instance if you turn OpenTelemetry on, to know which Agent to inject into the container.",
"title": "language"
},
"ports": {
"additionalProperties": false,
"description": "lists the ports this component exposes. This is important for zero trust mode and others.",
"properties": {
"http": {
"default": "",
"description": "The http port this component uses (if any). In zero trust mode, this will be disabled. @internal -- this is a constant value of the component and should not be changed.",
"title": "http"
},
"https": {
"default": "",
"description": "The tls / https port, this component uses (if any) @internal -- this is a constant value of the component and should not be changed.",
"title": "https"
},
"rmi": {
"default": "",
"description": "A potential rmi port, this component uses (if any) @internal -- this is a constant value of the component and should not be changed.",
"title": "rmi"
},
"tcp": {
"default": "",
"description": "A potential tcp port, this component uses (if any) @internal -- this is a constant value of the component and should not be changed.",
"title": "tcp"
},
"tcps": {
"default": "",
"description": "A potential tls / tcps port, this component uses (if any) @internal -- this is a constant value of the component and should not be changed.",
"title": "tcps"
}
},
"title": "ports"
},
"provider": {
"default": "",
"description": "sets provider (partner, reseller) information to be able to invoice per use in a cloud environment",
"title": "provider"
},
"serviceContainer": {
"default": "",
"description": "The container name of the main service for this component. This is used to define where to inject the telemetry agents, if any",
"title": "serviceContainer"
},
"stage": {
"default": "",
"description": "A optional parameter to indicate the stage (DEV, QA, PROD, ...) this component, instance or environment runs in. This can be used in template functions to add the stage to for instance the service name of telemetry services like open telemetry. (see telemetry example)",
"title": "stage"
},
"tenant": {
"default": "",
"description": "sets tenant information to be able to invoice per use in a cloud environment",
"title": "tenant"
},
"type": {
"default": "",
"description": "the type of the component. You should not change this value, except if you use a pipeliner in core mode. In core mode, it should be *core*, else *pipeliner* This type is used to create cluster communication for nappl and nstl and potentially group multiple replicaSets into one service.",
"title": "type"
},
"wave": {
"default": "",
"description": "Sets the wave in which this component should be deployed within an ArgoCD deployment if unset, it uses the default wave thus all components are installed in one wave, then relying on correct wait settings just like in a helm installation",
"title": "wave"
}
},
"title": "meta",
"type": "object"
},
"minReplicaCountType": {
"default": "",
"description": "if you set minReplicaCountType, a podDesruptionBudget will be created with this value as minAvailable, using the component type as selector. This is useful for components, that are spread across multiple replicaSets, like sharepoint or storage layer",
"title": "minReplicaCountType"
},
"nameOverride": {
"default": "",
"description": "This overrides the output of the internal name function",
"title": "nameOverride"
},
"nodeSelector": {
"default": "",
"description": "select specific nodes for this component",
"title": "nodeSelector"
},
"storage": {
"additionalProperties": false,
"properties": {
"conf": {
"additionalProperties": false,
"properties": {
"name": {
"default": "",
"description": "this is the name of the common config storage. please see section \"Storage\" for more information",
"title": "name"
},
"size": {
"default": "",
"description": "this is the size of the common config storage. please see section \"Storage\" for more information",
"title": "size"
},
"volumeName": {
"default": "",
"description": "you can set the volumeName to the value of a pre-existing volume to avoid having the PV created for you by the csi driver provisioner",
"title": "volumeName"
}
},
"title": "conf",
"type": "object"
},
"ptemp": {
"additionalProperties": false,
"properties": {
"name": {
"default": "",
"description": "this is the name of the common persistant temp storage. please see section \"Storage\" for more information",
"title": "name"
},
"size": {
"default": "",
"description": "this is the size of the common ptemp storage. please see section \"Storage\" for more information",
"title": "size"
},
"volumeName": {
"default": "",
"description": "you can set the volumeName to the value of a pre-existing volume to avoid having the PV created for you by the csi driver provisioner",
"title": "volumeName"
}
},
"title": "ptemp",
"type": "object"
}
},
"title": "storage",
"type": "object"
},
"telemetry": {
"additionalProperties": false,
"description": "Settings for telemetry tools",
"properties": {
"openTelemetry": {
"default": "",
"description": "turns Open Telemetry on",
"title": "openTelemetry"
},
"serviceName": {
"default": "",
"description": "Sets the service name for the telemetry service to more convenient identify the displayed component Example: \"{{ .this.meta.type }}-{{ .instance.name }}\"",
"title": "serviceName"
}
},
"title": "telemetry"
},
"terminationGracePeriodSeconds": {
"default": "",
"description": "Sets the terminationGracePeriodSeconds for the component If not set, it uses the Kubernetes defaults",
"title": "terminationGracePeriodSeconds"
},
"timezone": {
"default": "`Europe/Berlin`",
"description": "set the time zone for this component to make sure log output has a specific timestamp, internal dates and times are correct (like the creationDate in nappl) etc.",
"title": "timezone"
},
"tolerations": {
"default": "",
"description": "Set tolerations for this component",
"title": "tolerations"
},
"utils": {
"additionalProperties": false,
"properties": {
"debug": {
"default": "`false`",
"description": "Turn debugging *on* will give you stack trace etc. Please check out the Chart Developer Guide",
"title": "debug"
},
"disableWait": {
"default": "`false`",
"description": "in case you use the argoCD Wave feature, you might think about switching off the waitFor mechanism, that makes sure PODs are only started after pre-requisites are fulfilled. You can disable the starndard wait mechanism, but at your own risk, as this might start components even if they are not intended to run yet.",
"title": "disableWait"
},
"disableWave": {
"default": "`false`",
"description": "If you use argoCD, you most likely want to use the argo Wave Feature as well, making sure the components of an instance are deployed ordered. However, in DEV you might want to disable this to allow live changing components while previous waves are not finished yet.",
"title": "disableWave"
},
"includeNamespace": {
"default": "`true`",
"description": "By default, the namespace is rendered into the manifest. However, if you want to use `helm template` and store manifests for later applying them to multiple namespaces, you might want to turn this `false` to be able to use `kubectl apply -n <namespace> -f template.yaml` later",
"title": "includeNamespace"
},
"maintenance": {
"default": "`false`",
"description": "in Maintenance Mode, all *waitFor* actions will be skipped, the *Health Checks* are ignored and the pods will start in idle, not starting the service at all. This will allow you to gain access to the container to perform recovery and maintenance tasks while having the real container up.",
"title": "maintenance"
},
"renderComments": {
"default": "`true`",
"description": "You can turn Comment rendering *on* to get descriptive information inside the manifests. It will also fail on depricated functions and keys, so it is recommended to only switch it off in PROD",
"title": "renderComments"
}
},
"title": "utils",
"type": "object"
}
},
"type": "object"
}

View File

@@ -0,0 +1,131 @@
# yaml-language-server: $schema=values.schema.json
storage:
conf:
# -- this is the name of the common config storage.
# please see section "Storage" for more information
name:
# -- this is the size of the common config storage.
# please see section "Storage" for more information
size:
# -- you can set the volumeName to the value of a pre-existing
# volume to avoid having the PV created for you by the csi driver provisioner
volumeName:
ptemp:
# -- this is the name of the common persistant temp storage.
# please see section "Storage" for more information
name:
# -- this is the size of the common ptemp storage.
# please see section "Storage" for more information
size:
# -- you can set the volumeName to the value of a pre-existing
# volume to avoid having the PV created for you by the csi driver provisioner
volumeName:
# -- set the time zone for this component to make sure log output has a specific timestamp, internal dates and times are correct (like the creationDate in nappl)
# etc.
# @default -- `Europe/Berlin`
timezone:
meta:
# -- the type of the component. You should not change this value, except if
# you use a pipeliner in core mode. In core mode, it should be *core*, else *pipeliner*
# This type is used to create cluster communication for nappl and nstl and potentially
# group multiple replicaSets into one service.
type:
# -- lists the ports this component exposes. This is important for zero trust mode and others.
ports:
# -- The http port this component uses (if any). In zero trust mode, this will be disabled.
# @internal -- this is a constant value of the component and should not be changed.
http:
# -- The tls / https port, this component uses (if any)
# @internal -- this is a constant value of the component and should not be changed.
https:
# -- A potential tcp port, this component uses (if any)
# @internal -- this is a constant value of the component and should not be changed.
tcp:
# -- A potential tls / tcps port, this component uses (if any)
# @internal -- this is a constant value of the component and should not be changed.
tcps:
# -- A potential rmi port, this component uses (if any)
# @internal -- this is a constant value of the component and should not be changed.
rmi:
# -- sets tenant information to be able to invoice per use in a cloud environment
tenant:
# -- sets provider (partner, reseller) information to be able to invoice per use in a cloud environment
provider:
# -- Sets the wave in which this component should be deployed within an ArgoCD deployment
# if unset, it uses the default wave thus all components are installed in one wave, then relying
# on correct wait settings just like in a helm installation
wave:
# -- Sets the language of the main service (in the *service* container). This is used for instance
# if you turn OpenTelemetry on, to know which Agent to inject into the container.
language:
# -- The container name of the main service for this component. This is used to define where to
# inject the telemetry agents, if any
serviceContainer:
# -- A optional parameter to indicate the stage (DEV, QA, PROD, ...) this component, instance or environment
# runs in. This can be used in template functions to add the stage to for instance the service name of
# telemetry services like open telemetry. (see telemetry example)
stage:
# -- This is the version of the component, used for display
# @internal -- set by devOps pipeline, so do not modify
componentVersion:
# -- Set tolerations for this component
tolerations:
# -- select specific nodes for this component
nodeSelector:
# -- Sets the name of a secret, which holds additional environment variables for
# the configuration. It is added as envFrom secretRef to the container.
envSecret:
# -- Sets the name of a configMap, which holds additional environment variables for
# the configuration. It is added as envFrom configMap to the container.
envMap:
# -- Sets additional environment variables for
# the configuration.
env:
# -- This overrides the output of the internal name function
nameOverride:
# -- This overrides the output of the internal fullname function
fullnameOverride:
utils:
# -- Turn debugging *on* will give you stack trace etc.
# Please check out the Chart Developer Guide
# @default -- `false`
debug:
# -- You can turn Comment rendering *on* to get descriptive information inside the manifests. It
# will also fail on depricated functions and keys, so it is recommended to only switch it off in PROD
# @default -- `true`
renderComments:
# -- By default, the namespace is rendered into the manifest. However, if you want to use
# `helm template` and store manifests for later applying them to multiple namespaces, you might
# want to turn this `false` to be able to use `kubectl apply -n <namespace> -f template.yaml` later
# @default -- `true`
includeNamespace:
# -- in Maintenance Mode, all *waitFor* actions will be skipped, the *Health Checks* are ignored and the
# pods will start in idle, not starting the service at all. This will allow you to gain access to the container
# to perform recovery and maintenance tasks while having the real container up.
# @default -- `false`
maintenance:
# -- If you use argoCD, you most likely want to use the argo Wave Feature as well, making sure the components
# of an instance are deployed ordered. However, in DEV you might want to disable this to allow live changing components
# while previous waves are not finished yet.
# @default -- `false`
disableWave:
# -- in case you use the argoCD Wave feature, you might think about switching off the waitFor mechanism, that makes sure PODs are
# only started after pre-requisites are fulfilled. You can disable the starndard wait mechanism, but at your own risk, as this might
# start components even if they are not intended to run yet.
# @default -- `false`
disableWait:
# -- if you set minReplicaCountType, a podDesruptionBudget will be created with this value as
# minAvailable, using the component type as selector. This is useful for components, that are spread
# across multiple replicaSets, like sharepoint or storage layer
minReplicaCountType:
# -- Settings for telemetry tools
telemetry:
# -- turns Open Telemetry on
openTelemetry:
# -- Sets the service name for the telemetry service to more convenient
# identify the displayed component
# Example: "{{ .this.meta.type }}-{{ .instance.name }}"
serviceName:
# -- Sets the terminationGracePeriodSeconds for the component
# If not set, it uses the Kubernetes defaults
terminationGracePeriodSeconds: