Merge branch 'master' of git.itpartner.no:k8s/k8s-cluster
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Jonas Juselius, Serit IT Partner Tromsø
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
29
README.md
29
README.md
@@ -1,5 +1,28 @@
|
||||
# Kubernetes NixOps cluster setup
|
||||
# NixOps Kubernetes clusters
|
||||
|
||||
This repository contains a batteries included, production ready, opinionated
|
||||
Kubernetes cluster setup. It only requires editing two simple configuration
|
||||
files to deploy a fully functional cluster using NixOps.
|
||||
|
||||
Together, NixOS and Kubernetes is a powerful combination. NixOS enables
|
||||
programmatic configuration of the base Kubernetes system services at the OS
|
||||
level. Just enabling the basic service is still a long way from having a
|
||||
production ready, multi node Kubernetes cluster up and running. Setting up a
|
||||
cluster at the OS level gives you a functional system shell, lacking most of the
|
||||
services needed for actually deploying, accessing and monitoring services.
|
||||
|
||||
This project will do to things: It will configure the cluster at the OS level,
|
||||
setting up services, networking, certificates, access tokens etc. It will then
|
||||
bootstrap the running Kubernetes instance, fixing permissions and configuring
|
||||
the following services:
|
||||
|
||||
* Helm for deploying services
|
||||
* Nginx-ingress for external access
|
||||
* cert-manager with issuers (Let's encrypt, cluster-ca and self-sign)
|
||||
* nfs-client-provisioner for automatic volume management
|
||||
* kubernetes-dashboard for managing the cluster and services
|
||||
* metrics-server for monitoring
|
||||
* Prometheus, node exporters and grafana for monitoring
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -25,3 +48,7 @@ vi default.nix # add nodes and ip:s, etc.
|
||||
../../bin/deploy.sh cluster-1
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
* Self-provisioning NixOs iso image
|
||||
* Terraform setup for provisioning a cluster
|
||||
|
||||
Reference in New Issue
Block a user