apiVersion: topology.openstack.org/v1beta1 kind: Topology metadata: name: azone-node-affinity namespace: openstack spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: topology.kubernetes.io/zone operator: In values: - zoneA topologySpreadConstraints: - matchLabelKeys: - pod-template-hash - controller-revision-hash maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule --- apiVersion: topology.openstack.org/v1beta1 kind: Topology metadata: name: bzone-node-affinity namespace: openstack spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: topology.kubernetes.io/zone operator: In values: - zoneB topologySpreadConstraints: - matchLabelKeys: - pod-template-hash - controller-revision-hash maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule --- apiVersion: topology.openstack.org/v1beta1 kind: Topology metadata: name: czone-node-affinity namespace: openstack spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: topology.kubernetes.io/zone operator: In values: - zoneC topologySpreadConstraints: - matchLabelKeys: - pod-template-hash - controller-revision-hash maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule --- apiVersion: topology.openstack.org/v1beta1 kind: Topology metadata: name: default-spread-pods namespace: openstack spec: topologySpreadConstraints: - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: DoNotSchedule --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneA name: worker-0 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneA name: worker-1 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneA name: worker-2 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneB name: worker-3 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneB name: worker-4 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneB name: worker-5 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneC name: worker-6 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneC name: worker-7 --- apiVersion: v1 kind: Node metadata: labels: topology.kubernetes.io/zone: zoneC name: worker-8