#!/bin/sh

# # # helm repo add cilium https://helm.cilium.io/
# # # helm repo add rook-release https://charts.rook.io/release

# helm repo add bitnami https://charts.bitnami.com/bitnami

# helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
# helm repo add jetstack https://charts.jetstack.io
# helm repo add longhorn https://charts.longhorn.io
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm repo add mojo2600 https://mojo2600.github.io/pihole-kubernetes/
# # helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics
# # helm repo add grafana https://grafana.github.io/helm-charts
# helm repo update

# ssh -t pcloud@192.168.0.111 "k3s-agent-uninstall.sh"
# ssh -t pcloud@192.168.0.112 "k3s-agent-uninstall.sh"
# ssh -t pcloud@192.168.0.113 "k3s-uninstall.sh"
# ssh -t pcloud@192.168.0.111 "sudo shutdown -r"
# ssh -t pcloud@192.168.0.112 "sudo shutdown -r"
# ssh -t pcloud@192.168.0.113 "sudo shutdown -r"
# ping 192.168.0.113

# k3sup install \
#       --k3s-channel stable \
#       --cluster \
#       --user pcloud \
#       --ip 192.168.0.111 \
#       --k3s-extra-args "--node-taint pcloud=role:NoSchedule --disable traefik --disable local-storage --disable servicelb --kube-proxy-arg proxy-mode=ipvs --kube-proxy-arg ipvs-strict-arp --flannel-backend host-gw"
# #       --k3s-extra-args "--disable-kube-proxy --disable traefik --disable local-storage --disable servicelb --flannel-backend=none"

# k3sup join \
#       --k3s-channel stable \
#       --ip 192.168.0.112 \
#       --user pcloud \
#       --server-user pcloud \
#       --server-ip 192.168.0.111

# k3sup join \
#       --k3s-channel stable \
#       --ip 192.168.0.113 \
#       --user pcloud \
#       --server-user pcloud \
#       --server-ip 192.168.0.111

#source installer/metallb.sh
#source installer/ingress-nginx.sh
#source installer/cert-manager.sh
#source installer/longhorn.sh
#source installer/pihole.sh
#source installer/matrix.sh
source installer/kratos.sh

# kubectl apply -f ../../apps/rpuppy/install.yaml

# kubectl apply -f ~/dev/src/socialme-go/install.yaml

# # # TODO retention days
# # helm install --create-namespace \
# #      --namespace prometheus \
# #      prometheys prometheus-community/prometheus \  # TODO prometheys
# #      --set alertmanager.ingress.enabled=true \
# #      --set alertmanager.ingress.ingressClassName=nginx \
# #      --set alertmanager.ingress.hosts={alertmanager.prometheus.pcloud} \
# #      --set alertmanager.ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
# #      --set server.ingress.enabled=true \
# #      --set server.ingress.ingressClassName=nginx \
# #      --set server.ingress.hosts={prometheus.pcloud} \
# #      --set server.ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
# #      --set server.persistentVolume.size=100Gi \
# #      --set pushgateway.ingress.enabled=true \
# #      --set pushgateway.ingress.ingressClassName=nginx \
# #      --set pushgateway.ingress.hosts={pushgateway.prometheus.pcloud} \
# #      --set pushgateway.ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
# #      --set pushgateway.persistentVolume.enabled=true

# # helm install --create-namespace \
# #      --namespace grafana \
# #      --set ingress.enabled=true \
# #       --set ingress.ingressClassName=nginx \
# #       --set ingress.hosts={grafana.pcloud} \
# #       --set ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
# #       --set persistence.enabled=true \
# #       --set persistence.size=50Gi

# helm install --create-namespace \
#      --namespace prometheus-system \
#      prometheus prometheus-community/kube-prometheus-stack \
#      --set alertmanager.ingress.enabled=true \
#      --set alertmanager.ingress.ingressClassName=nginx \
#      --set alertmanager.ingress.hosts={alertmanager.prometheus.pcloud} \
#      --set alertmanager.ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
#      --set alertmanager.ingress.pathType=Prefix \
#      --set grafana.ingress.enabled=true \
#      --set grafana.ingress.ingressClassName=nginx \
#      --set grafana.ingress.hosts={grafana.prometheus.pcloud} \
#      --set grafana.ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
#      --set grafana.ingress.pathType=Prefix \
#      --set prometheus.ingress.enabled=true \
#      --set prometheus.ingress.ingressClassName=nginx \
#      --set prometheus.ingress.hosts={prometheus.pcloud} \
#      --set prometheus.ingress.annotations."nginx\.ingress\.kubernetes\.io/ssl-redirect"="\"false\"" \
#      --set prometheus.ingress.pathType=Prefix

# kubectl apply -f ../../apps/maddy/install.yaml
# kubectl apply -f maddy-config.yaml
## maddyctl -config /etc/maddy/config/maddy.conf creds create *****@lekva.me
## maddyctl -config /etc/maddy/config/maddy.conf imap-acct create *****@lekva.me


## kubectl -n ingress-nginx get secret cert-wildcard.lekva.me -o yaml > cert-wildcard.lekva.me.yaml
## kubectl apply -f cert-wildcard.lekva.me.yaml -n app-matrix
