Skip to content

sakthisarans/My-HomeLab-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My-HomeLab

Short overview of this repository and how to use it.

Repository layout

Purpose

This repo contains:

  • Ansible playbooks to provision and configure a MicroK8s-based home lab and related services (ansible/ansible-initial-setup.yaml).
  • Kubernetes manifests for services intended to run on the cluster (kube/).

Quick start (provision a MicroK8s cluster)

  1. Review variables:

  2. Run the initial setup playbook (example):

    • ansible-playbook -i ansible/hosts ansible/ansible-initial-setup.yaml -e @ansible/vars.yml

    Notes:

    • The initial playbook installs snapd and MicroK8s, enables addons, and prepares master/worker join tokens. See ansible/ansible-initial-setup.yaml for details.
    • Generated join tokens are produced on the master and then applied to workers by the playbook.
  3. After provisioning:

    • Use the kubeconfig at exp/new.kubeconfig or microk8s config to interact with the cluster.
    • Deploy the manifests in kube/ (for example kubectl apply -f kube/immich.yaml).

Common workflows

Notes & tips

  • The initial playbook waits for MicroK8s readiness and enables addons like dns, storage, metallb, ingress, dashboard and metrics-server. See the addon list in ansible/ansible-initial-setup.yaml.
  • Cloudflared tunnel configuration and systemd service files are created by the ansible playbook. Ensure tunnel1_id, tunnel2_id, and other cloudflared-related variables are set in ansible/vars.yml before running the cloudflared tag.
  • Use ansible-playbook --tags microk8s,join to focus on cluster install/join flow.

Troubleshooting

  • If MicroK8s is not ready, check the output of microk8s status --wait-ready on the target host(s).
  • For join failures, inspect the generated join command captured by the master play and available in host vars after running the playbook. Inspect ansible/ansible-initial-setup.yaml to see how the join command is extracted.

Contributing / Extending

  • Add more Kubernetes manifests under kube/ and apply them against the cluster.
  • Add or modify Ansible tasks in ansible/ to extend provisioning logic.

Files referenced in README (quick links)

About

Personal homelab infrastructure setup documenting self-hosted services, networking configuration, automation, and system administration experiments.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors