The Vault
Copyansible/group_vars/all/vault.example.yml to vault.yml, fill it in, and encrypt it. Every top-level key becomes one Kubernetes Secret in the release namespace.
root-services
database
Five connection strings, one per database. In Scenario C the installer creates all five on the host it provisions; in Scenario B you point them at your own endpoint.
Scenario C also needs
vault_postgres_passwords, a separate top-level block naming one password per role:
The installer applies exactly these with
ALTER ROLE; it never generates its own. Re-running an install therefore re-asserts what your vault says rather than rotating anything behind your back, which is also what makes rotating a password a matter of editing the vault and re-running.aws-bucket
Object storage. In an on-premise installation this is MinIO running in your cluster, not AWS — the key names are historical.
control-plane
The rest
Social sign-in is optional and per-provider. A deployment that configures none simply does not offer social sign-in — the providers are registered only when configured, rather than half-registered with empty credentials.
Who owns the blockchain endpoint
Theblockchain values can be yours or ROOTKey’s, and it is a deliberate choice rather than a default:
Either way the wallet that signs stays inside your deployment: the RPC endpoint is where transactions are sent, not who signs them. Decide this during scoping, because it changes both the egress allowlist and who is responsible for the node’s availability.
The offline licence (air-gapped only)
Air-gapped deployments have no Control Plane link, so the licence arrives as a signed artefact you paste into a top-level vault key:The Helm Values File
Copyhelm/values-onprem.example.yaml. Everything below is per-deployment.
Images
Every one of the 24 workloads needs a realrepository and tag. The tag is the released commit SHA of that service, which ROOTKey publishes with each release.
<commit-sha>, registry.example.com and CHANGE_ME in any image field.
The file base URL
- The host must be the same as the platform frontend Ingress host, and the same as
rootkey_public_host. - The path must be
/files. - Do not include the bucket name. The MinIO Ingress prepends it from the vault.
Ingress
Resources
The CPU and memory limits shipped in the chart are sized for the multi-tenant cloud, where a tight per-pod limit stops one customer starving another. An on-premise box is the opposite: it is dedicated to one client, and the same limit becomes a brake with no beneficiary. Raise the limits in your values file. The example file ships with values already raised for a dedicated host and explains each one.The Inventory
ansible/inventory/hosts.ini — the target, plus variables that belong to the deployment rather than to Helm.
Values set here win over
ansible/group_vars/all/main.yml, which ships with rootkey_public_host empty. That file is shared and versioned; the inventory is yours.Deployment-Wide Variables
Set inansible/group_vars/all/main.yml, or overridden per deployment with -e KEY=VALUE.
→ Next: Verification

