Giter VIP home page Giter VIP logo

zero-to-k8s's Introduction

Zero-To-k8s

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!

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

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)

Installing

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.

What doesn't work yet / is incomplete or a todo

  • 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

Built With

  • Base:
    • k3d - The Tool used to deploy kubernetes
    • rancher - Run Kubernetes Everywhere with Rancher
  • 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:
    • NGINX - Production-Grade Ingress Controller for Kubernetes
    • Traefik - My favorite Ingress Controller and proxy
    • Istio - The defacto standard in terms of Service-Mesh
  • 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:
  • Hopefully even more in the future!

Authors

License

This project is licensed under the Unlicense - see the LICENSE file for details

Acknowledgments

  • 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!

zero-to-k8s's People

Contributors

rhabereder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.