# Dashy — homelab dashboard # Apply: kubectl apply -f manifests/dashy.yaml apiVersion: v1 kind: Namespace metadata: name: dashy --- apiVersion: v1 kind: ConfigMap metadata: name: dashy-config namespace: dashy data: conf.yml: | # contents will be replaced by kustomize or kubectl apply --- apiVersion: apps/v1 kind: Deployment metadata: name: dashy namespace: dashy spec: replicas: 1 selector: matchLabels: app: dashy template: metadata: labels: app: dashy spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role operator: In values: - primary containers: - name: dashy image: lissy93/dashy:latest ports: - containerPort: 8080 volumeMounts: - name: config mountPath: /app/user-data/conf.yml subPath: conf.yml volumes: - name: config configMap: name: dashy-config --- apiVersion: v1 kind: Service metadata: name: dashy namespace: dashy spec: selector: app: dashy ports: - port: 80 targetPort: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashy namespace: dashy annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: "true" cert-manager.io/cluster-issuer: internal-ca-issuer spec: ingressClassName: traefik tls: - secretName: dashy-tls hosts: - dashy.home.arpa rules: - host: dashy.home.arpa http: paths: - path: / pathType: Prefix backend: service: name: dashy port: number: 80