From d671700466e23a5868c801e42a068ac0ecf7fc91 Mon Sep 17 00:00:00 2001 From: Ryan Blundon Date: Tue, 19 May 2026 22:00:34 -0500 Subject: [PATCH] deploy headlamp --- .../applications/headlamp/application.yaml | 37 ++++++++++++++++ cluster/applications/headlamp/httproute.yaml | 44 +++++++++++++++++++ cluster/applications/headlamp/values.yaml | 33 ++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 cluster/applications/headlamp/application.yaml create mode 100644 cluster/applications/headlamp/httproute.yaml create mode 100644 cluster/applications/headlamp/values.yaml diff --git a/cluster/applications/headlamp/application.yaml b/cluster/applications/headlamp/application.yaml new file mode 100644 index 0000000..2ff5f77 --- /dev/null +++ b/cluster/applications/headlamp/application.yaml @@ -0,0 +1,37 @@ +# ------------------------------------------------------------------------------ +# Application: skyway +# Wave 11 — after monitoring +# Kubernetes web UI — token auth now, OIDC via Authentik deferred (parking lot) +# ------------------------------------------------------------------------------ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: skyway + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "11" +spec: + project: default + sources: + - repoURL: https://kubernetes-sigs.github.io/headlamp/ + chart: headlamp + targetRevision: 0.42.0 + helm: + valueFiles: + - $values/cluster/applications/skyway/values.yaml + - repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git + targetRevision: main + path: cluster/applications/skyway + ref: values + directory: + exclude: "application.yaml" + destination: + server: https://kubernetes.default.svc + namespace: skyway + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/cluster/applications/headlamp/httproute.yaml b/cluster/applications/headlamp/httproute.yaml new file mode 100644 index 0000000..1915521 --- /dev/null +++ b/cluster/applications/headlamp/httproute.yaml @@ -0,0 +1,44 @@ +# ------------------------------------------------------------------------------ +# HTTPRoute — Skyway via Cilium Gateway +# ------------------------------------------------------------------------------ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: skyway-tls + namespace: skyway +spec: + secretName: skyway-tls + issuerRef: + name: letsencrypt-prod + kind: ClusterIssuer + dnsNames: + - skyway.local.mk-labs.cloud +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: skyway + namespace: skyway + annotations: + external-dns.alpha.kubernetes.io/hostname: skyway.local.mk-labs.cloud + external-dns.alpha.kubernetes.io/target: "10.1.71.90" +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: fastpass-gateway + namespace: gateway + sectionName: https + hostnames: + - skyway.local.mk-labs.cloud + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: "" + kind: Service + name: headlamp + port: 80 + weight: 1 diff --git a/cluster/applications/headlamp/values.yaml b/cluster/applications/headlamp/values.yaml new file mode 100644 index 0000000..7ce2f14 --- /dev/null +++ b/cluster/applications/headlamp/values.yaml @@ -0,0 +1,33 @@ +# ------------------------------------------------------------------------------ +# Skyway — Helm Values +# Chart: https://kubernetes-sigs.github.io/headlamp/ +# Version: 0.42.0 +# +# Auth: Token-based (service account) for now. +# TODO: Wire OIDC to guest-relations (Authentik) — requires Talos API server +# patch to add oidc-issuer-url. See parking lot. +# ------------------------------------------------------------------------------ + +config: + inCluster: true + +# -- ClusterRoleBinding to cluster-admin for full visibility +clusterRoleBinding: + create: true + clusterRoleName: cluster-admin + +serviceAccount: + create: true + name: headlamp + +resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 500m + memory: 256Mi + +# Ingress handled via HTTPRoute (Cilium Gateway) — disable built-in ingress +ingress: + enabled: false