Uploaded image for project: 'OpenShift Hosted Control Plane'
  1. OpenShift Hosted Control Plane
  2. HOSTEDCP-194

Colocate control plane components by default

XMLWordPrintable

    • 0
    • 0
    • 0

      From https://github.com/openshift/hypershift/issues/370

      We anticipate the desire for colocation of control plane components to limit the impact of cross-node issues, optimize the communications paths between components, etc (see https://github.com/openshift/hypershift/issues/235).

      This proposal is to define colocation in terms of pod affinity rules based on the `kubernetes.io/hostname` topology key and to set default affinity rules for control plane component pods like:

      podAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                  - key: hypershift.openshift.com/control-plane
                    operator: In
                    values: ["$cluster-id"]
              topologyKey: "kubernetes.io/hostname"
      

      This default would necessarily preclude the ability of users to spread individual components across nodes, but we have no known use case for that. This default would eliminate the need for any direct affinity configuration API at this time barring some new requirements.

      TODO: Decide on an appropriate key value (e.g. the hostedcluster UUID, or namespace+name tuple, or...)
      TODO: Define the exhaustive list of control plane components which to which these defaults will be applied.

              dmace@redhat.com Daniel Mace (Inactive)
              dmace@redhat.com Daniel Mace (Inactive)
              He Liu He Liu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: