apiVersion: apps/v1
kind: Deployment
metadata:
  name: whoami
  labels:
    kubernetes.courselabs.co: affinity
spec:
  replicas: 6
  selector:
    matchLabels:
      app: whoami
  template:
    metadata:
      labels:
        app: whoami
        update: prefer-spread-zone
    spec:
      containers:
        - name: app
          image: sixeyed/whoami:21.04
      nodeSelector:
        kubernetes.io/os: linux
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  app: whoami
              topologyKey: topology.kubernetes.io/region
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 1
              podAffinityTerm:
                labelSelector: 
                  matchLabels:
                    app: whoami
                topologyKey: topology.kubernetes.io/zone
              