flatcar-node-onboarding

Onboard Flatcar Linux nodes to a k3s cluster and connect them to a Nebraska update pipeline.

11|9|Updated May 25, 2026
One-click install
npx skills add https://github.com/projectbluefin/lab --skill flatcar-node-onboarding-projectbluefin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: flatcar-node-onboarding
Source: https://github.com/projectbluefin/lab/tree/main/docs/skills/flatcar-node-onboarding
Command: npx skills add https://github.com/projectbluefin/lab --skill flatcar-node-onboarding-projectbluefin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding a Flatcar Linux node to a k3s cluster involves immutable-filesystem constraints, overlayfs /etc quirks, and update_engine configuration that fails silently when done the usual way. This Skill provides the exact commands and known pitfalls for joining nodes, auto-configuring updates via DaemonSet, and validating the Nebraska kernel update pipeline end-to-end. ## Core Features & Use Cases - k3s Agent Join: Install k3s on Flatcar via the sysext-aware installer and verify node registration with kubectl. - Nebraska Update Configuration: Use the flatcar-update-configurator DaemonSet and nsenter to write /etc/flatcar/update.conf past the overlayfs restriction, then confirm first check-in in Nebraska logs. - Kernel Pipeline Validation: Triage flatcar-kernel-build Argo workflow failures, verify package registration, and confirm kernel version promotion on the node. - Use Case: You just racked a new Flatcar node (exo-2) and it is not appearing in kubectl get nodes, or update_engine never checks in to Nebraska. Follow the Skill to join the cluster, confirm update.conf, and watch the first processEvent arrive. ## Quick Start Use the flatcar-node-onboarding skill to join my new Flatcar node exo-2 to the k3s cluster and verify it checks in to the Nebraska update server.

Frequently Asked Questions about flatcar-node-onboarding

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a Flatcar Linux node to a k3s cluster?▼

Install k3s on the Flatcar node using the sysext-aware installer with INSTALL_K3S_TYPE=agent and the server URL plus join token from the existing cluster. Retrieve the token from the server's /var/lib/rancher/k3s/server/node-token, then verify with kubectl get nodes.

How do I point Flatcar update_engine at a Nebraska server?▼

Write GROUP and SERVER lines into /etc/flatcar/update.conf pointing at the Nebraska update URL, then send SIGHUP to update_engine to reload without a restart. Because Flatcar mounts /etc as overlayfs, write the file via nsenter into the host mount namespace rather than a hostPath mount.

Why does writing /etc/flatcar/update.conf fail with permission denied?▼

Flatcar mounts /etc as overlayfs over a read-only base, so hostPath writes fail silently or with permission denied. Use nsenter --target 1 --mount from a pod with hostPID, privileged securityContext, and an Unconfined seccomp profile to write into the host namespace.

Why is my Flatcar node not checking in to Nebraska?▼

Confirm the flatcar-update-configurator DaemonSet pod is Running on the node and that update.conf actually contains the Nebraska URL. Then check Nebraska logs for a processEvent entry with the Flatcar app UUID; absence after 15 minutes means the config was never written.

Where do I download Flatcar images and why does the URL fail?▼

Download Flatcar images from stable.release.flatcar-linux.net; the old flatcar-container.net domain no longer resolves. Images ship as bzip2-compressed qcow2 (.img.bz2), so decompress with bzip2 before running qemu-img convert.

When should I not use this Flatcar onboarding process?▼

Do not use it for non-Flatcar nodes such as Bluefin, Bazzite, or Ubuntu, which follow general k3s cluster operations instead. It also does not cover KubeVirt VM provisioning or authoring the kernel build pipeline itself.