Skip to content

Xeze-org/k3s-devops-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k3s DevOps Lab

License

Core stack  ·  host → provisioning → cluster → GitOps → edge

VMware Vagrant Ansible k3s Helm Argo CD Traefik Cloudflare Cilium

DevOps stack  ·  observability + CI/CD + artifacts + autoscaling + serverless

Prometheus Grafana Jenkins Nexus KEDA Knative

A fully-automated, modular DevOps learning lab on one VMware VM. Toggle tools on/off in values.yaml; ArgoCD installs or prunes them. Every tool is reachable at https://<tool>.<your-domain> via a Cloudflare Tunnel — no port-forwarding, no public IP.

Important

This repo is a template — every tool ships enabled: false. Out of the box you get a bare cluster (k3s + ArgoCD + Cloudflare Tunnel) and nothing else. To use it: fork → set domain + repoURL in values.yaml → flip on the tools you want → vagrant up. Enabling Jenkins + Nexus? Run the one-time Bootstrap CI/CD step afterward.

Note

Optional eBPF networking: set cilium.enabled to swap Flannel + kube-proxy for Cilium + Hubble. Unlike the ArgoCD tool toggles, it's a provision-time flag (needs a fresh vagrant up).

📖 Docs: Prerequisites · Quick start · Configuration · Bootstrap CI/CD · Tools · KEDA · Knative · Cilium + Hubble · Passwords · Networking · VM sizing · Troubleshooting

🧩 Want to deploy your own app? Copy the example/ app — manifests + ArgoCD setup, fully explained.

flowchart LR
  v[gitops/root/values.yaml<br/>domain + tool flags] --> vg[vagrant up]
  vg --> an[Ansible bootstrap]
  an --> k3s[k3s]
  k3s -.->|cilium.enabled| ci[Cilium eBPF CNI<br/>+ Hubble]
  an --> cf[cloudflared tunnel]
  an --> ar[ArgoCD]
  ar -->|pulls public repo| gh[(GitHub)]
  gh --> tools[enabled tools<br/>grafana · loki · jenkins · nexus · keda]
Loading

Get your passwords

Username is admin for every tool:

vagrant ssh -c "bash /vagrant/scripts/passwords.sh"

Bootstrap CI/CD

If you enabled Jenkins + Nexus, run the one-time setup once both are Healthy. It creates the registry pull/push secrets, lets Traefik route to ExternalName services, and grants Jenkins least-privilege RBAC to deploy into your namespace:

vagrant ssh -c "bash /vagrant/scripts/config.sh"

Full walkthrough and the pipeline it unlocks: Bootstrap CI/CD.

License

Apache License 2.0 © 2026 Xeze-org.

About

Reproducible Kubernetes DevOps lab powered by Vagrant, Ansible, ArgoCD, and GitOps.

Topics

Resources

License

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors