apiVersion: apps/v1
kind: Deployment
metadata:
  name: web # Название нашего объекта Deployment
spec:
  replicas: 3 # Начнем с одного пода
  selector: # Укажем, какие поды относятся к нашему Deployment:
    matchLabels: # - это поды с меткой
      app: web # app и ее значением web
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 100%
  template: # Теперь зададим шаблон конфигурации пода
    metadata:
      labels:
        app: web
      name: web
    spec:
      volumes:
      - name: app
        emptyDir: {}
      containers:
      - image: vsb2007/http-app
        readinessProbe: # Добавим проверку готовности
          httpGet: # веб-сервера отдавать
            path: /index.html # контент
            port: 8000
        livenessProbe:
          tcpSocket: { port: 8000 }
        name: web
        volumeMounts:
        - name: app
          mountPath: /app
      initContainers:
        - name: html-gen
          image: busybox:musl
          command: ['sh', '-c', 'wget -O- https://bit.ly/otus-k8s-index-gen | sh']
          volumeMounts:
          - name: app
            mountPath: /app
