docs: Homarr deployment next steps (remaining wiring needed)

This commit is contained in:
Story Crater Bot
2026-07-22 09:00:21 -07:00
parent 9836d20b06
commit 4faf8115c3
+137
View File
@@ -0,0 +1,137 @@
# Homarr Deployment - Next Steps
## Completed
✅ MinIO OIDC fully wired (k8s/infrastructure/minio/minio-tenant.yaml)
✅ Homarr base config created:
- homarr-values.yaml (SSO env vars)
- homarr-secrets.enc.yaml (SECRET_ENCRYPTION_KEY)
- kustomization.yaml (namespace: dashboard)
## TODO to Complete Homarr Deployment
### 1. Add Homarr to Authentik Provision Script
**File:** `k8s/security/iam/scripts/authentik-provision.py`
**Location:** In the `SERVICES` dict (around line 205), add:
```python
"homarr": {
"client_secret_source": ("dashboard", "homarr-oidc", "client-secret"),
"generate_if_missing": True,
"extra_secret_literals": {"client-id": "homarr"},
"redirect_uris": [
"https://homarr.riotpiao.com/api/auth/callback/oidc",
],
"launch_url": "https://homarr.riotpiao.com",
"display_name": "Homarr",
},
```
### 2. Add Dashboard RoleBinding for Authentik Provisioner
**File:** `k8s/security/iam/kustomization.yaml`
**Location:** In the `resources:` list, add:
```yaml
- rbac-dashboard-rolebinding.yaml
```
**New file:** `k8s/security/iam/rbac-dashboard-rolebinding.yaml`:
```yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: authentik-provisioner
namespace: dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: authentik-provisioner
subjects:
- kind: ServiceAccount
name: authentik-provisioner
namespace: iam
```
### 3. Add Homarr Application to ArgoCD
**File:** `k8s/argocd/apps/60-applications.yaml`
**Location:** Add at the end (before the final `---`):
```yaml
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: homarr
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "8"
spec:
project: homelab
sources:
- repoURL: https://homarr-labs.github.io/charts
chart: homarr
targetRevision: "*"
helm:
valueFiles:
- $values/k8s/applications/homarr/homarr-values.yaml
- repoURL: https://forgejo.riotpiao.com/riotpiao.com/homelab.git
targetRevision: main
ref: values
destination:
server: https://kubernetes.default.svc
namespace: dashboard
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
```
### 4. Add Ingress Rule
**File:** `k8s/bootstrap/ingress/ingress.yaml`
**Location:** In the `rules:` list, add:
```yaml
- host: homarr.riotpiao.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: homarr
port:
number: 3000
```
### 5. Add CoreDNS Rewrite
**File:** `k8s/bootstrap/coredns/coredns-configmap.yaml`
**Location:** In the `rewrite name` section, add:
```
rewrite name homarr.riotpiao.com ingress-nginx-controller.ingress-nginx.svc.cluster.local
```
## Verification Steps
After committing and pushing all changes:
1. Wait for ArgoCD to sync iam-jobs (authentik-provision runs)
2. Check Authentik: `kubectl -n iam port-forward svc/authentik-server 9000:9000`
- Visit http://localhost:9000, login as rock
- Should see "Homarr" tile in application launcher
3. Wait for homarr Application to sync
4. Check pod: `kubectl -n dashboard get pods`
5. Test SSO: https://homarr.riotpiao.com
- Should redirect to Authentik login
- Login as rock → should land logged-in to Homarr dashboard
## Chart Info
Homarr uses the official chart from https://homarr-labs.github.io/charts
- Chart name: `homarr`
- Pinned image: `ghcr.io/homarr-labs/homarr:1.0.0`
- Persistence: 5Gi RWO on longhorn-wffc (3-replica HA)
- Tile content is UI-managed (saved to PVC, not git)