Configure Project Settings
Use Project Settings to manage configurations for a single Project in the PaletteAI UI. From this page, you can manage Project configuration such as display information, integrations, OpenID Connect (OIDC) group access, GPU resource limits, compute inventory, Compute Configs, Scaling Policies, Model as a Service Mappings, and target namespace access control.
To modify settings at the Tenant Scope, refer to Configure Tenant Settings. For more information on the different scopes, refer to Multi-Tenancy.
Prerequisites
-
You have access to the Project in the PaletteAI UI.
-
To update Project settings, you must have the Project editor or admin role. For details, refer to Project Role Permissions.
Configure Project Settings
-
Log in to PaletteAI and select the Tenant that contains your Project.
-
From the Projects Menu in the top-left, select the Project you want to manage.
-
From the left main menu, select Project Settings.
Manage Basic Information
Use the Basic Information tab to update Project display values that appear elsewhere in the PaletteAI UI.
-
Update Display Name or Description. To add or remove Annotations and Labels, expand Metadata.
-
Select Save changes.
Manage Settings Ref
The Settings Ref tab manages the integrations the Project uses to connect to external systems such as Palette, Hugging Face, and NVIDIA NIMs. Every Project must define its own Settings resource with its own Palette integration.
For background on how System, Tenant, and Project Settings interact, refer to Settings and Integrations and Configure Settings.
When No Settings Exist
When no Project Settings Ref exists, the tab shows an empty state.
-
Select Create Settings to open the creation dialog.
-
In the Settings Ref Name field, enter a name for the settings resource.
The name must be 63 characters or fewer and contain only lowercase alphanumeric characters or hyphens, beginning and ending with an alphanumeric character. The name cannot be changed after creation.
-
Add at least one integration. The create dialog requires at least one integration before you can save. A Palette integration is required to deploy Compute Pools. For field-level guidance per integration type, refer to Add an Integration.
-
Select Confirm.
When the Project Owns a Settings Ref
When the Project has its own Settings Ref, the tab shows the Settings Ref header with a Ready or Not Ready status badge and the Integrations table.
Add an Integration
Each integration represents a connection to an external system. Each integration type can be added once per Settings Ref.
-
Select Add Integration to open the Add Integration drawer.
-
Choose an Integration Type — Palette, Hugging Face, or NVIDIA NIMs. The form fields update to match the selected type.
-
Complete the fields for the chosen integration type:
-
Palette integration — used to provision compute resources from your Palette tenant. Every Project must define its own Palette integration. Provide:
- Integration Name — display name, for example,
Palette-Docs. - Host URL — the Palette host URL, for example,
https://console.spectrocloud.com. - (Optional) Tenant — the Palette tenant slug, for example,
acme. PaletteAI resolves the tenant automatically from the Palette API. - Project ID — the default Palette project UID that PaletteAI uses when provisioning clusters.
- (Optional) Toggle Skip SSL Certificate Verification on to bypass certificate validation when connecting to the Palette server.
- API Key — the Palette API key. Select Validate to verify the credentials against the Palette server.
- (Optional) Toggle Cert Secret Ref on to reference a Kubernetes Secret containing a custom certificate authority bundle for the Palette server.
- Integration Name — display name, for example,
-
Hugging Face integration — enables Hugging Face model management features. Provide:
- Integration Name — display name, for example,
HuggingFace-Docs. - API Key — your Hugging Face Hub API key. Select Validate to verify the key against the Hugging Face API.
- Integration Name — display name, for example,
-
NVIDIA NIMs integration — enables NVIDIA NGC model management features. Provide:
- Integration Name — display name, for example,
NVIDIA-Docs. - API Key — your NVIDIA NGC API key. Select Validate to check that a key is provided. The Validate action does not verify the key format or contact NVIDIA NGC.
- Integration Name — display name, for example,
-
-
(Optional) Expand Metadata to add Kubernetes labels and annotations to the integration.
-
Select Confirm to add the integration.
Edit or Delete an Integration
Use the action menu on each row of the Integrations table to edit or delete an integration.
-
Edit opens the integration drawer so you can update fields. To replace the API key for an existing integration, clear the masked value and re-enter the key, and then select Validate before saving.
-
Delete removes the integration. When the integration is used by active model deployments, PaletteAI requires you to confirm by typing the integration name.
Palette integrations cannot be deleted from the Project Settings Ref. To rotate Palette credentials, use Edit to update the existing entry.
Edit Basic Information
To update the Settings Ref's labels and annotations, select the Settings dropdown next to the Settings Ref name, and then select Edit basic information. The Settings Ref name itself cannot be changed after creation.
When Tenant Integrations Are Shared
When the Tenant has shared Hugging Face or NVIDIA NGC integrations with this Project, those integrations appear in the Integrations table with a Tenant scope badge.
-
Palette integrations are not shared from the Tenant Settings Ref. Every Project must define its own Palette integration.
-
For Hugging Face and NVIDIA NGC integrations that the Tenant has shared with this Project and not locked, you can select Replace with project settings to create a Project-owned version of that integration, overriding the Tenant version.
-
If the Tenant has locked an integration, the Project cannot override it. The row is read-only.
Project-Level Palette Constraints
When configuring a Palette integration at the project level:
-
Same Palette Tenant as parent tenant: Your Palette credentials must belong to the same Palette Tenant as the parent PaletteAI tenant's Palette integration. If the resolved
tenantUIDvalues do not match, the project Settings is flagged withPaletteTenantMismatch. -
Unique Palette project within tenant: The Palette project (
hostUrl+defaultProjectID) cannot be shared with the tenant Settings or any sibling project Settings. If a conflict exists, the project Settings is flagged withPaletteIntegrationDuplicated (projectUID). Tenant-scoped Settings are preferred, then oldest-wins. -
Identity must be resolvable: If PaletteAI cannot resolve the Palette tenant UID from the Palette API, the Settings is marked
FailedToVerifyUniquenessuntil the identity is available. This is usually temporary.
Projects cannot use a different Palette tenant than their parent PaletteAI Tenant. If you need to use a different Palette Tenant, configure it at the Tenant level or create a separate Tenant for that organization.
Manage User Access
On the User Access tab, control which OIDC groups map to Project Viewer, Editor, and Admin roles.
-
Add or remove OIDC groups in Viewer Groups, Editor Groups, and Admin Groups.
Each role requires at least one OIDC group. Blank entries are ignored.
-
Select Save changes.
PaletteAI creates the corresponding Kubernetes RBAC roles and bindings for the configured groups.
Manage Target Namespaces
On the Target Namespaces tab, configure which Kubernetes namespaces on spoke clusters are permitted deployment targets for workloads in this Project.
-
Add or remove namespace entries in the admission configuration.
By default, workloads can deploy only to the Project namespace. Add additional namespaces to allow workloads to target other namespaces on spoke clusters.
-
Select Save changes.
Manage Resource Limits
On the Resource Limits tab, set GPU limits and requests for the Project. GPU limits cap the total number of GPUs that may be used within the Project, keyed by GPU variant. GPU requests define the maximum number of GPUs that can be requested per GPU variant for an individual AIWorkload and its associated Compute Pool.
-
In the GPU Limits section, add or edit GPU variants and their corresponding limit values.
-
In the GPU Requests section, specify request values for each GPU variant.
-
To add a new GPU variant, select Add limit or Add request and choose the GPU variant from the dropdown.
-
To remove a GPU variant entry, use the delete icon next to the row.
-
Select Save changes to apply the updated configuration.
Project GPU limits and requests must not exceed the effective ceiling for each GPU variant. The effective ceiling is the lower of two caps that may apply to the variant: the Tenant's own GPU limits or requests, and the System's per-tenant limit for the parent Tenant (spec.gpuResources.tenantLimits). When both are set, the Project must satisfy the smaller of the two; when only one is set, that one applies; when neither is set, no ceiling is enforced. The Project controller validates against this ceiling. Projects that exceed the effective ceiling for any GPU variant are still created but have a GPUWithinTenantLimits condition set to False indicating the violation. Increase the applicable cap or reduce the Project's limits and requests to resolve the condition.
Effective GPU Ceiling by Configuration
The following matrix enumerates every permutation of System, Tenant, and Project configuration for a given GPU variant and shows which ceiling applies and how the Project resolves.
| System per-tenant limit | Tenant explicit limit or request for variant | Project value for variant | Effective ceiling for the Project | Result |
|---|---|---|---|---|
| Set | Set | ≤ min(Tenant, System) | min(Tenant, System) | Accepted; GPUWithinTenantLimits remains True. |
| Set | Set | > min(Tenant, System) | min(Tenant, System) | Created with GPUWithinTenantLimits set to False (lower of the two wins). |
| Set | Not set | ≤ System per-tenant limit | System per-tenant limit | Accepted; GPUWithinTenantLimits remains True. |
| Set | Not set | > System per-tenant limit | System per-tenant limit | Created with GPUWithinTenantLimits set to False (System cap applies). |
| Not set | Set | ≤ Tenant value | Tenant's configured value | Accepted; GPUWithinTenantLimits remains True. |
| Not set | Set | > Tenant value | Tenant's configured value | Created with GPUWithinTenantLimits set to False (Tenant cap applies). |
| Not set | Not set | Any value | None — no ceiling enforced | Accepted; the Project is unbounded for this variant. |
Manage Compute
On the Compute tab, review the worker and control plane nodes that the Project has discovered through its Palette integration and manage default NIC configuration for edge hosts. Configure default NICs and per-host static IPs before creating Compute Pools. PaletteAI discovers hosts through the Compute resource; the edgeHostDetails reported in Compute status drives the Default NIC column. To review nodes across all Projects, refer to Manage Compute in Tenant Settings.
-
Review the node inventory.
The table includes Edge Host, Status (Free or In use), Type (Worker or Control Plane), Default NIC, Architecture, GPU Variant, GPU count, GPU memory, CPU, and Memory.
-
Filter the list with Filter by name, or with the Status, Compute Pool, and GPU Variant selectors.
-
If some nodes are missing a default NIC (Network Interface Card), a warning banner appears with the message "Some nodes are missing a default NIC used for cluster network routing. Nodes without one won't be selected for workload placement. Default NICs are auto-filled when there's a single option. For multi-NIC nodes, select a default NIC below."
From the banner, select Resolve unassigned NICs to assign default NICs to multiple nodes at once.
-
To configure the default NIC for an individual node, use the three-dot menu on the node row and select Edit default NIC.
The Edit default NIC drawer opens. Select the default NIC from the list of available network interfaces. Optionally, toggle Static IP (Optional) on to provide static IP configuration:
- IP Address — the static IP address for the node.
- Default gateway — the default gateway address.
- Subnet mask — the subnet mask.
- DNS Server — the DNS server address.
Select Save Changes to apply the configuration.
Changing the default NIC will disrupt networking on the node and cause connectivity loss for running workloads while the change is applied.
Manage Multi-Instance GPU
Configure Multi-Instance GPU (MIG) for the Compute Pools in this Project when the Tenant allows it.
-
Whether MIG configuration appears in this Project's Compute Pool flows is governed by the higher scopes. The Tenant, and the System scope above it, decide whether this Project may configure MIG. Refer to Manage Multi-Instance GPU for the Tenant-scoped controls. When a higher scope does not allow MIG for this Project, PaletteAI hides MIG configuration from the Project's Compute Pool flows.
-
When the Tenant allows MIG, configure it per Compute Pool rather than as a Project-wide setting. Refer to Configure Multi-Instance GPU for the Day 1 and Day 2 workflows.
-
PaletteAI offers MIG configurations only for Compute Pools whose GPUs support MIG. Refer to Multi-Instance GPU for the hardware requirements.
Create Compute Config
Create a Project-scoped Compute Config that Compute Pools in this Project can use as an infrastructure baseline. Each Compute Config captures cluster defaults such as Secure Shell (SSH) keys, Network Time Protocol (NTP) servers, and the network overlay. The Project must have a default Compute Config set via spec.computeConfigRef.
Enablement
-
On the Compute Config tab, select Create Compute Config to open the Create Compute Config wizard.
-
Complete the wizard steps:
- Basic Information — set the Compute Config Name and Deletion Policy, and optionally add SSH Keys.
- Edge Configuration — configure NTP servers and the network overlay.
- Node Pool Defaults — configure the control plane pool and worker pool default settings, such as node count, architecture, CPU, memory, labels, annotations, taints, single-node cluster mode, and worker-node eligibility.
- Review — confirm the configuration and select Create.
Manage Compute Configs
Review and adjust the Project Compute Configs. Tenant Compute Configs that have been shared with this Project also appear in the list.
-
Review the Compute Configs table.
The table includes the Compute Config Name, the virtual IP (VIP), Control plane nodes, Deployment Type, Scope badge (Project or Tenant), and an action menu.
-
For Project-scoped configs, use the action menu to edit, clone, or delete.
Cloning populates the wizard from the source. Deletion is blocked while a Compute Config is in use by a Compute Pool.
-
For Tenant-scoped configs shared into the Project, the action menu supports Clone only. Cloning creates a Project-scoped copy that you can customize. For how Tenant admins share resources across Projects, refer to Tenant-Scoped Resources.
-
To set a Compute Config as the Project default, select Set as default from the action menu. The default Compute Config is used when creating new Compute Pools.
Create Scaling Policy
Create a Project-scoped Scaling Policy that Compute Pools in this Project can reference to autoscale workloads.
For background on autoscaling and the YAML reference, refer to Create and Manage Scaling Policies.
Enablement
-
On the Autoscaling Policies tab, select Create Autoscaling Policy at the top of the table to open the Create Auto-Scaling Policy dialog.
-
Provide the following:
- Scaling Policy Name — a unique Kubernetes-compliant name.
- Metrics — add one or more CPU or GPU metrics with scale-up and scale-down thresholds and durations. At least one CPU or GPU metric is required.
- Resource Bounds — optional minimum and maximum CPU counts, plus minimum and maximum GPU counts per variant. Each GPU variant in Resource Bounds must have a matching entry in Metrics.
- Cool Down Duration — minimum wait time between scaling actions. Defaults to 15 minutes.
- Timeout Duration — maximum duration for an ongoing scaling operation. Defaults to 30 minutes.
-
Select Create to save the policy.
Manage Scaling Policies
Review the Scaling Policies available to this Project, and edit, clone, or delete existing Project-scoped policies. System and Tenant-shared policies also appear in the list.
-
Review the Scaling Policies table.
The table includes Scaling Policy Name, Metrics, In use Compute Pools, Cool Down, Timeout, Scope, and an action menu. System policies appear with a System scope badge and only support Clone. Tenant-shared policies appear with a Tenant scope badge and only support Clone.
-
Select the In use Compute Pools count to open a drawer that lists the Compute Pools referencing the policy.
-
For Project-scoped policies, use the action menu to edit, clone, or delete.
Editing modifies the policy in place. Cloning opens the dialog populated from the source policy. Deletion is disabled while the policy is referenced by any Compute Pool.
Create Model as a Service Mappings
Create a mapping on the Model as a Service Mappings tab to route incoming Model Deployments to a chosen Profile Bundle based on the model's source and attributes. When a Model Deployment matches the source and filters defined for a mapping, PaletteAI deploys the model using the target Profile Bundle.
-
Select Add Mapping to open the Add Mapping drawer. The drawer has two columns.
-
In the Model Source column on the left, choose Hugging Face or NVIDIA NIMs as the source type, then define the Model Match filter. Each mapping supports one filter, which is a key-value pair that a model must match for the mapping to apply.
For Hugging Face, the filter key is apps with values
vllmorollama. For NVIDIA NIMs, the filter is fixed tonims=trueand cannot be edited. -
In the Target Profile Bundle column on the right, pick the Profile Bundle that PaletteAI uses when a model matches the filter.
The table lists each Profile Bundle's Name, Version, and Type. Only Application and Fullstack Profile Bundles are eligible; Infrastructure bundles do not appear.
-
Select Confirm to save the mapping, or Cancel to discard it. Confirmed mappings are saved to the Project automatically.
Manage Model as a Service Mappings
Review existing mappings, and edit or delete them. Changes are saved to the Project automatically.
-
Review the mappings table.
The table includes Target Profile Bundle, Source Type, Model Filters, and an action menu. Filter the list by Source Type or use Filter by name to search.
-
Edit or delete an existing mapping from the action menu on each row.
Manage Models List
On the Models List tab, configure which models from Hugging Face and NVIDIA NGC are available for Model Deployments in this Project.
-
For each model source (Hugging Face, NVIDIA NIMs), configure the access control list by adding allowed or denied model repository names or NIM images.
-
Select Save changes to apply the updated access control list.
When saving Models List changes that would newly deny models with active deployments, a confirmation dialog titled Out of policy deployments appears. The dialog displays the number of models affected by the change that have active deployments and offers two options:
- Cancel — discard the changes and return to the Models List tab.
- Proceed anyway — commit the changes. Existing deployments using the newly denied models will be marked as out of policy.
-
If you proceed with the save, model deployments that are out of policy will display a danger banner on the deployment overview page indicating the model is no longer allowed by the current access control list policy (tenant-scoped or project-scoped). Out-of-policy deployments cannot be modified; to bring the project into compliance, the deployment must be deleted.
When the Tenant has shared and locked a model integration with this Project, the Models List is read-only. To override a Tenant model configuration that is not locked, select Use Project Models List to switch to Project-owned model settings. Select Use Tenant Models List to revert to the inherited Tenant configuration.
Validate
- Refresh the Project Settings page and confirm your saved changes persist on the applicable tab.
Next Steps
-
Create and Manage Compute Pools to provision infrastructure after edge hosts have resolved default NICs.
-
Compute to learn how edge host inventory and NIC status are reported.
-
Settings and Integrations to learn how Tenant-level and Project-level Settings interact.
-
Configure Settings for detailed guidance on Settings creation, secret management, and deletion behavior.
-
Create and Manage Tenant Settings to manage Tenant-wide configuration that can share Hugging Face and NVIDIA NGC integrations with Projects.
-
Compute Config to learn how Compute Configs define cluster deployment defaults.
-
Create and Manage Scaling Policies for the Scaling Policy YAML reference and field definitions.
-
Roles and Permissions for an overview of Tenant and Project Role-Based Access Control (RBAC).