From f5f96fcb2945b073e59e4904eea4cc0ae2273af3 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 16 Mar 2026 17:41:09 +0100 Subject: [PATCH] feat: add homepage --- clusters/homelab/homepage.yaml | 12 +++++++ clusters/homelab/homepage/configmap.yaml | 25 ++++++++++++++ clusters/homelab/homepage/deployment.yaml | 35 ++++++++++++++++++++ clusters/homelab/homepage/kustomization.yaml | 8 +++++ clusters/homelab/homepage/namespace.yaml | 4 +++ clusters/homelab/homepage/rbac.yaml | 33 ++++++++++++++++++ clusters/homelab/homepage/service.yaml | 11 ++++++ 7 files changed, 128 insertions(+) create mode 100644 clusters/homelab/homepage.yaml create mode 100644 clusters/homelab/homepage/configmap.yaml create mode 100644 clusters/homelab/homepage/deployment.yaml create mode 100644 clusters/homelab/homepage/kustomization.yaml create mode 100644 clusters/homelab/homepage/namespace.yaml create mode 100644 clusters/homelab/homepage/rbac.yaml create mode 100644 clusters/homelab/homepage/service.yaml diff --git a/clusters/homelab/homepage.yaml b/clusters/homelab/homepage.yaml new file mode 100644 index 0000000..7ec5c5e --- /dev/null +++ b/clusters/homelab/homepage.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: homepage + namespace: flux-system +spec: + interval: 10m0s + path: ./clusters/homelab/homepage + prune: true + sourceRef: + kind: GitRepository + name: flux-system diff --git a/clusters/homelab/homepage/configmap.yaml b/clusters/homelab/homepage/configmap.yaml new file mode 100644 index 0000000..8c5d01e --- /dev/null +++ b/clusters/homelab/homepage/configmap.yaml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: homepage-config + namespace: homepage +data: + settings.yaml: | + title: Homelab + theme: dark + color: slate + services.yaml: | + - Infrastruktur: + - Longhorn: + href: http://longhorn.net-scope.org + description: Storage + bookmarks.yaml: | + [] + widgets.yaml: | + - greeting: + text_size: xl + text: "Homelab" + docker.yaml: | + [] + kubernetes.yaml: | + mode: cluster diff --git a/clusters/homelab/homepage/deployment.yaml b/clusters/homelab/homepage/deployment.yaml new file mode 100644 index 0000000..07ec2b4 --- /dev/null +++ b/clusters/homelab/homepage/deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: homepage + namespace: homepage +spec: + replicas: 1 + selector: + matchLabels: + app: homepage + template: + metadata: + labels: + app: homepage + spec: + serviceAccountName: homepage + containers: + - name: homepage + image: ghcr.io/gethomepage/homepage:latest + ports: + - containerPort: 3000 + volumeMounts: + - name: config + mountPath: /app/config + resources: + requests: + memory: "128Mi" + cpu: "10m" + limits: + memory: "256Mi" + cpu: "200m" + volumes: + - name: config + configMap: + name: homepage-config diff --git a/clusters/homelab/homepage/kustomization.yaml b/clusters/homelab/homepage/kustomization.yaml new file mode 100644 index 0000000..3014918 --- /dev/null +++ b/clusters/homelab/homepage/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml + - rbac.yaml + - configmap.yaml + - deployment.yaml + - service.yaml diff --git a/clusters/homelab/homepage/namespace.yaml b/clusters/homelab/homepage/namespace.yaml new file mode 100644 index 0000000..19d1b55 --- /dev/null +++ b/clusters/homelab/homepage/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: homepage diff --git a/clusters/homelab/homepage/rbac.yaml b/clusters/homelab/homepage/rbac.yaml new file mode 100644 index 0000000..e7b97ad --- /dev/null +++ b/clusters/homelab/homepage/rbac.yaml @@ -0,0 +1,33 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: homepage + namespace: homepage +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: homepage +rules: + - apiGroups: [""] + resources: ["namespaces", "pods", "nodes"] + verbs: ["get", "list"] + - apiGroups: ["extensions", "networking.k8s.io"] + resources: ["ingresses"] + verbs: ["get", "list"] + - apiGroups: ["metrics.k8s.io"] + resources: ["nodes", "pods"] + verbs: ["get", "list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: homepage +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: homepage +subjects: + - kind: ServiceAccount + name: homepage + namespace: homepage diff --git a/clusters/homelab/homepage/service.yaml b/clusters/homelab/homepage/service.yaml new file mode 100644 index 0000000..1a4ce59 --- /dev/null +++ b/clusters/homelab/homepage/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: homepage + namespace: homepage +spec: + selector: + app: homepage + ports: + - port: 3000 + targetPort: 3000