Skip to main content

Packs

A Cluster Profile is made up of layers, each of which is created using a pack. Packs can be broadly categorized into two types:

  • Infrastructure packs - These packs are used to create the core infrastructure layers required to provision a Kubernetes cluster. These packs include the operating system, Kubernetes, the container network interface (CNI), and the container storage interface (CSI) specifications. Spectro Cloud builds and maintains these infrastructure packs for updates.

  • Add-on packs - These packs are used to form the integrations and application layers that exist on top of the infrastructure layers. Examples of applications are system, authentication, security, monitoring, logging, ingress, load balancer, service mesh, or helm charts.

Both the infrastructure and add-on packs described above are configurable, and you can define new add-on custom packs from scratch as well. The use case for defining new add-on packs is to drive consistency across your profile deployments.

Pack Structure​

Palette provides a rich collection of out-of-the-box packs for various integrations and also offers extensibility through custom-built packs. To configure an existing infrastructure or add-on pack or to define a new add-on custom pack, it is essential to understand the pack structure.

Each pack is a collection of files such as manifests, Helm charts, configuration files, and more. Kubernetes manifests and Helm charts are applied to the Kubernetes clusters after deployment. The following is a typical pack structure:

File NameMandatory / OptionalRequirements
pack.jsonMandatoryPack metadata. Must follow JSON syntax and provide the following:
- A pack name in the name field. For example, "name": "hello-universe"
- A pack version in the version field. For example,"version": "1.3.1"
- For manifest-based packs, paths to manifest files in the kubeManifests field. For example, "kubeManifests": ["manifests/hello-universe.yaml"]
- For Helm chart-based files, paths to chart files in the charts field. For example, "charts": [ "charts/fluent-bit-0.57.0.tgz"]
values.yamlMandatoryPack configuration. Must follow YAML syntax and provide default values to mandatory parameters exposed from the underlying charts or manifests.
charts/MandatoryMandatory for Helm chart-based packs. Contains the Helm charts to be deployed for the pack. Must follow Helm chart file structure and contain a .tgz file with the compressed Helm chart files.
manifests/MandatoryMandatory for Manifest-based packs. Contains the manifest files to be deployed for the pack. Must contain valid Kubernetes Objects.
logo.pngOptionalContains the pack logo.
README.mdOptionalThe pack description.

The pack files must conform to the following directory structure.

.
├── pack.json # Mandatory.
├── values.yaml # Mandatory.
├── manifests # Mandatory.
├── manifest-1.yaml
├── manifest-2.yaml
│ └── manifest-3.yaml
├── logo.png # Mandatory.
└── README.md # Optional.

Registries​

The pack registry is a server-side application to store and serve packs to its clients. Packs from a pack registry are retrieved and presented as options during the creation of a cluster profile. Palette supports the configuration of multiple registries.

Default Registry​

The default pack registry is Spectro Cloud's OCI Palette Registry. It contains several packs for creating a cluster profile and launching a Kubernetes cluster with a wide choice of integrations. Palette maintains all packs in this registry and is responsible for upgrading them whenever required.

Custom Pack Registry​

Custom registries offer a mechanism of extending the capabilities of a platform by defining additional integrations. Use ORAS to upload and maintain custom packs in custom registries. Refer to the Deploy a Custom Pack tutorial for further information.

Spectro CLI​

The Spectro Cloud Command Line Interface (CLI) is a tool to interact with a Spectro Cloud pack registry. You can use the CLI to upload and download packs. The CLI must authenticate with the pack registry before executing any CLI commands. Review the Spectro Cloud CLI reference page for usage instructions.