How to use domain / ssl with SHKeeper?
This guide assumes you are running k3s with Traefik Ingress controler (which is default for k3s).
1) Install cert-manager:
helm repo add jetstack https://charts.jetstack.io
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.9.1 \
--set installCRDs=true
2) Create file k3s_cert.yaml with following content (replace "demo.shkeeper.io" and "support@v-sys.org" with your own domain and email address):
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: shkeeper-cert
namespace: shkeeper
spec:
commonName: demo.shkeeper.io
secretName: shkeeper-cert
dnsNames:
- demo.shkeeper.io
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-production
spec:
acme:
email: support@v-sys.org
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: your-own-very-secretive-key
solvers:
- http01:
ingress:
class: traefik
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: shkeeper
namespace: shkeeper
spec:
entryPoints:
- web
- websecure
routes:
- match: Host(`demo.shkeeper.io`)
kind: Rule
services:
- name: shkeeper
port: 5000
namespace: shkeeper
tls:
secretName: shkeeper-cert
3) Aplly this file:
kubectl apply -f k3s_cert.yaml
4) Now your shkeeper should be reachable on https://