add documentation

Signed-off-by: Pascal Sthamer <pascal+github@sthamer.xyz>
This commit is contained in:
Pascal Sthamer
2025-12-01 14:11:27 +01:00
parent 9cbbf533cc
commit 42c28926cb
@@ -105,6 +105,46 @@ SHUFFLE_DEFAULT_APIKEY: "72E41083-A6F6-4A1B-8538-B06B577F47F0" # Shuffle uses uu
SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
```
## Shuffle Worker
By default, Orborus creates a Kubernetes Deployment and Service for Shuffle Worker.
The deployment can be customized to some degree using some of the `worker.*` helm variables. They are converted to Orborus env variables.
If you want full control, you can also deploy Shuffle Worker using helm by enabling `worker.enableHelmDeployment`.
This approach respects all of the `worker.*` helm variables.
You can then set `orborus.manageWorkerDeployments=false` to reduce the permissions assigned to the Shuffle Orborus Kubernetes service account.
## Shuffle Apps
By default, Shuffle Worker is responsible for creating Kubernetes Deployments and Services for each app.
Each app and version has their own Deployment and Service. Shuffle automatically deploys a set of apps.
Other apps are deployed on demand, when they are first used.
You can use some of the `app.*` helm variables to control some aspects of the deployment, e.g. resources and security context.
Helm variables are converted to env variables set on Orborus. Orborus in turn passes the env variables to Worker when creating the Deployment.
When `worker.enableHelmDeployment` is set, env variables for app configuration are set on the worker directly.
Configuration using env variables applies to ALL deployed apps. There is no way to assign different options (e.g. resources) to different apps, or scale apps individually.
If you want full control, you can deploy apps using helm. This has the following advantages:
- full control over the deployment using helm values
- granular control per app and version (e.g. have more replicas and resources for frequently used apps)
- avoid problems with on-demand started apps (see https://github.com/Shuffle/Shuffle/issues/1739)
To deploy apps using helm, use the `app.deployViaHelm` value:
```yaml
app:
deployViaHelm:
- app: shuffle-tools
version: 1.2.0
TODO
```
It is possible to use a hybrid approach - deploy some apps using helm, while still allowing Worker to create additional apps on-demand.
If you do not want Worker to manage app deployments, set `worker.manageAppDeployments=true`. This effectively removes the required permissions from the Shuffle Worker Kubernetes Service Account.
You are required to deploy all apps that are in use by your Shuffle instance manually using Helm.
## OpenSearch
Shuffle uses OpenSearch as its database. This helm chart installs a single-node OpenSearch cluster using [the Bitnami Helm Chart](https://github.com/bitnami/charts/blob/main/bitnami/opensearch/values.yaml).