Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lanefu/armlab
clean sheet quick and dirty k8s and virt lab on some performant SBCs
https://github.com/lanefu/armlab
ansible arm cilium k3s kube-vip kubernetes-deployment kubevirt libvirt
Last synced: 17 days ago
JSON representation
clean sheet quick and dirty k8s and virt lab on some performant SBCs
- Host: GitHub
- URL: https://github.com/lanefu/armlab
- Owner: lanefu
- License: mit
- Created: 2024-05-18T12:22:48.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-10-27T11:44:13.000Z (19 days ago)
- Last Synced: 2024-10-27T13:12:00.285Z (19 days ago)
- Topics: ansible, arm, cilium, k3s, kube-vip, kubernetes-deployment, kubevirt, libvirt
- Language: Shell
- Homepage:
- Size: 58.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# armlab
clean sheet quick and dirty k8s and virt lab on some performant SBCs
## getting started
This 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)
There's plenty of other things in repo besides what is in readme.. this is kind of a living work space for me.
### environment setup
there are better ways, but this way for now... `.gitignore` has been preconfigured to use namedspace ansible home `.ansible/` and `venv` used in the example.
#### requirements
assume you have python3 and python3-venv installed
```
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -r requirements.txt
ansible-galaxy install -r requirements.yml
ansible-galaxy install -r requirements-armlab.yml
```## playbooks
### cockpit_vmhost.yml
Installs qemu, libvirt, and cockpit for deploying virtual machines
### provision_k8s_nodes.yml
Provision a pool of VMs on the VM hosts intended to be used later as k8s control plane
and worker nodes#### notes for me
`ansible-playbook playbooks/provision_k8s_nodes.yml -e @vars/local.yml`
### destroy_k8s_nodes.yml
Destroy the VMs Above
### provision_k8s_cluster.yml
Bootstrap a k3s cluster
### provison_vm.yml
playbook to deploy a single VM
## scripts
I love ansible, but I'm not a purist. I'm extremely prone to lots of wrapper scripts as I experiment with things.
You'll see me even chain lots of ansible playbooks and commands in my scripts.Note: 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.
Interesting things in my scripts folder:
- `scripts/big_bang.sh` - soup to nuts deployment of my test k3s cluster from VM creation to fluxcd installation. Good one to look at
- `scripts/fetch_kubeconfig.sh` - fetch kubeconfig from cluster cluster node and prepare for local use by updating API endpoint
- `scripts/kubevirt/` - scripts I used for experimenting with kubevirt bootstrapping. Currently targeted at x86 instead of ARM :P