Skip to main content

Settings

Settings is a resource that configures the external integrations for PaletteAI and other configurations better suited for a namespace scoped resource. A setting can be created in the project namespace or in the tenant namespace. If a setting is created in the tenant namespace, it will act as the default fallback for all projects in the tenant. You can also create a setting in the project namespace and override the tenant default settings.

Integrations

A setting can reference the following integrations:

  • Palette

Palette

The Palette integration is used to authenticate with the Palette API, discover and utilize available compute resources, and deploy Kubernetes clusters for ML platforms. The Compute and MLPlatform controllers use the Palette integration to authenticate with the Palette API and discover available compute resources.

If you are not using Palette as your infrastructure provider, you can skip the Palette integration, but be aware that the Compute and MLPlatform controllers will not be able to discover the available compute resources and will not be able to deploy dedicated Kubernetes clusters for MLPlatforms. You will be limited to using the shared Kubernetes cluster for MLPlatforms.

To add a Palette integration, a secret containing the Palette API key must be created in the namespace where the setting is created. The secret must contain the following fields:

FieldDescriptionRequired
apiKeyThe API key for the Palette API/Yes
defaultProjectIDThe default project ID for the Palette API.Yes
hostUrlThe host URL for the Palette API. Different for self-hosted Palette instances. Check with your Palette administrator for the correct value.Yes
tenantThe tenant for the Palette instance.Yes
info

A Palette integration must be unique for each Settings resource. This means you cannot have two Settings resources that share the same Palette integration or the same secret. If you want to use the same Palette credentials across multiple projects, you should create a single Settings resource at the tenant namespace level and have all the projects reference it. Alternatively, you can create a separate Settings resource for each project that uses different Palette credentials. This design helps prevent potential race conditions when accessing compute resources, such as Edge devices.

Below is an example of a Palette secret with the data decoded from the secret.

apiVersion: v1
kind: Secret
metadata:
name: dev-palette-api-secret
namespace: dev-tenant
spec:
data:
palette: |
{
"apiKey": "YOUR_PALETTE_API_KEY",
"defaultProjectID": "YOUR_PALETTE_DEFAULT_PROJECT_ID",
"hostUrl": "https://api.spectrocloud.com",
"tenant": "example-tenant"
}