This project tries to ease the creation of a local Kubernetes environment, including all the awesome devops tools you can possibly need. It should be as easy as a "./startup.sh" to get you up and running and a "k3d delete --name dev" to clean up again.
If anything you like is missing, hit me up! I love learning new awesome tools!
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
What things you need to install the software and how to install them:
Docker
Dialog (If you are lazy, like me)
What this script was tested on:
WSL (Frequently, since this is my main driver for development-stuff)
Ubuntu
MacOS 10.15
What it hopefully runs on one day:
Git Bash/MinGW (This one is pretty hard to work with actually. It randomly dislikes rm'ing stuff and borks the permissions so a relog is needed)
Edit startup.sh and add/remove stuff you need/want in
#Possible Single Values: tekton|rio|drone|concourse|argocd
CI="tekton"
#Possible Single Values: traefik|traefik2|nginx|istio|none
INGRESS="traefik2"
#Possible values: (Spaced-Delimited Multiple possible): prometheus grafana jaeger registry k8s-dashboard rio-dashboard istio
TOOLS="prometheus grafana jaeger registry k8s-dashboard"
And fire it up with
./startup.sh
For new-comers to linux, or just lazy people like me, install dialog with the package-manager of your choice and run
./startup_dialog.sh
After the installation your console should tell you the different URLs you should know about, if I didn't miss anything.
- Istio Gateway Stuff To be honest, I don't fully understand how the Istio Ingress works yet, it just seems much more complicated than traefik/nginx (it's still envoy) which would explain it's brutal amounts of configuration/documentation. I will try to fix the istio ingresses as soon as I get a grasp on how it works
- Concourse I want to blame it on concourse, since they don't have an explicit option to configure a proxypath/context-path, but that could be on me too. Documentation get's tough to read after a few hours of struggling and I could have easily missed it too.
- Sample Pipelines for the CD Tools Not really a priority as of now, but it would be a nice to have if there were easy to copy files/descriptors for the various CD tools
- Base:
- CD:
- TektonCD - The preferred tool to run your ci/cd
- Tekton Dashboard - Dashboard for Tekton Pipelines
- Concourse CI - An amazing Open Source continuous Thing-Doer
- rancher rio - The Application Deployment Engine for Kubernetes
- argocd - Declarative GitOps CD for Kubernetes
- Ingress:
- Tools:
- Grafana - Awesome Visualization of Prometheus Data
- Prometheus - The Standard Metric Collector
- Jaeger - An open source, end-to-end distributed tracing tool
- k8s-dashboard - A general purpose, web-based UI for Kubernetes clusters
- MinIO - High Performance, Kubernetes Native Object Storage
- DBs:
- Apache Cassandra - Manage massive amounts of data, fast, without losing sleep
- Hopefully even more in the future!
- Raphael Habereder - Initial work - RHabereder
This project is licensed under the Unlicense - see the LICENSE file for details
- Rancher for being awesome and developing awesome software
- The k8s ecosystem
- People that build Helm Charts
- Everyone that asked the questions I look up on stackoverflow
- Anyone whose code I reused/changed/used as inspiration!