7.0 KiB
The Samples
-
Remote Management Server
Shows how you can setup an nplus Remote Management Server and expose a complete Instance on a single virtual IP Adress to be able to connect with the nscale Administrator from your desktop and even perform any offline configuration tasks, such as configuring the nscale Pipeliner with its cold.xml. -
- shows how to deploy an nplus Application, inlcuding creating a Document area in the nscale Application Layer and installing nscale Business Apps or custom Generic Base Apps into multiple Document Areas.
- It also demonstrates how to use the prepper component to download assets from git or any other artifacs site.
-
- shows how to connect the nscale Storage Layer to an Amazon S3 Object Store, an Azure Blobstore or any other compatiple Object Store, like CephGW or min.io
- it also demonstrates the use of envMaps and envSecrets to set environment variables outside the values.yaml file
-
- shows how to disable certificate generation and use a prepared static certificate for the ingress
- it also talks about the pitfalls of
.this
-
Cluster
shows how to render a cluster chart and prepare the cluster for nplus -
Defaults
Renders a minimalistic Instance manifest without any customization -
Detached Applications
Shows how to separate the application from the instance but still use them in tandem. This technique is used to be able to separately update instance and application. -
Environments
holds values for different environments, such as a lab environment (which is used for our internal test cases) or a production environment -
- Large Instances can be split easily and re-grouped again with the
.instance.grouptag. This example shows how. - It also shows how to switch off any certificate or networkPolicy creation at Instance Level
- Large Instances can be split easily and re-grouped again with the
-
- showcases a full High Availability szenario, including a dedicated nappljobs and redundant components to reduce the risk of outages
-
- shows how to enable highest ID checking in nstl.
-
No Waves
Shows how to set up a simple argoCD Application without using any waves but just relying on waitFor -
Version Pinning
There are several ways how to pin the version of nscale components. This example shows how to stay flexible in terms of nplus versions and still pin nscale to a specific version. -
- demonstrates how for different environments, for different tenants depending on the usage (like amount of concurrent users) or scenarios alike, you might want to use different sets of resouce definitions for RAM, CPU or HD Space.
-
Security
IT Security is an important aspect when running an nplus Environment. This example shows- how to configure https for all inter-Pod communications, and
- how to force all connections to be encrypted. (Zero Trust Mode)
-
Shared Services
You might want to have a central nplus Instance that can be used by multiple tenants. This example shows how to do that. -
SharePoint Retrieval HA
Normally, you either have HA with multiple replicas or you use multiple instances if you want different configurations per instance. This example shows how you can combine both approaches: Having mutliple instances with different configuration (for archiving) and a global ingress to all instances (for HA retrieval) -
Single Instance Mode
Some nplus subscribers use maximum tenant separation, so not only firewalling each component, but also running each Instance in a dedicated Namespace. This shows how to enable Single Instance Mode, that melts the environment and instance together in a single deployment. -
Static Volumes
Shows how to disable dynamic volume provisioning (depending on the storage class) and use pre-created static volumes instead. -
Chart
This is an example for a custom Umbrella Chart, to create a custom base chart with your own environment defaults to build your deployments upon. This is the next step after applying value files.
Configuration Options
There are several possible ways to configure and customize the nplus helm charts:
- By using
--setparameter at the command line:
helm install \
--set components.rs=false \
--set components.mon=false \
--set components.nstl=false \
--set global.ingress.domain="demo.nplus.cloud" \
--set global.ingress.issuer="nplus-issuer" \
demo1 nplus/nplus-instance
kubectl get instances will show this Instance being handled by helm.
- By adding one or more values files:
helm install \
--values empty.yaml \
--values s3-env.yaml \
--values lab.yaml \
demo2 nplus/nplus-instance
- By using
helm templateand piping the output tokubectl
helm template \
--values empty.yaml \
--values s3-env.yaml \
--values lab.yaml \
demo2 nplus/nplus-instance | kubectl apply -f -
kubectl get instances will show this Instance being handled manually (manual).
- By building Umbrella Charts that contain default values for your environment
Using ArgoCD
Deploying trough ArgoCD is identical to deploying trough Helm. Just use the instance-argo chart instead of instance.
But you can use the same value files for all deployment methods. The instance-argo chart will render all values into the argoCD Application, taking them fully into account.
If you deploy Instances by ArgoCD, kubectl get instances will show these Instance being handled by argoCD.
Stacking Values
The sample value files provided here work for standard Instances as well as for argoCD Versions.
The values Files are stacked:
environment/demo.yamlcontains the default values for the environmentempty/values.yamlcreates a sample document area in the nscale Application Layers3/env.yamladds a S3 storage to the nscale Storage Layer, in form of simple environment variables
This stack can be installed by using the helm install command:
helm install \
--values environment/demo.yaml \
--values empty/values.yaml \
--values s3/env.yaml \
empty-sample-s3 nplus/nplus-instance
The advantage of stacking is to separate and reuse parts of your configuration for different purposes.
- Reuse values for different environments like stages or labs, where only the environment is different but the components and applications are (and have to be) the same
- Use the same Storage Configuration for multiple Instances
- Have one configuration for your Application / Solution and use that on many tenants to keep them all in sync