convert homepage to app-template

This commit is contained in:
2024-05-27 20:31:07 -05:00
parent 8bb3884fda
commit 1483756ec0
7 changed files with 769 additions and 565 deletions

View File

@@ -1,12 +1,19 @@
apiVersion: v2
name: homepage-front
name: homepage
version: 1.0.0
description: Homepage
home: https://outline.alexlebens.net/doc/homepage-s2clWoI5EC
keywords:
- dashboard
sources:
- https://github.com/gethomepage/homepage
- https://github.com/alexlebens/helm-charts/tree/main/charts/homepage
maintainers:
- name: alexlebens
dependencies:
- name: homepage
version: 0.0.15
repository: http://alexlebens.github.io/helm-charts
appVersion: v0.8.12
- name: app-template
alias: homepage
repository: https://bjw-s.github.io/helm-charts/
version: 3.2.1
icon: https://github.com/benphelps/homepage/blob/de584eae8f12a0d257e554e9511ef19bd2a1232c/public/mstile-150x150.png
appVersion: v0.8.13

View File

@@ -0,0 +1,19 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Release.Name }}
subjects:
- kind: ServiceAccount
name: homepage
namespace: {{ .Release.Namespace }}

View File

@@ -0,0 +1,51 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
rules:
- apiGroups:
- ""
resources:
- namespaces
- pods
- nodes
verbs:
- get
- list
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- apiGroups:
- traefik.containo.us
- traefik.io
resources:
- ingressroutes
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
- nodes
- pods
verbs:
- get
- list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions/status
verbs:
- get

View File

@@ -0,0 +1,33 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: homepage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`home.alexlebens.net`)
middlewares:
- name: "authentik-{{ .Release.Name }}"
namespace: authentik
priority: 10
services:
- kind: Service
name: homepage
port: 80
- kind: Rule
match: Host(`home.alexlebens.net`) && PathPrefix(`/outpost.goauthentik.io/`)
priority: 15
services:
- kind: Service
name: authentik-outpost-proxy
port: 9000
namespace: authentik

View File

@@ -0,0 +1,27 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: "authentik-{{ .Release.Name }}"
namespace: authentik
labels:
app.kubernetes.io/name: "authentik-{{ .Release.Name }}"
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: auth
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
forwardAuth:
address: http://authentik-outpost-proxy.authentik:9000/outpost.goauthentik.io/auth/traefik
trustForwardHeader: true
authResponseHeaders:
- X-authentik-username
- X-authentik-groups
- X-authentik-email
- X-authentik-name
- X-authentik-uid
- X-authentik-jwt
- X-authentik-meta-jwks
- X-authentik-meta-outpost
- X-authentik-meta-provider
- X-authentik-meta-app
- X-authentik-meta-version

View File

@@ -0,0 +1,14 @@
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: "{{ .Release.Name }}-sa-token"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: "{{ .Release.Name }}-sa-token"
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
kubernetes.io/service-account.name: homepage

View File

