--- apiVersion: v1 kind: ServiceAccount metadata: name: homepage namespace: homepage labels: app.kubernetes.io/name: homepage secrets: - name: homepage --- apiVersion: v1 kind: Secret type: kubernetes.io/service-account-token metadata: name: homepage namespace: homepage labels: app.kubernetes.io/name: homepage annotations: kubernetes.io/service-account.name: homepage --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: homepage labels: app.kubernetes.io/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: - gateway.networking.k8s.io resources: - httproutes - gateways verbs: - get - list - apiGroups: - metrics.k8s.io resources: - nodes - pods verbs: - get - list --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: homepage labels: app.kubernetes.io/name: homepage roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: homepage subjects: - kind: ServiceAccount name: homepage namespace: homepage --- apiVersion: v1 kind: Service metadata: name: homepage namespace: homepage labels: app.kubernetes.io/name: homepage annotations: spec: type: ClusterIP ports: - port: 3000 targetPort: http protocol: TCP name: http selector: app.kubernetes.io/name: homepage --- apiVersion: apps/v1 kind: Deployment metadata: name: homepage namespace: homepage labels: app.kubernetes.io/name: homepage spec: revisionHistoryLimit: 3 replicas: 1 strategy: type: RollingUpdate selector: matchLabels: app.kubernetes.io/name: homepage template: metadata: labels: app.kubernetes.io/name: homepage spec: serviceAccountName: homepage automountServiceAccountToken: true dnsPolicy: ClusterFirst enableServiceLinks: true containers: - name: homepage image: "ghcr.io/gethomepage/homepage:latest" imagePullPolicy: Always env: - name: HOMEPAGE_ALLOWED_HOSTS value: homepage.k8s.schnrbs.work # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts ports: - name: http containerPort: 3000 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 volumes: - name: homepage-config configMap: name: homepage - name: logs emptyDir: {}