Skip to content

Host Preflight

Productive K3S Core includes a host-side compatibility check you can run before bootstrap.

Purpose

Use this tool when you want to answer a simple question before installation:

Is this host or VM aligned with the supported platform assumptions for productive-k3s-core?

It is especially useful when:

  • validating a fresh VM before installation
  • checking whether a reused cloud instance still matches the expected baseline
  • failing early in automation before starting the interactive bootstrap

Basic usage

From the repository root:

make preflight

Or call the script directly:

./scripts/preflight-host.sh

Or call the operational wrapper:

./productive-k3s-core.sh preflight

Or use the release installer path without cloning the repository:

curl -fsSL https://github.com/<owner>/<repo>/releases/download/X.Y.Z/productive-k3s-core-cli.sh | bash -s -- preflight

Strict mode

By default, warning-level findings do not fail the command.

If you want warnings to return a non-zero exit code too:

make preflight-strict

Or:

./productive-k3s-core.sh preflight --strict

Mode-aware checks

You can evaluate the host against a specific runtime profile:

./scripts/preflight-host.sh --mode single-node
./scripts/preflight-host.sh --mode server
./scripts/preflight-host.sh --mode agent
./scripts/preflight-host.sh --mode stack

single-node is the default.

What it checks

The preflight currently validates:

  • supported platform and version
  • supported CPU architecture
  • systemd as PID 1
  • required commands such as sudo, curl, getent, apt-get, systemctl, tar, sha256sum, and mktemp
  • sudo posture
  • practical hardware guidance for single-node and stack

Today, the public support baseline includes amd64/x86_64 and Ubuntu 24.04 on arm64/aarch64.

The hardware guidance follows the published platform baseline:

  • practical minimum: 4 vCPU, 12 GiB RAM, 60 GiB free disk
  • recommended: 6-8 vCPU, 16 GiB RAM, 100+ GiB free disk

Output model

The tool emits:

  • OK for checks that look aligned
  • WARN for soft issues or shortfalls
  • FAIL for blockers that make the target unsuitable

For automation, use machine-readable output:

./productive-k3s-core.sh preflight --json-output

What it does not do

The preflight is not a dry-run installer.

It does not:

  • install missing packages
  • modify the host
  • validate a running cluster
  • replace the post-install validator

Use this before bootstrap. Use k3s checks and the rest of the validation pages after bootstrap.