apiVersion: apps/v1 kind: Deployment metadata: name: repo-server namespace: repo spec: replicas: 1 selector: matchLabels: app: repo-server template: metadata: labels: app: repo-server spec: initContainers: - name: init-dirs image: alpine:3.20 command: ["sh","-lc"] args: - | mkdir -p /share/repos chmod 755 /share /share/repos volumeMounts: - name: repo-storage mountPath: /share containers: - name: httpd image: httpd:2.4 ports: - containerPort: 80 volumeMounts: - name: repo-storage mountPath: /usr/local/apache2/htdocs subPath: repos readinessProbe: httpGet: { path: /, port: 80 } initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: httpGet: { path: /, port: 80 } initialDelaySeconds: 15 periodSeconds: 20 - name: samba image: dperson/samba args: ["-p", "-s", "repos;/share/repos;yes;no"] ports: - containerPort: 445 securityContext: runAsUser: 0 volumeMounts: - name: repo-storage mountPath: /share volumes: - name: repo-storage persistentVolumeClaim: claimName: repo-pvc