Files
homelab-infrastructure/README.md
T
2026-07-28 16:37:33 +01:00

1.5 KiB

Home Infrastructure

An Ansible + OpenTofu project for installing a minimal Kubernetes installation to bare-metal and virtual machines.

Quick Start

Get started with a local Kubernetes cluster which can be used to design and test new configuration before pushing them to real machines.

  1. Login with Proton Pass and start the SSH daemon.

    pass-cli login
    pass-cli ssh-agent daemon start
    export SSH_AUTH_SOCK="$HOME/.ssh/proton-pass-agent.sock"
    
  2. Install the Proton Pass plugin for Ansible

    just fetch-plugins
    
  3. Launch Incus virtual machines

    just up
    
  4. Tear down the Incus virtual machines

    just down
    

Setup

just fetch-plugins

Bare-metal provisioning

When creating a set of fresh machines, you must run the provisioning step to create the "Kolibri" automation user.

The Kolibri automation user is used for all other playbooks and has permissions to execute passwordless sudo.

ansible-playbook -i ansible/inventories/bare_metal/hosts.yaml ansible/playbooks/provision.yaml -K -e ansible_user=<your_interactive_user>

Local Testing with Incus

just up
just headlamp

The above command runs the Flatpak version of Headlamp which may not have permissions to access the Kubernetes config file copied from the instance.

You should run flatpak override --user --filesystem=$(pwd) io.kinvolk.Headlamp to ensure that Headlamp can access the directory contents.