3.7 KiB
sample-tenant
The sample tenant chart demonstrates how to use umbrella charts with default values, e.g. to define tenant templates
sample-tenant Chart Configuration
You can customize / configure sample-tenant 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.domainin 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.chartNameThe name of the chart as in.Chart.Name, but with override by.Values.nameOverride -
.component.shortChartNameA shorter Version of the name -napplinstead ofnplus-component-nappl -
.component.prefixThe instance Prefix used to name the resources including-. This prefix is dropped, if the.Release.Nameequals.Release.Namespacefor those of you that only run one nplus Instance per namespace -
.component.nameThe name of the component, including.Values.nameOverrideand some logic -
.component.fullNameThe fullName inlcuding.Values.fullnameOverrideand some logic -
.component.chartMainly theChart.NameandChart.Version -
.component.storagePathThe path where the component config is stored in the conf PVC -
.component.handlerThe handler (either helm, argoCD or manual) -
.instance.nameThe name of the instance, but with override by.Values.instanceOverride -
.instance.groupThe group, this instance belongs to. Override by.Values.groupOverride -
.instance.versionThe nscale version (mostly taken from Application Layer), this instance is deploying. -
.environment.nameThe 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 |
|---|---|---|
| global.ingress.domain | `"{{ .instance.group | |
| instance.application.docAreas[0].id | "Sample" |
|
| instance.components.application | true |