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.