diff --git a/argocd/apps/homepage.yaml b/argocd/apps/homepage.yaml index 4521eaf..1748990 100644 --- a/argocd/apps/homepage.yaml +++ b/argocd/apps/homepage.yaml @@ -12,6 +12,7 @@ metadata: spec: project: default sources: + # Helm chart - repoURL: https://jameswynn.github.io/helm-charts chart: homepage targetRevision: 2.1.0 @@ -19,9 +20,16 @@ spec: releaseName: homepage valueFiles: - $values/argocd/manifests/homepage/values.yaml + # Values file reference - repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git targetRevision: main ref: values + # Extra manifests (ExternalSecrets, etc) + - repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git + targetRevision: main + path: argocd/manifests/homepage + directory: + exclude: "values.yaml" destination: server: https://kubernetes.default.svc namespace: homepage diff --git a/argocd/manifests/argocd/service-tailscale.yaml b/argocd/manifests/argocd/service-tailscale.yaml index d75b326..23ff8f1 100644 --- a/argocd/manifests/argocd/service-tailscale.yaml +++ b/argocd/manifests/argocd/service-tailscale.yaml @@ -14,7 +14,7 @@ metadata: gethomepage.dev/enabled: "true" gethomepage.dev/name: "ArgoCD" gethomepage.dev/group: "Infrastructure" - gethomepage.dev/icon: "argocd.png" + gethomepage.dev/icon: "argo-cd.png" gethomepage.dev/description: "GitOps CD" gethomepage.dev/href: "https://argocd.ops.eblu.me" gethomepage.dev/pod-selector: "app.kubernetes.io/name=argocd-server" diff --git a/argocd/manifests/grafana/values.yaml b/argocd/manifests/grafana/values.yaml index 402439c..f38cd03 100644 --- a/argocd/manifests/grafana/values.yaml +++ b/argocd/manifests/grafana/values.yaml @@ -25,6 +25,9 @@ persistence: grafana.ini: server: root_url: https://grafana.tail8d86e.ts.net + security: + # Embedding disabled - iframe approach didn't work well for Homepage + allow_embedding: false analytics: check_for_updates: false reporting_enabled: false diff --git a/argocd/manifests/homepage/external-secret-openweathermap.yaml b/argocd/manifests/homepage/external-secret-openweathermap.yaml new file mode 100644 index 0000000..d65c9a1 --- /dev/null +++ b/argocd/manifests/homepage/external-secret-openweathermap.yaml @@ -0,0 +1,20 @@ +# ExternalSecret for OpenWeatherMap API key +# Used by Homepage weather widget +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: homepage-openweathermap + namespace: homepage +spec: + refreshInterval: 1h + secretStoreRef: + kind: ClusterSecretStore + name: onepassword-blumeops + target: + name: homepage-openweathermap + creationPolicy: Owner + data: + - secretKey: apikey + remoteRef: + key: OpenWeatherMap + property: credential diff --git a/argocd/manifests/homepage/values.yaml b/argocd/manifests/homepage/values.yaml index 4c07899..9cd0336 100644 --- a/argocd/manifests/homepage/values.yaml +++ b/argocd/manifests/homepage/values.yaml @@ -27,6 +27,11 @@ ingress: env: - name: HOMEPAGE_ALLOWED_HOSTS value: "go.tail8d86e.ts.net,go.ops.eblu.me" + - name: HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY + valueFrom: + secretKeyRef: + name: homepage-openweathermap + key: apikey config: # Host services (non-k8s, on indri or LAN) @@ -44,6 +49,34 @@ config: href: https://nas.ops.eblu.me icon: synology description: NAS dashboard + widget: + type: prometheusmetric + url: https://prometheus.ops.eblu.me + metrics: + - label: Used + query: node_filesystem_size_bytes{mountpoint="/Volumes/backups"} - node_filesystem_avail_bytes{mountpoint="/Volumes/backups"} + format: + type: bytes + - label: Total + query: node_filesystem_size_bytes{mountpoint="/Volumes/backups"} + format: + type: bytes + - Borgmatic: + href: https://grafana.ops.eblu.me/d/borgmatic + icon: borgmatic + description: Backup system + widget: + type: prometheusmetric + url: https://prometheus.ops.eblu.me + metrics: + - label: Last backup + query: time() - borgmatic_last_archive_timestamp + format: + type: duration + - label: Archive size + query: borgmatic_repo_deduplicated_size_bytes + format: + type: bytes # External bookmarks bookmarks: @@ -61,6 +94,13 @@ config: # Widgets on the page # Note: Kubernetes widget disabled - requires metrics-server widgets: + - openweathermap: + label: Camano + latitude: 48.18235 + longitude: -122.52590 + units: imperial + apiKey: "{{HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY}}" + cache: 15 - search: provider: custom url: https://kagi.com/search?q=