diff --git a/README.md b/README.md
index 5ff3870..7309eb5 100644
--- a/README.md
+++ b/README.md
@@ -1,27 +1,30 @@
# K3s cluster
-| Name | Usage | Accessibility | Host | DB type | Additional data | Backup configuration | Log management | Status |
-|-------------------------|--------------------------------------|---------------|--------------|------------|----------------------|----------------------|----------------|--------------------------------|
-| therbron.com | Personal website | Public | Socrates | - | - | - | Not configured | Awaiting configuration |
-| Traefik | Reverse proxy and load balancer | Public* | Socrates | - | - | - | Not configured | Yes |
-| Adguard | DNS ad blocker and custom DNS server | Private | Socrates | - | - | - | Not configured | Yes |
-| Owncloud Infinity Scale | File hosting webUI | Public | Plato | PostgreSQL | Drive files | None | Not configured | Awaiting configuration |
-| Home assistant | Home automation and monitoring | Private | Pythagoras-a | PostgreSQL | - | None | Not configured | Awaiting configuration |
-| Vikunja | To-do and Kanban boards | Public | Pythagoras-b | - | - | - | Not configured | Migrate to Gitlab |
-| Gitlab | Version control system | Public | Pythagoras-b | PostgreSQL | User created content | None | Not configured | Awaiting configuration |
-| Wiki | Documentation manager | Public | Pythagoras-b | - | - | - | Not configured | Migrate to VuePress and Gitlab |
-| Vaultwarden | Password manager | Public | Pythagoras-b | PostgreSQL | - | 4AM K8s CronJob | Not configured | Awaiting configuration |
-| Synapse | Matrix server - Message centralizer | Public | Pythagoras-b | PostgreSQL | User medias | None | Not configured | Awaiting configuration |
-| PaperlessNG | PDF viewer and organiser | Public | Pythagoras-b | PostgreSQL | - | - | Not configured | Research migration into OCIS |
-| Raspsnir | Bachelor memorial website | Public | Pythagoras-b | PostgreSQL | - | None | Not configured | Awaiting configuration |
-| Jellyfin | Media streaming | Public | Archimedes | - | - | - | Not configured | Awaiting configuration |
-| Sonarr | TV shows collection manager | Private | Plato | SQLite** | Internal backups | None | Not configured | Awaiting configuration |
-| Radarr | Movie collection manager | Private | Plato | SQLite** | Internal backups | None | Not configured | Awaiting configuration |
-| Jackett | Torrent indexer | Private | Plato | - |
? | None | Not configured | Awaiting configuration |
-| Deluge | Torrent client | Private | Plato | - | ? | - | Not configured | Awaiting configuration |
-| Minecraft | Vanilla minecraft server for friends | Public | Archimedes | - | Game map | None | Not configured | Yes |
-| Satisfactory | Satisfactory server for friends | Public | Archimedes | - | Game map | None | Not configured | Awaiting configuration |
-| Space engineers | Space engineers server for friends | Public | Archimedes | - | Game map | None | Not configured | Awaiting configuration |
+| Name | Usage | Accessibility | Host | DB type | Additional data | Backup configuration | Loki integration | Prometheus integration | Status |
+|-------------------------|--------------------------------------|---------------|--------------|------------|----------------------|----------------------|------------------|------------------------|--------------------------------|
+| therbron.com | Personal website | Public | Socrates | - | - | - | Not configured | Not configured | Awaiting configuration |
+| Traefik | Reverse proxy and load balancer | Public* | Socrates | - | - | - | Configured | Configured | Completed |
+| Adguard | DNS ad blocker and custom DNS server | Private | Socrates | - | - | - | Not configured | Not configured | Completed |
+| Owncloud Infinity Scale | File hosting webUI | Public | Plato | PostgreSQL | Drive files | Not configured | Not configured | Not configured | Awaiting configuration |
+| Home assistant | Home automation and monitoring | Private | Pythagoras-a | PostgreSQL | - | Not configured | Not configured | Not configured | Awaiting configuration |
+| Vikunja | To-do and Kanban boards | Public | Pythagoras-b | - | - | - | Not configured | Not configured | Migrate to Gitlab |
+| Gitlab | Version control system | Public | Pythagoras-b | PostgreSQL | User created content | Not configured | Not configured | Not configured | Awaiting configuration |
+| Wiki | Documentation manager | Public | Pythagoras-b | - | - | - | Not configured | Not configured | Migrate to VuePress and Gitlab |
+| Vaultwarden | Password manager | Public | Pythagoras-b | PostgreSQL | - | 4AM K8s CronJob | Configured | Not available | Completed |
+| Synapse | Matrix server - Message centralizer | Public | Pythagoras-b | PostgreSQL | User medias | Not configured | Not configured | Not configured | Awaiting configuration |
+| PaperlessNG | PDF viewer and organiser | Public | Pythagoras-b | PostgreSQL | - | - | Not configured | Not configured | Research migration into OCIS |
+| Raspsnir | Bachelor memorial website | Public | Pythagoras-b | PostgreSQL | - | Not configured | Not configured | Not configured | Awaiting configuration |
+| Jellyfin | Media streaming | Public | Archimedes | - | - | - | Not configured | Not configured | Awaiting configuration |
+| Sonarr | TV shows collection manager | Private | Plato | SQLite** | Internal backups | Not configured | Not configured | Not configured | Awaiting configuration |
+| Radarr | Movie collection manager | Private | Plato | SQLite** | Internal backups | Not configured | Not configured | Not configured | Awaiting configuration |
+| Jackett | Torrent indexer | Private | Plato | - | ? | Not configured | Not configured | Not configured | Awaiting configuration |
+| Deluge | Torrent client | Private | Plato | - | ? | - | Not configured | Not configured | Awaiting configuration |
+| Minecraft | Vanilla minecraft server for friends | Public | Archimedes | - | Game map | Not configured | Not configured | Not configured | Awaiting configuration |
+| Satisfactory | Satisfactory server for friends | Public | Archimedes | - | Game map | Not configured | Not configured | Not configured | Awaiting configuration |
+| Space engineers | Space engineers server for friends | Public | Archimedes | - | Game map | Not configured | Not configured | Not configured | Awaiting configuration |
+| Prometheus | Metrics aggregator | Private | Pythagoras-b | TBD | - | Not configured | Configured | Configured | Partial |
+| Loki | Log aggregator | Private | Pythagoras-b | TBD | - | Not configured | Configured | Configured | Partial |
+| Grafana | Graph visualizer | Public | Pythagoras-b | - | - | Not configured | Configured | Configured | Partial |
\* Configuration panel only available internally
** Current implementation only support SQLite, making manual backups a necessity
@@ -54,39 +57,36 @@ longhorn
- Write CI/CD pipeline to create environment loaded files
- Write CI/CD pipeline to deploy cluster
- Setup internal traefik with nodeport as reverse proxy for internal only services
-- Setup DB container sidecars for automated backups to Longhorn volume
+- ~~Setup DB container sidecars for automated backups to Longhorn volume~~
- Setup secrets configuration through CI/CD variable injection
+- Explore permission issues when issuing OVH API keys (not working for wildcard and `beta.halia.dev` subdomain)
+- ~~Setup log and metric monitoring~~
+- ~~Define namespaces through yaml files~~
- ~~Look into CockroachDB for redundant database~~ Judged too complicated, moving to a 1 to 1 relationship between services and databases
- ~~Configure IP range accessibility through Traefik (Internal vs external services)~~ Impossible because of flannel ip-masq
## Notes
-# Cluster base setup
+### Cluster base setup
Add node to the list of available load balancer
`kubectl label node svccontroller.k3s.cattle.io/enablelb=true`
+NOTE: For development, don't forget to also add the `cp` to the LB list, in order to access local only services
Setup OVH configuration
`kubectl apply -f ovh-config.yaml`
-
-Install traefik through helm
-```
-helm repo add traefik https://helm.traefik.io/traefik
-helm repo update
-helm install -f helm/traefik/values.yaml traefik traefik/traefik
-```
-
-Setup SSL certificates
-```
-kubectl apply -f ovh-config.yaml
-```
+Install traefik
+`kubectl apply -f traefik`
Install longhorn
```
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml
```
-
+Remove `local-path` from default StorageClass
+`kubectl patch storageclass standard -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'`
Add longhorn storage classes
`kubectl apply -f res`
+### Convert helm chart to k3s manifest
+`helm template chart stable/chart --output-dir ./chart`