From f6647056be49f7f0b896067c5fd58a8766e9bd88 Mon Sep 17 00:00:00 2001 From: Nikholas Pcenicni <82239765+nikpcenicni@users.noreply.github.com> Date: Sat, 28 Mar 2026 17:07:06 -0400 Subject: [PATCH] Add homepage entry to noble_landing_urls and update kustomization.yaml to include homepage resource --- .../noble_landing_urls/defaults/main.yml | 5 ++ clusters/noble/apps/homepage/application.yaml | 32 ++++++++++ clusters/noble/apps/homepage/values.yaml | 64 +++++++++++++++++++ clusters/noble/apps/kustomization.yaml | 3 +- 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 clusters/noble/apps/homepage/application.yaml create mode 100644 clusters/noble/apps/homepage/values.yaml diff --git a/ansible/roles/noble_landing_urls/defaults/main.yml b/ansible/roles/noble_landing_urls/defaults/main.yml index 9123f73..76c49a9 100644 --- a/ansible/roles/noble_landing_urls/defaults/main.yml +++ b/ansible/roles/noble_landing_urls/defaults/main.yml @@ -44,3 +44,8 @@ noble_lab_ui_entries: namespace: vault service: vault url: https://vault.apps.noble.lab.pcenicni.dev + - name: Homepage + description: App dashboard (links to lab UIs) + namespace: homepage + service: homepage + url: https://homepage.apps.noble.lab.pcenicni.dev diff --git a/clusters/noble/apps/homepage/application.yaml b/clusters/noble/apps/homepage/application.yaml new file mode 100644 index 0000000..55d45e2 --- /dev/null +++ b/clusters/noble/apps/homepage/application.yaml @@ -0,0 +1,32 @@ +# Argo CD — optional [Homepage](https://gethomepage.dev/) dashboard (Helm from [jameswynn.github.io/helm-charts](https://jameswynn.github.io/helm-charts/)). +# Values: **`./values.yaml`** (multi-source **`$values`** ref). +# +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: homepage + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io/background +spec: + project: default + sources: + - repoURL: https://jameswynn.github.io/helm-charts + chart: homepage + targetRevision: 2.1.0 + helm: + releaseName: homepage + valueFiles: + - $values/clusters/noble/apps/homepage/values.yaml + - repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: homepage + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/clusters/noble/apps/homepage/values.yaml b/clusters/noble/apps/homepage/values.yaml new file mode 100644 index 0000000..0d7db30 --- /dev/null +++ b/clusters/noble/apps/homepage/values.yaml @@ -0,0 +1,64 @@ +# Homepage — [gethomepage/homepage](https://github.com/gethomepage/homepage) via [jameswynn/homepage](https://github.com/jameswynn/helm-charts) Helm chart. +# Ingress: Traefik + cert-manager (same pattern as `clusters/noble/bootstrap/headlamp/values.yaml`). +# Service links match **`ansible/roles/noble_landing_urls/defaults/main.yml`** (`noble_lab_ui_entries`). +# +image: + repository: ghcr.io/gethomepage/homepage + tag: v1.2.0 + +ingress: + main: + enabled: true + ingressClassName: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: homepage.apps.noble.lab.pcenicni.dev + paths: + - path: / + pathType: Prefix + tls: + - hosts: + - homepage.apps.noble.lab.pcenicni.dev + secretName: homepage-apps-noble-tls + +env: + - name: HOMEPAGE_ALLOWED_HOSTS + value: homepage.apps.noble.lab.pcenicni.dev + +config: + bookmarks: [] + services: + - Noble Lab: + - Argo CD: + href: https://argo.apps.noble.lab.pcenicni.dev + description: GitOps UI (sync, apps, repos) + - Grafana: + href: https://grafana.apps.noble.lab.pcenicni.dev + description: Dashboards, Loki explore (logs) + - Prometheus: + href: https://prometheus.apps.noble.lab.pcenicni.dev + description: Prometheus UI (queries, targets) — lab; protect in production + - Alertmanager: + href: https://alertmanager.apps.noble.lab.pcenicni.dev + description: Alertmanager UI (silences, status) + - Headlamp: + href: https://headlamp.apps.noble.lab.pcenicni.dev + description: Kubernetes UI (cluster resources) + - Longhorn: + href: https://longhorn.apps.noble.lab.pcenicni.dev + description: Storage volumes, nodes, backups + - Vault: + href: https://vault.apps.noble.lab.pcenicni.dev + description: Secrets engine UI (after init/unseal) + widgets: + - search: + provider: duckduckgo + target: _blank + kubernetes: + mode: disable + settingsString: | + title: Noble Lab + headerStyle: boxed + layout: + Noble Lab: diff --git a/clusters/noble/apps/kustomization.yaml b/clusters/noble/apps/kustomization.yaml index 8b13fe6..d0d72de 100644 --- a/clusters/noble/apps/kustomization.yaml +++ b/clusters/noble/apps/kustomization.yaml @@ -3,4 +3,5 @@ # Helm value files for those apps can live in subdirectories here (for example **./homepage/values.yaml**). apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -resources: [] +resources: + - homepage/application.yaml