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