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