94 lines
4.9 KiB
Markdown
94 lines
4.9 KiB
Markdown
|
|
|
||
|
|
|
||
|
|
# nplus-instance-argo
|
||
|
|
|
||
|
|
nplus Instance ArgoCD Edition, supporting the deployment of npus Instances through ArgoCD
|
||
|
|
|
||
|
|
## nplus-instance-argo Chart Configuration
|
||
|
|
|
||
|
|
You can customize / configure nplus-instance-argo 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 |
|
||
|
|
|-----|-------------|---------|
|
||
|
|
**argocd**​.chart | The name of the chart to use for the instance | `"nplus-instance"` |
|
||
|
|
**argocd**​.destinationNamespace | ArgoCD can deploy to any Namespace on the destination Server. You have to specify it. Default is the release namespace | `"{{ .Release.Namespace }}"` |
|
||
|
|
**argocd**​.destinationServer | ArgoCD can also remote deploy Applications to alien clusters. The server specifies the API Endpoint of the Cluster, where the Application should be deployed | `"https://kubernetes.default.svc"` |
|
||
|
|
**argocd**​.namespace | The ArgoCD Namespace within the cluster. The ArgoCD Application will be deployed to this namespace You will need write privileges for this namespace | `"argocd"` |
|
||
|
|
**argocd**​.project | ArgoCD organizes Applications in Projects. This is the name of the project, the application should be deployed to | `"default"` |
|
||
|
|
**argocd**​.prune | Toggle pruning for this Application | `true` |
|
||
|
|
**argocd**​.repo | Specifiy the helm repo, from which ArgoCD should load the chart. Please make sure ArgoCD gets access rights to this repo | `"https://git.nplus.cloud"` |
|
||
|
|
**argocd**​.selfHeal | Toggle self healing feature for this Application | `true` |
|
||
|
|
**global**​.meta​.isArgo | specifies that this is an Argo Installation. Used to determine the correct handler in the chart <br>Do not change | **info only**, do not change<br> `true` |
|
||
|
|
|