Skip to main content

Create and Manage Profile Bundles

Profile bundles are reusable bundles that package infrastructure and application configurations for consistent, repeatable deployments across compute pools. You can create profile bundles through the PaletteAI user interface (UI) or import them from Palette AI Studio using the PaletteAI CLI.

Create Profile Bundles

Create a new profile bundle to package infrastructure and application configurations into a reusable, deployable unit.

Prerequisites

  • A user with project editor or admin permissions.

  • An existing project with a configured Settings resource that includes a Palette integration. The Palette integration is required for cluster profile selection.

  • (Infrastructure and Fullstack profile bundles) At least one cluster profile of type Infrastructure or Full with a cloud type of Edge Native must exist in the Palette project configured in your Settings.

  • (Application and Fullstack profile bundles) At least one workload profile must exist in the PaletteAI project. For information on creating a workload profile, refer to our Create and Manage Workload Profiles guide.

Enablement

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. In the top-right, select New profile bundle. Alternately, beside an existing profile bundle, select the three-dot menu, and choose Clone.

  4. Enter General Information for your profile bundle. The available fields depend on whether your PaletteAI instance uses basic or semantic versioning. The following tables describe the fields for each mode. Select Next when finished.

    info

    Versioning mode is a system-wide setting configured during installation via the Helm value global.featureFlags.versioningType. The default is basic (v0, v1, ...). Set to semantic for semantic versioning (v0.0.1, v0.1.0, ...). Refer to Helm Chart Configuration for details.

    General Information

    ParameterDescriptionRequired
    NameA unique name for your profile bundle within the project scope. Must start and end with alphanumeric characters, and can only contain lowercase letters, numbers, hyphens, and periods.
    DescriptionA description for your profile bundle.
    New RevisionThe revision identifier. Automatically incremented and cannot be modified manually.
    Revision notesNotes describing what changed in this revision. They are stored as a Kubernetes annotation (spectrocloud.com/revision-note) on the ProfileBundle resource.
    AnnotationsKey-value metadata for attaching non-identifying details to the ProfileBundle resource.
    LabelsKey-value pairs used to organize, filter, and identify the ProfileBundle resource. Labels are used by Model as a Service Mappings to auto-select profile bundles for model deployments.
  5. On the Select Profiles screen, choose the Bundle Type. Your selection determines which types of profiles you can add. For more information on profile bundle types, refer to our profile bundles page.

    Profile Combinations

    Bundle TypeDescriptionCluster ProfilesWorkload Profiles
    Auto-detectShow all profiles and infer the bundle type based on your selection at submit time.- Infrastructure or Full
    - Unlimited Add-ons
    - Application
    - Model
    - Infrastructure
    ApplicationDeploys applications or models onto existing compute pools.N/A- Application
    InfrastructureProvisions new compute pools.- Infrastructure or Full
    - Unlimited Add-ons
    - Infrastructure
    FullstackProvisions new compute pools and deploys applications or models on those compute pools.- Infrastructure or Full
    - Unlimited Add-ons
    - Application
    - Model
    - Infrastructure
    info

    A fullstack profile bundle can be used in workflows that do not require all of its components. When this happens, PaletteAI deploys only the relevant elements and ignores the rest. For example, deploying a fullstack profile bundle to a shared compute pool ignores the cluster profiles and deploys only the applicable workload profiles. Refer to Fullstack Profile Bundles in Non-Primary Workflows for details.

    How Auto-detect Works

    When Auto-detect is selected, PaletteAI infers the bundle type at submission time based on the profiles you selected:

    • If you selected only Application or Model workload profiles (no cluster profiles, no Infrastructure workload profiles), the bundle type resolves to Application.
    • If all selected profiles are infrastructure-related (Infrastructure or Full cluster profiles and/or Infrastructure workload profiles), the bundle type resolves to Infrastructure.
    • If your selection includes both infrastructure-related profiles and Application or Model workload profiles or Add-on cluster profiles, the bundle type resolves to Fullstack.
  6. After selecting the bundle type, add the applicable profiles and Confirm each selection.

    1. (Non-application bundles) Select Add Cluster Profile to open the Select Cluster Profiles drawer. Choose between the Infra & full and Add-ons tabs. Cluster profiles are sourced from the Palette project configured in your Settings.
      • Infra & Full - Select an Infrastructure or Full cluster profile. The cluster profile must have a cloud type of Edge native in order to be displayed.
      • Add-ons - Select as many Add-on cluster profiles as necessary. All Add-on cluster profiles from the linked Palette project are displayed.
    2. Select Add Workload Profile to open the Select Workload Profiles drawer. Choose among the Application, Model, and Infrastructure tabs. The available tabs depend on the selected bundle type. Multiple workload profiles can be selected per tab.
  7. After you add a profile, use the version drop-down to select the applicable version. Use the + icon to add additional profiles and the trash icon to remove profiles. Select Next when finished.

  8. On the Requirements screen, configure the hardware and software requirements for your profile bundle. All fields on this screen are optional but help PaletteAI match appropriate compute pool resources when deploying workloads. Select Next when finished.

    General Requirements

    ParameterDescriptionRequired
    Minimum Kubernetes VersionThe minimum Kubernetes version required for the cluster (for example, 1.28.0).
    Minimum Storage (GB)The minimum storage required in gigabytes for the cluster provisioned from or selected for this profile bundle. Must be at least 1 if specified.

    Single Node Cluster

    Toggle the Single Node Cluster option to configure the profile bundle for a single-node deployment. When enabled, the Node Count is fixed to 1 and the Worker Pools section is hidden.

    Control Plane Pool

    ParameterDescriptionRequired
    ArchitectureThe CPU architecture of the control plane nodes. Choose between AMD64 and ARM64. Defaults to AMD64.
    Node CountThe number of control plane nodes. Must be 1, 3, or 5 to maintain quorum.
    CPU CountPer-node minimum CPU count for each control plane node.
    MemoryPer-node minimum memory for each control plane node. A measurement unit is required (for example, 16 GB, 8192 MiB).
    Worker Node EligibleAllow control plane nodes to run workloads.
    TaintsKubernetes taints assigned to each control plane node.
    LabelsKubernetes labels assigned to each control plane node.
    AnnotationsKubernetes annotations assigned to each control plane node.

    Worker Pools

    Use Add Pool to add additional worker pools. Each worker pool is displayed as a separate tab. You can remove excess worker pools using the Remove button, but at least one worker pool must remain. To remove all worker pools, activate the Single Node Cluster switch.

    ParameterDescriptionRequired
    ArchitectureThe CPU architecture of the worker nodes. Choose between AMD64 and ARM64. Defaults to AMD64.
    Minimum Worker NodesThe minimum number of worker nodes that must be provisioned for this pool.
    CPU CountPer-node minimum CPU count for each worker node.
    MemoryPer-node minimum memory for each worker node. A measurement unit is required (for example, 16 GB, 8192 MiB).
    GPU FamilyThe GPU compute family (for example, NVIDIA A100). Options are populated from the available Compute resources in the project.
    GPU CountTotal number of GPUs across all worker nodes in the pool for the given architecture and GPU family. Required if a GPU Family is selected.
    GPU MemoryTotal GPU memory across all worker nodes in the pool. A measurement unit is required (for example, 16 GB, 8192 MiB).
    TaintsKubernetes taints assigned to each worker node.
    LabelsKubernetes labels assigned to each worker node.
    AnnotationsKubernetes annotations assigned to each worker node.
  9. On the Review screen, verify your profile bundle configuration. If changes are needed, use the step navigation on the left to return to the applicable screen. When satisfied, select Finish to create the profile bundle.

