Skip to main content
Version: 0.2

Cluster Provisioning

Overview

Colony supports three cluster types for different use cases. All clusters are provisioned on bare metal hardware through automated workflows that handle operating system installation, Kubernetes deployment, and configuration.

Cluster Types

Civo Stack Enterprise

Complete private cloud on your bare metal

Transform your datacenter into a full-featured cloud platform. Deploy VMs with live migration, Kubernetes clusters, managed databases, object storage, and serverless workloads - all on your hardware.

Learn more about Civo Stack Enterprise →

  • What's included: VMs, Kubernetes, DBaaS, Object Storage, Block Storage, GPU/AI workloads
  • Enterprise features: Live VM migration, multi-tenancy, VMware migration tools, 24/7 support
  • Minimum: 5 assets (3 control planes + 2 workers)
  • Credentials: Contact your Civo account manager

Documentation → | Create Cluster →

K3s

Lightweight Kubernetes on Ubuntu

Fast, lightweight Kubernetes distribution running on Ubuntu. Ubuntu is provisioned as part of cluster creation. Ideal for development, edge computing, and resource-constrained environments.

  • Best for: Development, testing, edge deployments, IoT
  • OS: Ubuntu 22.04 Jammy (provisioned automatically)
  • Features: Traefik ingress, CoreDNS, local-path storage included
  • Requirements: SSH key pair, assets that can PXE boot on the management network

Learn more → | Create K3s Cluster →

Talos Linux

Standard Kubernetes with Talos

Generic Talos-based Kubernetes without vendor-specific finalization. Provides flexibility for custom configurations and integrations.

  • Best for: Generic deployments, custom requirements, Talos evaluation
  • OS: Talos Linux (Container native OS for Kubernetes)
  • Features: Standard Kubernetes, no vendor lock-in
  • Requirements: Available assets, network configuration

Learn more → | Create Talos Linux Cluster →

Feature Comparison

FeatureCivo StackK3sTalos Linux
OSTalos LinuxUbuntu 22.04Talos Linux
Provisioning Time40-60 min10-15 min10-15 min
Min Assets5 (3 control, 2 workers)2 (1 control, 1 worker)2 (1 control, 1 worker)
OS Pre-installNo (PXE boot)No (PXE boot)No (PXE boot)
SSH AccessNo (API-managed)NoNo (API-managed)
CredentialsGitLab, image pull, API tokenNoneNone
CSE InstallerYesNoNo
Autopilot ModeYesNoNo
CNIIncluded (CSE)Included (Flannel)Manual install
IngressIncluded (CSE)TraefikManual install
StorageIncluded (CSE)local-pathManual install
UpdatesManaged (Talos)Manual (apt)Manual (Talos)
ImmutabilityYesNoYes
Production ReadyYesDevelopmentYes

Requirements

All Cluster Types

  • Management cluster running (initialize here)
  • Available assets (discover here)
  • Network configuration (gateway, DNS, NTP)
  • Colony UI or API access

Additional Requirements by Type

Civo Stack:

K3s:

  • No additional requirements

Talos Linux:

  • No additional requirements

Provisioning Methods

The web interface provides a guided workflow for cluster creation:

  1. Navigate to ClustersCreate Cluster
  2. Complete the form with your configuration
  3. Review and create
  4. Monitor provisioning progress
  5. Download kubeconfig when complete

After Provisioning

Once your cluster is provisioned:

  • Download kubeconfig: Access your cluster with kubectl
  • Verify connectivity: Run kubectl get nodes to confirm all nodes are Ready
  • Add more nodes: Scale your cluster by adding nodes
  • Deploy applications: Use kubectl or Helm to deploy workloads

Troubleshooting

Common Issues

Assets not available:

  • Check asset status in UI (must be "available", not "discovering" or "provisioning")
  • Verify IPMI connectivity with ipmitool -H <ipmi-ip> -I lanplus -U admin -P $PASS power status
  • Ensure assets are powered on and PXE booted

Provisioning stuck:

  • Check workflow status in Colony UI
  • Review colony-agent logs: kubectl logs -n colony <agent-pod>
  • Verify network connectivity to PXE server
  • Check Tinkerbell workflow logs: kubectl logs -n tinkerbell <pod-name>

Cluster not reachable:

  • Verify kubeconfig downloaded correctly
  • Check static IPs are pingable from management cluster
  • Ensure firewall rules allow API server port (6443)

What's Next

Choose your cluster type and start provisioning: