Cozystack Bundles: Overview and Comparison

Cozystack bundles reference: composition, configuration, and troubleshooting.

Introduction

Bundles are pre-defined combinations of Cozystack components. Each bundle is tested, versioned, and guaranteed to work as a unit. They simplify installation, reduce the risk of misconfiguration, and make it easier to choose the right set of features for your deployment.

This guide is for infrastructure engineers, DevOps teams, and platform architects planning to deploy Cozystack in different environments. It explains how Cozystack bundles help tailor the installation to specific needs—whether you’re building a fully featured platform-as-a-service or just need a minimal Kubernetes cluster.

Bundles Overview

Componentpaas-fulliaas-full*paas-hosteddistro-fulldistro-hosted
Managed Kubernetes
Managed Applications
Virtual Machines
Cozystack Dashboard (UI)
Cozystack API
Kubernetes Operators✔ (optional)✔ (optional)
Monitoring subsystem✔ (optional)✔ (optional)
Storage subsystemLINSTORLINSTORLINSTOR
Networking subsystemKube-OVN + CiliumKube-OVN + CiliumCilium
Virtualization subsystemKubeVirtKubeVirtKubeVirt (optional)KubeVirt (optional)
OS and Kubernetes subsystemTalos LinuxTalos LinuxTalos Linux

* Bundle iaas-full is currently on the roadmap, see cozystack/cozystack#730.

Choosing the Right Bundle

Bundles combine components from different layers to match particular needs. Some are designed for full platform scenarios, others for cloud-hosted workloads or Kubernetes distributions.

paas-full

paas-full is a full-featured PaaS and IaaS bundle, designed for installation on Talos Linux. It includes all four layers and provides the full set of Cozystack components, enabling a comprehensive PaaS experience. Some higher-layer components are optional and can be excluded during installation.

paas-full is intended for installation on bare-metal servers or VMs.

Bundle source: paas-full.yaml.

Example configuration:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cozystack
  namespace: cozy-system
data:
  bundle-name: "paas-full"
  ipv4-pod-cidr: "10.244.0.0/16"
  ipv4-pod-gateway: "10.244.0.1"
  ipv4-svc-cidr: "10.96.0.0/16"
  ipv4-join-cidr: "100.64.0.0/16"
  root-host: "example.org"
  api-server-endpoint: "https://192.168.100.10:6443"
  expose-services: "api,dashboard,cdi-uploadproxy,vm-exportproxy"

paas-hosted

Cozystack can be installed as platform-as-a-service (PaaS) on top of an existing managed Kubernetes cluster, typically provisioned from a cloud provider. Bundle paas-hosted is made for this use case. It can be used with kind and any cloud-based Kubernetes clusters.

Bundle paas-hosted includes layers 3 and 4, providing Cozystack API and UI, managed applications, and tenant Kubernetes clusters. It does not include CNI plugins, virtualization, or storage.

The Kubernetes cluster used to deploy Cozystack must conform to the following requirements:

  • Listening address of some Kubernetes components must be changed from localhost to a routable address.
  • Kubernetes API server must be reachable on localhost.

Bundle source: paas-hosted.yaml.

Example configuration:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cozystack
  namespace: cozy-system
data:
  bundle-name: "paas-hosted"
  root-host: "example.org"
  api-server-endpoint: "https://192.168.100.10:6443"
  expose-services: "api,dashboard"

distro-full

Cozystack can be used as a pure Kubernetes distribution for installing on Talos Linux over bare metal. Bundle distro-full includes everything needed to make a ready-to-work Kubernetes cluster:

  • Talos as the operating system,
  • Kubernetes distribution,
  • Ready-to-use subsystems: networking, virtualization, and storage,
  • Optional components: Monitoring and a set of Kubernetes operators.

Bundle source: distro-full.yaml.

Example configuration:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cozystack
  namespace: cozy-system
data:
  bundle-name: "distro-full"
  ipv4-pod-cidr: "10.244.0.0/16"
  ipv4-svc-cidr: "10.96.0.0/16"
  root-host: "example.org"
  api-server-endpoint: "https://192.168.100.10:6443"

distro-hosted

This minimal Cozystack bundle adds extra functionality on top of a hosted Kubernetes cluster. It includes three optional components:

  • Virtualization subsystem (as KubeVirt).
  • Monitoring subsystem.
  • Kubernetes operators.

Bundle distro-hosted can be used with kind and any cloud-based Kubernetes clusters. It does not include CNI plugins, virtualization, storage, or multitenancy.

The Kubernetes cluster used to deploy Cozystack must conform to the following requirements:

  • Kubernetes cluster DNS domain must be set to cozy.local.
  • Listening address of some Kubernetes components must be changed from localhost to a routable address.
  • Kubernetes API server must be reachable on localhost.

Bundle source: distro-hosted.yaml.

iaas-full

This planned bundle offers a complete infrastructure-as-a-service setup. It provides all Cozystack components except for Kubernetes operators and preset managed applications.

Bundle iaas-full is yet to be implemented in Cozystack. See cozystack/cozystack#730.

Learn More

For a full list of configuration options for each bundle, refer to the ConfigMap reference.

To see the full list of components, how to enable and disable them, refer to the Components reference.

To deploy a selected bundle, follow the Cozystack installation guide or provider-specific guides. However, if this your first time installing Cozystack, it’s best to use the complete bundle paas-full and go through the Cozystack tutorial.