Validate

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. Verify your new profile bundle is listed in the table. The Status column displays Ready once PaletteAI has processed the profile bundle.

Import Profile Bundles

Import a pre-built profile bundle from Palette AI Studio into your PaletteAI instance using the PaletteAI CLI. If the profile bundle includes variable sets, they are imported and applied to the generated profiles.

Prerequisites

  • The PaletteAI CLI installed and available in your $PATH.

  • kubectl installed and available in your $PATH.

  • The KUBECONFIG environment variable set to the path of the PaletteAI hub cluster's kubeconfig file.

    export KUBECONFIG=<kubeconfig-location>
  • An existing project namespace to import the profile bundle into.

  • A profile bundle archive (.tar.gz) or extracted directory downloaded from Palette AI Studio.

  • (Semantic versioning clusters) If your PaletteAI instance uses semantic versioning, you must provide a version number during import using the --app-version flag.

Enablement

  1. Download a profile bundle archive from Palette AI Studio.

  2. (Optional) Preview the resources that will be created by using the --dry-run flag. Replace <namespace> with the target project namespace and <path> with the path to the downloaded archive or extracted directory.

    paletteai studio import --namespace <namespace> --dry-run <path>
  3. Import the profile bundle into your cluster. Replace <namespace> with the target project namespace and <path> with the path to the downloaded archive or extracted directory.

    paletteai studio import --namespace <namespace> <path>

    The command reads the profilebundle.yaml from the archive, generates the required ProfileBundle and WorkloadProfile Kubernetes resources, and applies them to the hub cluster. The CLI automatically detects the cluster's versioning type from the mural-feature-flags ConfigMap.

    Refer to the PaletteAI CLI reference page for additional flags.

Validate

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. Verify the imported profile bundle is listed in the table. The Status column displays Ready once PaletteAI has processed the profile bundle.

Edit Profile Bundles

Edit an existing profile bundle to update its configuration. Each edit creates a new revision, preserving the previous configuration.

Prerequisites

Enablement

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. Locate the profile bundle you want to edit. Select the three-dot menu and choose Edit.

  4. Update the General Information as needed. When editing, the Name field is read-only. You can modify the Description, Revision notes, and (if semantic versioning is enabled) the Update type. Refer to the General Information table for additional details. Select Next when finished.

  5. On the Select Profiles screen, modify the bundle as needed. From this screen, you can:

    • Change the bundle type
    • Remove existing profiles
    • Add new cluster profiles or workload profiles
    • Change the version of existing profiles using the version drop-down menu

    Refer to the Profile Combinations section for additional details. Select Next when finished.

  6. On the Requirements screen, modify the following requirements as needed. Select Next when finished.

  7. On the Review screen, verify your changes and select Finish to save the new revision. If the profile bundle is tied to a compute pool, the components do not use a pinned version (for example, use latest), your compute pool is automatically updated with the latest version of your profile bundle during the next reconciliation cycle.

Validate

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. Verify the profile bundle's Latest revision column reflects the new revision number.

Delete Profile Bundles

Remove a profile bundle that is no longer needed. Deletion is permanent and cannot be undone.

Prerequisites

  • A user with project admin permissions.

  • An existing profile bundle that is not tied to an existing compute pool. If the profile bundle is actively being used in a compute pool, the profile bundle cannot be deleted.

Enablement

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. Locate the profile bundle you want to delete. Select the three-dot menu and choose Delete.

  4. In the confirmation dialog, select Delete to confirm the deletion.

Validate

  1. Log in to PaletteAI.

  2. From the left main menu, select Profile Bundles.

  3. Verify the profile bundle is no longer listed in the table.

Next Steps

Once you have a profile bundle, depending on the type created, you can use it to deploy a compute pool, app deployment, or model deployment.