bootstrap simple projects on kubernetes with kind and k3s
Project description
☁️ smol k8s lab 🧸
A project aimed at getting up and running quickly with slimmer k8s distros in one small command line tool.
Docs
Quick Start
If you've already got Python3.11 and brew installed, you should be able to:
pip3.11 install smol-k8s-lab
We've also got a Quickstart guide for you to jump right in!
There's also full tutorials to manually set up different distros in the docs we maintain as well as BASH scripts for basic automation of each k8s distro in:
./distro/{NAME_OF_K8S_DISTRO}/bash_full_quickstart.sh
Under the hood
Currently supported k8s distros
We tend to test first on k3s and then kind.
Stack We Install on K8s
Application | Description |
---|---|
🐄 Local Path Provisioner |
Default simple local file storage for persistent data |
metallb |
loadbalancer for metal, since we're mostly selfhosting |
nginx-ingress |
The ingress controller allows access to the cluster remotely, needed for web traffic |
cert-manager |
For SSL/TLS certificates |
k9s |
Terminal based dashboard for kubernetes |
Current versions cert-manager v1.10.1 ingress-nginx 4.4.0
Optionally installed
Application/Tool | Description |
---|---|
ESO |
external-secrets-operator integrates external secret management systems like GitLab |
Argo CD |
Gitops - Continuous Deployment |
Kyverno |
Kubernetes native policy management to enforce policies on k8s resources |
Current versions argo-cd 5.16.2 external-secrets 0.6.1
If you install argocd, and you use bitwarden, we'll generate an admin password and automatically place it in your vault if you pass in the -p
option. Curently only works with Bitwarden.
Want to get started with argocd? If you've installed it via smol-k8s-lab, then you can jump here. Otherwise, if you want to start from scratch, start here
Tooling Used for the script itself and interface
- rich (this is what makes all the pretty formatted text)
- PyYAML (to handle the k8s yamls and configs)
- bcrypt (to pass a password to argocd and automatically update your bitwarden)
- click (handles arguments for the script)
Troubleshooting
If you're stuck, checkout the Notes to see if we also got stuck on the same thing at some point :) Under each app or tool, we'll have notes on how to learn more about it, as well as any errors we've already battled.
Other Notes
Check out the optional
directory for quick examples on apps this script does not default install.
e.g. for postgres, go to ./optional/postgres
Status
This is still in later alpha, as we figure out all the distros we want to support, and pin all the versions, but if you'd like to contribute or just found a :bug:, feel free to open an issue (or pull request), and we'll take a look! We'll try to get back to you asap!
Contributors
JesseBot |
Max! |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for smol_k8s_lab-0.10.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7da75ea24b8e37d840a6d89fe2ae38bf05834633fc4da96ec68f7b47d0d70df2 |
|
MD5 | b3e6644e2029d710c947928b57830c93 |
|
BLAKE2b-256 | f284d07e4844d98ede8b2978230980638c51eb35203fd8a3548ad2d8f69150a0 |