Skip to main content

Profile Bundles

Profile bundles are reusable bundles that package infrastructure and application configurations for consistent, repeatable deployments across compute pools. Instead of manually configuring each deployment's software components, you define it once in a profile bundle and reuse them wherever needed.

Profile bundles are either created in the PaletteAI user interface (UI) or imported from the Palette AI Studio using the PaletteAI CLI. PaletteAI Studio offers a catalog of ready-to-use profile bundles that support a wide range of use cases, including AI/ML applications, models, infrastructure, and fullstack deployments. The profile bundle is used in most PaletteAI workflows, such as deploying compute pools and AI/ML applications and models. A profile bundle is composed of Palette cluster profiles, workload profiles, or both, depending on the type of profile bundle.

Components of a Profile Bundle

Cluster profiles and workload profiles play an important role in profile bundles. At a high level, cluster profiles establish the cluster's infrastructure, while workload profiles handle deploying applications to the cluster. Cluster profiles are created and managed in Palette, while workload profiles and the profile bundle itself are created and managed in PaletteAI.

A diagram of a profile bundle revealing the different components that make up a profile bundle. A cluster profile and a workload profile.

Cluster Profiles

Cluster profiles contain the core infrastructure software needed to deploy a Kubernetes cluster, such as the operating system (OS), Kubernetes distribution, Container Network Interface (CNI), and Container Storage Interface (CSI). The cluster profile is primarily used for infrastructure-related use cases, such as creating a new compute pool. A profile bundle may contain multiple cluster profiles. Each cluster profile may have one Infrastructure or Full cluster profile, and any number of Add-on cluster profiles. Cluster profiles are created and managed in Palette, typically by a platform engineer or administrator.

When creating a profile bundle through the PaletteAI UI, PaletteAI displays the cluster profiles that are available in the Palette project configured in your Settings resource. Only cluster profiles with a type of Infrastructure or Full, and a cloud type of Edge Native are displayed in the PaletteAI UI.

Cluster Profile Types

There are three types of cluster profiles in Palette:

  • Infrastructure - Provides the essential components for workload cluster deployments: OS, Kubernetes distribution, network, and storage. For more information, review the Create an Infrastructure Profile guide.

  • Add-on - Composed exclusively of add-on layers, designed for reusability across multiple clusters and projects. Add-on profiles can be combined with infrastructure profiles to create a full profile. Review the Create an Add-on Profile guide for details.

  • Full - Combines infrastructure packs with add-on layers into a single profile. Refer to the Create a Full Profile guide for more details.

Workload Profiles

Workload profiles are used for application- and model-related use cases, such as deploying a specific application or multiple applications.

A profile bundle may contain multiple workload profiles. Application and Fullstack profile bundles must contain at least one workload profile of the type Application or Model, while Infrastructure profile bundles may optionally include workload profiles of the type Infrastructure. A profile bundle cannot contain both Application and Model workload profiles simultaneously; they either deploy applications or models, never both.

Workload profiles are created and managed in PaletteAI by both platform engineers and end users.

Workload Profile Types

There are three types of workload profiles:

  • Application - Used to deploy end-user-facing applications, including their required dependencies that are not infrastructure-related.

  • Model - Used to deploy AI/ML models, including their required dependencies, such as the inference engine, if needed.

  • Infrastructure - Used to deploy infrastructure-related dependencies that are not part of the cluster profile. This is useful when you want to deploy an infrastructure-related dependency into the compute pool that you do not want Palette to manage or when you have a dependency that resides in a private Helm or OCI registry that is defined in PaletteAI but not in Palette.

Types of Profile Bundles

There are three types of profile bundles:

  • Application - Used to deploy AI/ML applications through the App Deployment workflow. Must be paired with an Infrastructure profile to deploy a compute pool. Review the Application Profile Bundle section for more details.

  • Infrastructure - Contains the required infrastructure software components needed to create a compute pool. Check out the Infrastructure Profile Bundle section for more details.

  • Fullstack - Contains the required components to deploy an AI/ML application and a dedicated compute pool at the same time. To learn more, check out the Fullstack Profile Bundle section.

A diagram depicting the different types of profile bundles.

Application Profile Bundle

Application profile bundles contain only workload profiles of the type Application or Model and cannot include cluster profiles. They are used to deploy an AI/ML application or model to an existing compute pool. To deploy an AI/ML application to a new compute pool, use a Fullstack Profile Bundle instead.

In addition to AI/ML applications, you can use an Application profile bundle to deploy a model through a workload profile of the type Model. When using the Custom Model Deployment workflow, you may want to specify the inference engine to associate with the profile bundle so that PaletteAI can validate compute pool compatibility.

Inference Engine Label

If you are creating the Application profile bundle through a YAML manifest for the purpose of a custom model deployment, add a label to associate the profile bundle with the inference engine to be used for the model deployment. For example, if you are using vLLM as the inference engine, you can add the palette.ai/inference-engine label with the value vllm to the profile bundle.

apiVersion: spectrocloud.com/v1beta1
kind: ProfileBundle
metadata:
name: internal-model-345a
namespace: project-melbourne
labels:
palette.ai/inference-engine: vllm

When deploying a model to an existing compute pool, PaletteAI validates that the Application profile bundle's palette.ai/inference-engine label matches the compute pool's Infrastructure profile bundle's inference engine label. This ensures the compute pool's infrastructure is compatible with the model's requirements.

For the Model as a Service workflow, profile bundles are auto-selected based on mappings configured in Project Settings. These mappings match model source attributes to profile bundle labels, including the palette.ai/inference-engine label.

Infrastructure Profile Bundle

Infrastructure profile bundles are used to deploy a new compute pool and are typically managed by platform engineers.

info

An Infrastructure profile bundle must contain at least one cluster profile of the type Infrastructure or Full. You can include additional Add-on cluster profiles for software components such as monitoring, ingress, or load balancers.

Infrastructure profile bundles typically contain cluster profiles only. However, you may include Infrastructure workload profiles alongside an infrastructure variant if you need to deploy a dependency outside a cluster profile.

In the context of a custom model deployment, you may want to specify the inference engine you are deploying with the Infrastructure profile bundle. You can do so by adding the palette.ai/inference-engine label to the profile bundle's YAML manifest with the value being the name of the inference engine (for example, vllm). This label is used during model deployment to validate that the compute pool's infrastructure is compatible with the model's Application profile bundle.

Fullstack Profile Bundle

Fullstack profile bundles combine infrastructure provisioning and application deployment into a single bundle. Think of a Fullstack profile bundle as an Infrastructure Profile Bundle and Application Profile Bundle in one.

A Fullstack profile bundle must contain at least one cluster profile of the type Infrastructure or Full and one workload profile of the type Application or Model. It can also include additional Add-on cluster profiles, additional Application or Model workload profiles, and Infrastructure workload profiles.

warning

When a Fullstack profile bundle is used outside of its primary workflow, PaletteAI selectively deploys only the relevant elements and ignores the rest. Refer to the Fullstack Profile Bundle Deployment Behavior section for details.

Supported Workflows

The following table illustrates the different types of profile bundles and the common workflows that you can use them in.

WorkflowCompute Pool TypeProfile Bundle Type
Compute Pool DeploymentSharedInfrastructure
Compute Pool DeploymentDedicatedInfrastructure
App DeploymentDedicatedFullstack
App DeploymentSharedApplication
Model DeploymentDedicatedFullstack
Model DeploymentSharedApplication

You can also use profile bundle types outside of their primary workflow, as long as the core requirements are met. Expand the details below to learn more.

Mixing and Matching Profile Bundle Types
WorkflowCompute Pool TypeSupported Profile Bundle OptionsNotes
Compute Pool DeploymentDedicatedFullstackPaletteAI deploys only the cluster profiles and Infrastructure workload profiles.
Compute Pool DeploymentSharedFullstackPaletteAI deploys only the cluster profiles and Infrastructure workload profiles.
App DeploymentDedicatedInfrastructure + ApplicationTogether, the two profile bundles meet the requirements for deploying an AI/ML application to a dedicated compute pool.
App DeploymentSharedFullstackSince the compute pool already exists, PaletteAI deploys only the Application workload profiles.
Model DeploymentDedicatedInfrastructure + ApplicationTogether, the two profile bundles meet the requirements for deploying a model to a dedicated compute pool.
Model DeploymentSharedFullstackSince the compute pool already exists, PaletteAI deploys only the Model workload profiles.

Fullstack Profile Bundle Deployment Behavior

When you use a Fullstack profile bundle in a workflow that does not require all of its components, PaletteAI automatically filters the bundle to deploy only the relevant cluster profiles and workload profiles (WPs). The remaining elements are silently ignored. The following table describes what is deployed versus ignored for each scenario.

Deployment TypeCompute Pool TypeCluster ProfileApplication WPModel WPInfrastructure WP
Compute Pool DeploymentDedicated
Compute Pool DeploymentShared
App DeploymentDedicated
App DeploymentShared
Model DeploymentDedicated
Model DeploymentShared
tip

For the Model Deployment workflow, profile bundles are auto-selected based on mappings configured in Project Settings. These mappings match model source attributes to profile bundle labels. Refer to Create a Project — Model as a Service Mappings for configuration details.

Palette AI Studio

Palette AI Studio is a platform that contains a catalog of ready-to-use profile bundles that support a wide range of use cases. You can browse the catalog to find a profile bundle that meets your needs, and import it into PaletteAI. Profile bundles are downloaded as a .tar.gz archive containing all the required files to create a profile bundle in PaletteAI. These required files include cluster profiles, workload profiles, custom definitions, and Flux resources for Helm and OCI repositories.

Profile bundles in Palette AI Studio are self-contained, meaning they depend on no other profile bundles. However, profile bundles of the types Fullstack and Infrastructure may depend on packs that your Palette environment may not have. In this case, you must ensure the Pack registry is available in your Palette project.

PaletteAI CLI Import

You can use the PaletteAI CLI to import profile bundles downloaded from PaletteAI Studio into your Kubernetes cluster. If the profile bundle includes variable sets, they are imported and applied to the generated profiles.

Refer to the PaletteAI CLI reference page for more information on the PaletteAI CLI. For detailed instructions on how to import profile bundles into Palette AI, refer to our Create and Manage Profile Bundles guide.

paletteai studio import --namespace <namespace> <path/to/profilebundle.tar.gz>