Prerequisites — Linux script

Install-CloudGrange-Linux.sh runs directly on an Ubuntu server that you provide for CloudGrange. It installs K3s, then installs the CloudGrange Helm chart. No Windows host, no Hyper-V and no VM are involved. It is for customers who can provide a Linux server but do not want to build and operate Kubernetes themselves.

The Linux script is a managed foundation. Once you run it, CloudGrange owns the server's Foundation: the Ubuntu operating system and its updates, K3s, the container runtime and CloudGrange's host services. CloudGrange delivers operating-system and K3s updates through the admin-started Foundation card in Platform → Updates. See Updates and Support boundary.

CloudGrange is in active development and is not GA. See current product and release status.

Server

The server must be a dedicated, fresh install of a supported Ubuntu release, used only for CloudGrange. Because CloudGrange owns and updates this operating system, do not install other applications, container runtimes or Kubernetes on it, before or after installing CloudGrange.

Requirement Detail
Operating system A fresh install of Ubuntu 24.04 LTS, the release CloudGrange's managed foundations use and test on
Dedicated Used only for CloudGrange. No other workloads, no existing container runtime (Docker, containerd or Podman), and no existing Kubernetes (K3s, RKE2, microk8s or kubeadm)
Architecture x86-64 (amd64) only. The script installs the linux-amd64 Helm build, and the offline images are amd64
systemd Required. K3s and the CloudGrange host updater run as systemd services

The Linux script checks these conditions before it changes anything: a supported Ubuntu version, no conflicting container runtime or Kubernetes, and the required ports free. It stops if any check fails.

Sizing

The script does not enforce a minimum. Use at least the resources of CloudGrange's own Windows-script VM, which is the tested configuration:

Resource Tested configuration Why
vCPU 4 The chart requests 870m CPU. K3s and the system pods run on the same node
Memory 8 GB The chart's memory limits total about 5.4 GiB, plus K3s
Disk 30 GB The chart's volumes on this path total about 21.4 GiB, plus K3s, the images and the OS

K3s's local-path provisioner stores volumes under /var/lib/rancher/k3s/storage and does not enforce the requested sizes. Plan disk for the database, metrics and log growth. See Storage.

Access

  • root, through sudo. The script stops if it is not run as root.
  • curl, used to download K3s and Helm.
  • python3. The installer records its resumable checkpoints as JSON with Python. It is present on a stock Ubuntu 24.04 install.
  • unzip, to extract the bundle.

The script installs Helm v3.22.0 itself (checksum-verified) if helm is not on the PATH.

Ports

These must be free on the server, and reachable from the machines listed:

Port Used by Reached from
443/tcp Portal, API and sign-in (K3s Traefik ingress) Users
8443/tcp The built-in relay (K3s ServiceLB) Managed Hyper-V hosts running the CloudGrange agent
6443/tcp The Kubernetes API (K3s) The server itself. Do not expose it to users
80/tcp K3s Traefik Keep free. Traefik binds it

The script does not configure a host firewall. If ufw or another firewall is on, allow 443 and 8443.

Internet or offline bundle

The release bundle Install-CloudGrange-K3s-Bundled.zip can install with or without internet access.

With internet access, the server needs outbound HTTPS to get.k3s.io and github.com (the pinned K3s), get.helm.sh (Helm), and ghcr.io, docker.io and quay.io (images). See Network egress.

Without internet access, the bundle's airgap/ directory carries the pinned K3s binary, K3s's own air-gap images, and every CloudGrange and cert-manager image. The installer imports them into containerd and installs K3s without downloading anything. Helm must then already be on the server, because the script downloads Helm only when it is missing.

What the script installs on the host

Item Where
K3s v1.36.4+k3s1 /usr/local/bin/k3s, k3s.service, /etc/rancher/k3s/k3s.yaml
Helm v3.22.0 /usr/local/bin/helm (only if missing)
CloudGrange host updater /usr/local/sbin/cloudgrange-updater-k3s.py, cloudgrange-updater-k3s.service, /var/lib/cloudgrange/updates/
Install state /opt/cloudgrange/.install-state.json (re-running resumes at the first incomplete stage)

Together with the Ubuntu operating system itself, these are the Foundation on this path, and CloudGrange owns them. CloudGrange updates them, including Ubuntu packages, only when an administrator starts a Foundation update. The Foundation card lists the exact packages and the K3s version it will change, and whether a reboot is needed, before you confirm. See Updates.

Full walkthrough: Native Linux install.

See current product and release status.