#+TITLE: Helm Charts #+DATE: 2023-10-18 * Kubernetes applications packaged into helm charts Started on the repo of [ananace](https://gitlab.com/ananace/charts) and extended with various other charts I needed to adapt for my cluster. Charts are minimal and are stripped to only accept Secrets. *** [[charts/element-web][Element Web]] *** [[charts/matrix-media-repo][Matrix Media Repo]] *** [[charts/matrix-synapse][Matrix Synapse]] *** [[charts/synatainer][Synatainer]] *** [[charts/sliding-sync-proxy][Matrix Sliding Sync / Sync v3 proxy]] ** Usage #+BEGIN_SRC $ helm repo add tommy-skaug-charts ghcr.io/tommy-skaug/charts #+END_SRC *** Ingress The charts maintains the internal networking and you wire the connection to the outside world. I use two ingress classes: Tailscale and nginx, and you can wire a service by adding to kustomization and [[https://fluxcd.io/][flux]] e.g. like the following. To expose publicly via nginx: #+BEGIN_SRC yaml --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: matrix-synapse-ingress namespace: messaging annotations: external-dns.alpha.kubernetes.io/target: ingress.${PUBLIC_DOMAIN} spec: ingressClassName: nginx rules: - http: paths: - path: / pathType: Prefix backend: service: name: matrix-synapse port: number: 8008 tls: - hosts: - matrix #+END_SRC To use the [[https://tailscale.com/kb/1236/kubernetes-operator/][Tailscale operator]]: #+BEGIN_SRC yaml --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hajimari-ingress namespace: home spec: ingressClassName: tailscale rules: - http: paths: - path: / pathType: Prefix backend: service: name: hajimari port: number: 3000 tls: - hosts: - apps #+END_SRC ** License The general license of this repo is DWTFYWTPB, but it is Apache v2 in some of the repos which were built on other's work. See the individual chart for details.