Skip to main content
Version: v1.1.x

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 UI or import them from PaletteAI 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 Create Profile Bundle. Alternately, beside an existing profile bundle, select the three-dot menu, and choose Clone Profile Bundle.

  4. (Clone mode only) The clone form displays a Source Details section showing the name and version (semantic versioning) or revision (basic versioning) of the profile bundle you are cloning from. In clone mode, the version fields are labeled Initial version step and Starting version (semantic versioning) or Starting Revision (basic versioning).

  5. 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 semantic (v0.0.1, v0.1.0, ...). Set to basic for basic versioning (v0, v1, ...). 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.
  6. 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

    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.

    warning

    If a Fullstack Profile Bundle includes application layers built from generic k8s-objects, PaletteAI cannot infer end-to-end workload health from those resources. Where possible, add explicit health policies to your components. Otherwise, document the readiness checks users must perform manually and do not treat Compute Pool Running as proof that bundled applications are deployed or accessible.

    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 no infrastructure-related profiles (no Infrastructure or Full cluster profiles, no Infrastructure workload profiles), the bundle type resolves to Application.
    • If you selected infrastructure-related profiles (Infrastructure or Full cluster profiles and/or Infrastructure workload profiles) but no Application or Model workload profiles, the bundle type resolves to Infrastructure.
    • If your selection includes both infrastructure-related profiles and Application or Model workload profiles, the bundle type resolves to Fullstack. Add-on cluster profiles do not affect the detected type.
  7. 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, displayed as Appliance in the Environment column, 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.
      info

      Pack presets are not supported on the selected Cluster Profile. Refer to Cluster Profiles for supported customization paths.

    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.

  8. 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.

  9. (Bundles with workload profiles) On the Variables screen, create variables local to this profile bundle or change the resolution scope for existing variables used by the selected workload profiles. This step appears only when the bundle includes at least one workload profile. Select Next when finished.

  10. On the Requirements screen, configure the hardware and software requirements for your profile bundle. Except for the control plane Node Count and Architecture, all fields on this screen are optional but help PaletteAI match appropriate compute pool resources when deploying workloads. Select Next when finished.

    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).
    Run workloads on control planeAllow control plane nodes to run workloads.
    LabelsKubernetes labels assigned to each control plane node.
    AnnotationsKubernetes annotations assigned to each control plane node.

    Worker Pools

    Use Add worker 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
    Node pool NameA name for the worker pool. The name cannot be changed once the pool is created.
    ArchitectureThe CPU architecture of the worker nodes. Choose between AMD64 and ARM64. Defaults to AMD64.
    Min 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.
  11. 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 Submit 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 PaletteAI 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 PaletteAI 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 PaletteAI 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 Create Revision or Create Version. The label depends on whether the project uses semantic versioning (Create Version) or basic versioning (Create Revision).

  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 Submit 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 (basic versioning) or Latest version column (semantic versioning) reflects the new revision or version number.

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.