kube-splat is responsible for installing infrastructure tools using ansible. It comes with an ansible role with a number of configurable tasks - just add your kubernetes cluster details and run a one-line command to install a suite of useful tools.
kube-splat makes life very easy for organisations with:
- Monitoring Solution
- Logging Solution
- Kubernetes Security Platform
- Management and Issuance of TLS certificates
- Metrics Server
- Ingress-Nginx Controller
- Descheduler
kube-splat makes it easy to orchestrate the implementation of a number of free security tools:
m9sweeper: Kubernetes Security Platform
kube-prometheus-stack: Monitoring Solution
loki-stack: Logging Solution
Cert Manager: Management and Issuance of TLS certificates
Metric Server: Metrics Server
Nginx Ingress: Ingress-Nginx Controller
Descheduler: Descheduler
This project requires a Kubernetes Cluster and uses ansible-playbook as package manager
If you don't have a Kubernetes Cluster running, you can install one locally with Minikube using the following directions
Install on Mac from the terminal using curl
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
sudo install minikube-darwin-amd64 /usr/local/bin/minikube
Install on Windows using chocolatey
choco install minikube
choco install git
Once Minikube is installed, run the following command to start up a local cluster
minikube start --cni calico --kubernetes-version=v1.23.16
You can check that the cluster was successfully created and is running using kubectl get pods --all-namespaces
to see
if default pods were created. For more information, check out the official minikube docs.
To install, first edit the following files to match the details of your Kubernetes cluster. If running a local Minikube cluster, the default values should suffice
File path: group_vars/all.yml
cat host_vars/minikube.yml
---
kube_context: minikube
k8s_cluster_name: minikube
cat inventories/dev.yml
all:
vars:
kube_context: minikube
hosts:
localhost
Once the details for your cluster have been filled in, just run the following command to set up everything
ansible-playbook deploy.yml -i inventories/dev.yml
When running against a local minikube cluster, some steps (m9sweeper, metrics-server, and nginx) may fail on a first time installation. This is expected, and they should run without issue after rerunning the playbook
Many times upgrades will require updating the CRD's first. In the future it we plan to break CRD's into their own helm chart to alleviate this issue, but for now you will typically have to run commands such as these below (with the updated version number)
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.61.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
The initial project was created by team members at Intelletive Consulting, but we hope others will contribute as well. Thanks goes to these wonderful people (emoji key):
Jacob Beasley 💻 📖 🔬 📆 🚇 |
jasonWoodman 💻 📖 🔬 📆 🚇 |
charisprose 💻 |
Grant Keiner 💻 |
Sahil Narang 💻 🚇 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Distributed under the Apache License v2. See LICENSE.txt for more information.
Project Link: https://github.com/m9sweeper/kube-splat