Replace Hajimari with Homepage (#1127)

* feat: replace hajimari with homepage

* fix: add secret

* fix: homepage configmap kubernetes widget

Signed-off-by: Jory Irving <jory@jory.dev>

* feat: wrap annotations in blocks

* chore: homepage change ingress to internal

Signed-off-by: Jory Irving <jory@jory.dev>

---------

Signed-off-by: Jory Irving <jory@jory.dev>
This commit is contained in:
Jory Irving authored and GitHub committed 2024-01-11 15:05:24 -05:00
1 parent d093d0a4e1
commit ee5de426a4
19 files changed
+230 -94

No files matched your search

@@ -0,0 +1,77 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: homepage-config
labels:
app.kubernetes.io/name: homepage
data:
bookmarks.yaml: |
- Communitcate:
- Discord:
- icon: discord.png # https://github.com/walkxcode/dashboard-icons
href: 'https://discord.com/app'
- Media:
- YouTube:
- icon: youtube.png
href: 'https://youtube.com/feed/subscriptions'
- Reading:
- Reddit:
- icon: reddit.png
href: 'https://reddit.com'
- Git:
- kubesearch:
- icon: kubernetes-dashboard.png
href: 'https://kubesearch.dev/'
- flux-cluster-template:
- icon: github.png
href: 'https://github.com/onedr0p/flux-cluster-template'
docker.yaml: ""
kubernetes.yaml: |
mode: cluster
services.yaml: |
- Network:
- Cloudflared:
href: https://dash.cloudflare.com/
icon: cloudflare-zero-trust.png
description: Cloudflared Tunnel
widget:
type: cloudflared
accountid: {{HOMEPAGE_VAR_CLOUDFLARED_ACCOUNTID}}
tunnelid: {{HOMEPAGE_VAR_CLOUDFLARED_TUNNELID}}
key: {{HOMEPAGE_VAR_CLOUDFLARED_API_TOKEN}}
settings.yaml: |
title: Dashboard
theme: dark
color: slate
headerStyle: clean
layout:
Home:
style: column
icon: mdi-home-analytics
Network:
style: row
columns: 3
icon: mdi-server
Observability:
style: column
icon: mdi-chart-line
widgets.yaml: |
- resources:
backend: kubernetes
cpu: true
expanded: true
memory: true
- search:
provider: [duckduckgo]
focus: false
target: _blank
- greeting:
text_size: xl
text: "Welcome!"
- datetime:
text_size: l
format:
dateStyle: long
timeStyle: short
hourCycle: h23
@@ -0,0 +1,88 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: homepage
spec:
interval: 30m
chart:
spec:
chart: app-template
version: 2.4.0
interval: 30m
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: flux-system
maxHistory: 2
install:
createNamespace: true
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
uninstall:
keepHistory: false
values:
controllers:
main:
annotations:
reloader.stakater.com/auto: "true"
containers:
main:
image:
repository: ghcr.io/gethomepage/homepage
tag: v0.8.4
env:
TZ: "${TIMEZONE}"
envFrom:
- secretRef:
name: homepage-secret
resources:
requests:
cpu: 15m
memory: 100M
limits:
memory: 250M
service:
main:
ports:
http:
port: 3000
ingress:
main:
enabled: true
className: internal
hosts:
- host: &host home.${SECRET_DOMAIN}
paths:
- path: /
pathType: Prefix
service:
name: main
port: http
tls:
- hosts:
- *host
persistence:
config:
enabled: true
type: configMap
name: homepage-config
globalMounts:
- subPath: bookmarks.yaml
path: /app/config/bookmarks.yaml
- subPath: docker.yaml
path: /app/config/docker.yaml
- subPath: kubernetes.yaml
path: /app/config/kubernetes.yaml
- subPath: services.yaml
path: /app/config/services.yaml
- subPath: settings.yaml
path: /app/config/settings.yaml
- subPath: widgets.yaml
path: /app/config/widgets.yaml
serviceAccount:
create: true
@@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./configmap.yaml
- ./helmrelease.yaml
- ./secret.sops.yaml
@@ -0,0 +1,11 @@
---
apiVersion: v1
kind: Secret
metadata:
name: homepage-secret
stringData:
HOMEPAGE_VAR_CLOUDFLARED_ACCOUNTID: "{{ bootstrap_cloudflare_account_tag }}"
HOMEPAGE_VAR_CLOUDFLARED_TUNNELID: "{{ bootstrap_cloudflare_tunnel_id }}"
HOMEPAGE_VAR_CLOUDFLARED_API_TOKEN: "{{ bootstrap_cloudflare_token }}"
HOMEPAGE_VAR_GRAFANA_USERNAME: admin
HOMEPAGE_VAR_GRAFANA_PASSWORD: "{{ grafana.password }}"
@@ -0,0 +1,20 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app homepage
namespace: flux-system
spec:
targetNamespace: default
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/default/homepage/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m