Files
nplus/samples/environment/README.md
2025-01-24 16:18:47 +01:00

70 lines
2.4 KiB
Markdown

# K8s namespace aka *nplus environment*
*nplus instances* are deployed into K8s namespaces. Always. even if you do not specify a namespace, it uses a namespace: `default`.
In order to use this namespace for *nplus instances*, you need to deploy some shared *nplus components* into it, which are used by the instances. This is done by the environment chart:
```
helm install \
--values demo.yaml \
demo nplus/nplus-environment
```
After that, the K8s namespace is a valid *nplus environment* that can house multiple *nplus instances*.
## deploying assets into the environment
Most likely, you will need assets to be used by your instances. Fonts for example: The *nscale Rendition Server* and die *nscale Server Application Layer* both require the Microsoft fonts, that are not allowed to be distributed by neither nscale nor nplus. So this example shows how to upload some missing pieces into the environment:
```
kubectl cp ./apps/app-installer-9.0.1202.jar nplus-toolbox-0:/conf/pool
kubectl cp ./fonts nplus-toolbox-0:/conf/pool
kubectl cp ./copy-snippet.sh nplus-toolbox-0:/conf/pool/scripts
kubectl cp ./test.md nplus-toolbox-0:/conf/pool/snippets
kubectl cp ./snc nplus-toolbox-0:/conf/pool
```
Alternatively, you can also use a `prepper` component, that you can activate on the environment chart, to download assets from any web site and deploy them into the environment:
```
components:
prepper: true
prepper:
download:
- "https://git.nplus.cloud/public/nplus/raw/branch/master/assets/sample.tar.gz"
```
Please see the prepper [README.md](../../charts/prepper/README.md) for more information.
## Operator Web UI
The environment comes with the operator, responsible for managing / controlling the [custom resources](../cluster/README.md). It has a Web UI, that can be enabled in the environment chart.
![screenshot operator](assets/operator.png)
## *namespace*-less manifests
Speaking of namespaces: Sometimes you want to drop the namespace from your manifest. This can be done by
```yaml
utils:
includeNamespace: false
```
when you then call
```bash
helm template myInstance nplus/nplus-instance > myInstance.yaml
```
the manifest in `myInstance.yaml` will **not** have a namespace set, so you can apply it to multiple namespaces later:
```bash
kubectl apply --namespace dev -f myInstance.yaml
kubectl apply --namespace qa -f myInstance.yaml
kubectl apply --namespace prod -f myInstance.yaml
```