{"id":18008181,"url":"https://github.com/lanefu/armlab","last_synced_at":"2026-04-19T10:32:19.068Z","repository":{"id":240402378,"uuid":"802482476","full_name":"lanefu/armlab","owner":"lanefu","description":"clean sheet quick and dirty k8s and virt lab on some performant SBCs","archived":false,"fork":false,"pushed_at":"2026-02-16T14:45:13.000Z","size":89,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-16T22:28:59.214Z","etag":null,"topics":["ansible","arm","cilium","k3s","kube-vip","kubernetes-deployment","kubevirt","libvirt"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lanefu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-18T12:22:48.000Z","updated_at":"2026-02-16T14:45:18.000Z","dependencies_parsed_at":"2024-05-18T16:31:25.765Z","dependency_job_id":"f6f1e7da-be63-4838-8f55-d5ce7e0d6577","html_url":"https://github.com/lanefu/armlab","commit_stats":null,"previous_names":["lanefu/armlab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lanefu/armlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanefu%2Farmlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanefu%2Farmlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanefu%2Farmlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanefu%2Farmlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lanefu","download_url":"https://codeload.github.com/lanefu/armlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanefu%2Farmlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32004035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","arm","cilium","k3s","kube-vip","kubernetes-deployment","kubevirt","libvirt"],"created_at":"2024-10-30T01:17:46.288Z","updated_at":"2026-04-19T10:32:19.027Z","avatar_url":"https://github.com/lanefu.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# armlab\n\nclean sheet quick and dirty k8s and virt lab on some performant SBCs\n\n## getting started\n\nThis repo is meant to be the ansible project directory.. or close to it plus documentation.. Trying to leverage off-the-shelf roles when possible. Other roles will via the [lanefu armlab collection](https://github.com/lanefu/ansible-collection-armlab.git)\n\nThere's plenty of other things in repo besides what is in readme.. this is kind of a living work space for me.\n\n### environment setup\n\nthere are better ways, but this way for now... `.gitignore` has been preconfigured to use namedspace ansible home `.ansible/` and `venv` used in the example.\n\n#### requirements\n\nassume you have python3 and python3-venv installed\n\n```\npython3 -m venv venv\nsource venv/bin/activate\npython3 -m pip install -r requirements.txt\nansible-galaxy install -r requirements.yml\nansible-galaxy install -r requirements-armlab.yml\n```\n\n## playbooks\n\n### cockpit_vmhost.yml\n\nInstalls qemu, libvirt, and cockpit for deploying virtual machines\n\n### provision_k8s_nodes.yml\n\nProvision a pool of VMs on the VM hosts intended to be used later as k8s control plane\nand worker nodes\n\n#### notes for me\n\n`ansible-playbook playbooks/provision_k8s_nodes.yml -e @vars/local.yml`\n\n### destroy_k8s_nodes.yml\n\nDestroy the VMs Above\n\n### provision_k8s_cluster.yml\n\nBootstrap a k3s cluster\n\n### provison_vm.yml\n\nplaybook to deploy a single VM\n\n## scripts\n\nI love ansible, but I'm not a purist. I'm extremely prone to lots of wrapper scripts as I experiment with things.\nYou'll see me even chain lots of ansible playbooks and commands in my scripts.\n\nNote: you might see me `source` local config files where I have some \"private\" configuration values I did't want to upload.. They typically are just defining vars used directly in the script. Easy for you to recreate.\n\nInteresting things in my scripts folder:\n\n- `scripts/big_bang.sh` - soup to nuts deployment of my test k3s cluster from VM creation to fluxcd installation. Good one to look at\n- `scripts/fetch_kubeconfig.sh` - fetch kubeconfig from cluster cluster node and prepare for local use by updating API endpoint\n- `scripts/kubevirt/` - scripts I used for experimenting with kubevirt bootstrapping. Currently targeted at x86 instead of ARM :P\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanefu%2Farmlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanefu%2Farmlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanefu%2Farmlab/lists"}