@@ -1,21 +1,86 @@
homepage:
deployment:
global:
nameOverride: homepage
controllers:
main:
type: deployment
annotations:
reloader.stakater.com/auto: "true"
resources:
limits:
memory: 2Gi
cpu: 1000m
strategy: Recreate
containers:
main:
image:
repository: ghcr.io/gethomepage/homepage
tag: v0.8.13
pullPolicy: IfNotPresent
envFrom:
- secretRef:
name: homepage-keys-secret
ingressRoute:
host: home.alexlebens.net
authentik:
outpost: authentik-outpost-proxy
namespace: authentik
resources:
requests:
cpu: 100m
memory: 128Mi
serviceAccount:
create: true
configMaps:
config:
widgets:
enabled: true
data:
docker.yaml: ""
kubernetes.yaml: ""
settings.yaml: |
favicon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png
headerStyle: clean
hideVersion: true
color: slate
background:
image: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/background.jpg
theme: dark
disableCollapse: true
layout:
- Media:
tab: Apps
icon: mdi-multimedia-#ffffff
- Applications:
tab: Apps
icon: mdi-application-#ffffff
- Code:
tab: Tools
icon: mdi-code-braces-box-#ffffff
- Monitoring:
tab: Tools
icon: mdi-chart-bar-#ffffff
- Management:
tab: Tools
icon: mdi-content-save-cog-#ffffff
- Services:
tab: Services
icon: mdi-server-network-#ffffff
- Hardware:
tab: Services
icon: mdi-lan-connect-#ffffff
- Storage:
tab: Services
icon: mdi-harddisk-#ffffff
- Sonarr:
tab: Servarr
icon: mdi-television-#ffffff
- Radarr:
tab: Servarr
icon: mdi-filmstrip-#ffffff
- Other:
tab: Servarr
icon: mdi-music-box-multiple-#ffffff
- Media Services:
tab: Servarr
icon: mdi-radar-#ffffff
- External Services:
tab: Bookmarks
icon: mdi-cloud-#ffffff
- Trackers:
tab: Bookmarks
icon: mdi-cloud-#ffffff
widgets.yaml: |
- logo:
icon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png
- kubernetes:
@@ -34,12 +99,12 @@ homepage:
timeStyle: short
hour12: false
- openmeteo:
label: Denver
latitude: 39.73
longitude: 104.99
label: St. Paul
latitude: 44.95
longitude: 93.09
units: metric
cache: 5
services:
services.yaml: |
- Media:
- Plex:
icon: plex.png
@@ -461,7 +526,7 @@ homepage:
type: prowlarr
url: http://prowlarr.prowlarr:9696
key: '{{HOMEPAGE_VAR_PROWLARR_KEY}}'
bookmarks:
bookmarks.yaml: |
- External Services:
- Github:
- abbr: GH
@@ -509,55 +574,43 @@ homepage:
- MV Group:
- abbr: MV
href: https://forums.mvgroup.org
settings:
favicon: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/icon_white.png
headerStyle: clean
hideVersion: true
color: slate
background:
image: https://alexlebens-dev.nyc3.digitaloceanspaces.com/cl02do/assets/background.jpg
theme: dark
disableCollapse: true
layout:
- Media:
tab: Apps
icon: mdi-multimedia-#ffffff
- Applications:
tab: Apps
icon: mdi-application-#ffffff
- Code:
tab: Tools
icon: mdi-code-braces-box-#ffffff
- Monitoring:
tab: Tools
icon: mdi-chart-bar-#ffffff
- Management:
tab: Tools
icon: mdi-content-save-cog-#ffffff
- Services:
tab: Services
icon: mdi-server-network-#ffffff
- Hardware:
tab: Services
icon: mdi-lan-connect-#ffffff
- Storage:
tab: Services
icon: mdi-harddisk-#ffffff
- Sonarr:
tab: Servarr
icon: mdi-television-#ffffff
- Radarr:
tab: Servarr
icon: mdi-filmstrip-#ffffff
- Other:
tab: Servarr
icon: mdi-music-box-multiple-#ffffff
- Media Services:
tab: Servarr
icon: mdi-radar-#ffffff
- External Services:
tab: Bookmarks
icon: mdi-cloud-#ffffff
- Trackers:
tab: Bookmarks
icon: mdi-cloud-#ffffff
service:
http:
controller: main
ports:
http:
port: 80
targetPort: 3000
protocol: HTTP
persistence:
config:
enabled: true
type: configMap
name: homepage-config
advancedMounts:
main:
main:
- path: /app/config/bookmarks.yaml
readOnly: true
mountPropagation: None
subPath: bookmarks.yaml
- path: /app/config/docker.yaml
readOnly: true
mountPropagation: None
subPath: docker.yaml
- path: /app/config/kubernetes.yaml
readOnly: true
mountPropagation: None
subPath: kubernetes.yaml
- path: /app/config/services.yaml
readOnly: true
mountPropagation: None
subPath: services.yaml
- path: /app/config/settings.yaml
readOnly: true
mountPropagation: None
subPath: settings.yaml
- path: /app/config/widgets.yaml
readOnly: true
mountPropagation: None
subPath: widgets.yaml