values.schema.json overrides
Instance Level Customization of the Service Catalog
This is the most common customization path.
It lets you change defaults and constraints without forking catalogs.
Use it to:
set global policies (example: default RAM, max disk)
restrict advanced options to specific roles (example: H100 only for users with a specific role assigned)
Mental model
Some fields in a chart’s values.schema.json point to a schema file.
Onyxia ships a set of “well-known” schema files in the API:
When a chart uses x-onyxia.overwriteSchemaWith, Onyxia resolves that schema path.
How overwriteSchemaWith works
In the catalog charts (example: InseeFrLab/helm-charts-interactive-services), look for x-onyxia.overwriteSchemaWith in charts/*/values.schema.json.
Example:
This means: “for this field, use the schema at ide/customImage.json”.
That schema file can come from:
the default schemas embedded in Onyxia API
an override you provide at the instance level (see below)
Instance-wide overrides
Let's consider the ide/customImage.json schema for exaple. By default this will be used:
It enable users to provide a custom Docker image for a given service, let's say we want to remove this option. To do that you would configure your Onyxia instance like this:
Result: the “custom image” toggle disappears from the launcher.
Role-based overrides (different schema per user role)
Instance-wide overrides apply to everyone.
You can also apply schema overrides per role.
Onyxia reads roles from the decoded JWT access token.
By default, it uses the roles claim.
You can change that in your OIDC configuration.
See OpenID Connect Configuration.
Example: let fullgpu users choose H100
Here we override the built-in nodeSelector-gpu.json schema only for users with role fullgpu.
Other users still get the default schema.
Result: fullgpu users can request GPU nodes and select H100.
Next: user-specific defaults
So far you can override schemas:
for everyone (instance-wide)
for a subset of users (per role)
If you want per-user defaults (prefill from identity), use x-onyxia.overwriteDefaultWith.
Follow up with:
x-onyxiaLast updated
Was this helpful?