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: colocate-region
    spec:
      containers:
        - name: app
          image: sixeyed/whoami:21.04
      nodeSelector:
        kubernetes.io/os: linux
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: node-role.kubernetes.io/control-plane
                  operator: DoesNotExist
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - whoami
              topologyKey: topology.kubernetes.io/region
        