apiVersion: apps/v1 kind: Deployment metadata: name: hommer labels: app: hommer spec: selector: matchLabels: app: hommer replicas: 1 # You could also consider elastic scaling for this deployment template: metadata: labels: app: hommer spec: # This is CRUCIAL for the livenessProbe on initContainers restartPolicy: Always volumes: - name: git-repo-volume emptyDir: {} # - name: config-volume # configMap: # name: homer-config # Define init container initContainers: - name: git-cloner image: alpine/git:latest command: ["git", "clone", "https://git.anpham.me/DurianLAB/Homepage-Dashboard.git", "/shared-git-data/Homepage-Dashboard"] volumeMounts: - name: git-repo-volume mountPath: /shared-git-data containers: - name: hommer image: b4bz/homer:v23.09.1 volumeMounts: - name: git-repo-volume mountPath: /www/assets subPath: Homepage-Dashboard/assets # - name: config-volume # mountPath: /www/assets ports: - containerPort: 8080 containers: - name: hommer image: b4bz/homer:v23.09.1 volumeMounts: - name: git-repo-volume mountPath: /www/assets subPath: Homepage-Dashboard/assets ports: - containerPort: 8080 livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 --- apiVersion: v1 kind: Service metadata: name: hommer-dashboard spec: selector: app: hommer ports: - port: 82 targetPort: 8080