From d3ba367df61141a2716da226178415f84ed4de2f Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Sat, 19 Oct 2019 21:05:09 +0200 Subject: [PATCH 1/3] Add LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6c15032 --- /dev/null +++ b/LICENSE @@ -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. From f5c4dfb7457f53f047c551120c9e1cd46bbb0380 Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Sun, 20 Oct 2019 21:15:18 +0200 Subject: [PATCH 2/3] Improve README --- README.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2b32256..967368d 100644 --- a/README.md +++ b/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 From 39934c75dfd8c8703e9ac7de4e7a6f500c6f2f69 Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Sun, 20 Oct 2019 21:17:26 +0200 Subject: [PATCH 3/3] Add TODO --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 967368d..cc4953c 100644 --- a/README.md +++ b/README.md @@ -48,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