infrapuzzle/k8s/README.md

2.4 KiB

k8s

This folder holds all the services required for my private infrastructure. Following contraints apply:

  • Order of implementation is top down.
  • Every namespace has a subfolder within this subdirectory.
  • helm3

namespaces

k create ns flux
k create ns cert-manager
k create ns nginx-ingress
k create ns infrapuzzle
k create ns kuard
k create ns auth
k create nextcloud

helm-operator

As I use helm extensively, using the helm-operator was a logical step. See documentation for installation.

$ helm repo add fluxcd https://charts.fluxcd.io
$ helm repo update
$ kubectl apply -f https://raw.githubusercontent.com/fluxcd/helm-operator/master/deploy/crds.yaml
$ helm upgrade -i helm-operator fluxcd/helm-operator \
    --namespace flux \
    --set helm.versions=v3

ingress-controller

Apply with helm-operator:

$ kubectl apply -f nginx-ingress/ingress.yaml

cert-manager

Apply with helm-operator:

$ kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/master/deploy/manifests/00-crds.yaml
$ kubectl apply -f cert-manager/cert-manager.yaml
$ kubectl apply -f cert-manager/staging-issuer.yaml
$ kubectl apply -f cert-manager/production-issuer.yaml

To test all this you may use the kuaard demo project:

$ kubectl apply -f kuard
# checkout: https://kuard.haumdaucher.de
$ kubectl delete -f kuard

auth

Including:

  • openLDAP
  • phpldapadmin
  • ldap self service
  • dex

nextcloud

Install with helm


Migate

Backup

Add private docker registry

Current state: Registry of hub.moritzgraf.de:5000 is used.

Create credentials secret according to docu:

namespaces="datalab"
for i in $namespaces ; do
  kubectl create secret docker-registry regcred \
    --docker-server=hub.moritzgraf.de:5000 \
    --docker-username=moritz \
    --docker-password='xxx' \
    --docker-email=moritz@moritzgraf.de \
    --dry-run -o yaml > ./${i}/docker-pull.yaml.secret
done