Files
apps/homepage/main.yaml
Philip Haupt b2c53d2181 feat: homepage
2025-03-15 14:33:40 +01:00

240 lines
5.2 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: homepage
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/name: homepage
name: homepage
namespace: homepage
secrets:
- name: homepage
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: homepage
name: homepage
rules:
- apiGroups:
- ""
resources:
- namespaces
- pods
- nodes
verbs:
- get
- list
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- apiGroups:
- traefik.io
resources:
- ingressroutes
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
- nodes
- pods
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/name: homepage
name: homepage
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: homepage
subjects:
- kind: ServiceAccount
name: homepage
namespace: homepage
---
apiVersion: v1
data:
bookmarks.yaml: |
- Developer:
- Github:
- abbr: GH
href: https://github.com/
custom.css: ""
custom.js: ""
docker.yaml: ""
kubernetes.yaml: |
mode: cluster
services.yaml: "- My First Group:\n - My First Service:\n href: http://localhost/\n
\ description: Homepage is awesome\n\n- My Second Group:\n - My Second
Service:\n href: http://localhost/\n description: Homepage is the
best\n\n- My Third Group:\n - My Third Service:\n href: http://localhost/\n
\ description: Homepage is \U0001F60E\n"
settings.yaml: ""
widgets.yaml: |
- kubernetes:
cluster:
show: true
cpu: true
memory: true
showLabel: true
label: "cluster"
nodes:
show: true
cpu: true
memory: true
showLabel: true
- resources:
backend: resources
expanded: true
cpu: true
memory: true
network: default
- search:
provider: duckduckgo
target: _blank
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/name: homepage
name: homepage
namespace: homepage
---
apiVersion: v1
kind: Secret
metadata:
annotations:
kubernetes.io/service-account.name: homepage
labels:
app.kubernetes.io/name: homepage
name: homepage
namespace: homepage
type: kubernetes.io/service-account-token
---
apiVersion: v1
kind: Service
metadata:
annotations:
io.cilium/lb-ipam-ips: 192.168.0.130
labels:
app.kubernetes.io/name: homepage
name: homepage
namespace: homepage
spec:
ports:
- name: http
port: 3000
protocol: TCP
targetPort: http
selector:
app.kubernetes.io/name: homepage
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: homepage
name: homepage
namespace: homepage
spec:
replicas: 1
revisionHistoryLimit: 3
selector:
matchLabels:
app.kubernetes.io/name: homepage
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: homepage
spec:
automountServiceAccountToken: true
containers:
- image: ghcr.io/gethomepage/homepage:v0.10.9
imagePullPolicy: Always
name: homepage
ports:
- containerPort: 3000
name: http
protocol: TCP
volumeMounts:
- mountPath: /app/config/custom.js
name: homepage-config
subPath: custom.js
- mountPath: /app/config/custom.css
name: homepage-config
subPath: custom.css
- mountPath: /app/config/bookmarks.yaml
name: homepage-config
subPath: bookmarks.yaml
- mountPath: /app/config/docker.yaml
name: homepage-config
subPath: docker.yaml
- mountPath: /app/config/kubernetes.yaml
name: homepage-config
subPath: kubernetes.yaml
- mountPath: /app/config/services.yaml
name: homepage-config
subPath: services.yaml
- mountPath: /app/config/settings.yaml
name: homepage-config
subPath: settings.yaml
- mountPath: /app/config/widgets.yaml
name: homepage-config
subPath: widgets.yaml
- mountPath: /app/config/logs
name: logs
dnsPolicy: ClusterFirst
enableServiceLinks: true
serviceAccountName: homepage
volumes:
- configMap:
name: homepage
name: homepage-config
- emptyDir: {}
name: logs
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
gethomepage.dev/description: Dynamically Detected Homepage
gethomepage.dev/enabled: "true"
gethomepage.dev/group: Cluster Management
gethomepage.dev/icon: homepage.png
gethomepage.dev/name: Homepage
labels:
app.kubernetes.io/name: homepage
name: homepage
namespace: homepage
spec:
ingressClassName: cilium
rules:
- host: homepage.home
http:
paths:
- backend:
service:
name: homepage
port:
number: 3000
path: /
pathType: Prefix