Skip to content

[Feature request] Topology Spread Constraints & Per-Deployment Affinity #856

Open
@kevin-lindsay-1

Description

@kevin-lindsay-1

It's fairly normal for k8s deployments that live in a multi-zone cluster to have topology constraints or affinity rules, however it's fairly normal to have an affinity rule per deployment, as the label selectors for pods are typically different per-deployment.

Expected Behaviour

Be able to set anti-affinity and topology spread constraints per deployment.

Current Behaviour

Cannot set affinity per deployment, and topology spread constraints are not in the chart.

Are you a GitHub Sponsor (Yes/No?)

Check at: https://github.com/sponsors/openfaas

  • Yes
  • No
  • No, but I sponsor Alex

List All Possible Solutions and Workarounds

Affinity is currently a global option for what appears to be all deployments. Per-deployment overrides is a reasonable option.

Topology Spread Constraints are not currently in the chart, and I don't think a global configuration option would really even work, as the labelSelector would need to be different per-deployment.

Which Solution Do You Recommend?

Make overrides for affinity and make topology spread configurable, not implementing a global variant.

Steps to Reproduce (for bugs)

Context

Trying to have HA for faas-netes/openfaas.

Your Environment

  • FaaS-CLI version ( Full output from: faas-cli version ):
    0.13.13

  • Docker version docker version (e.g. Docker 17.0.05 ):
    20.10.8

  • What version and distriubtion of Kubernetes are you using? kubectl version
    server v1.21.3
    client v1.22.2

  • Operating System and version (e.g. Linux, Windows, MacOS):
    MacOS

  • Link to your project or a code example to reproduce issue:

  • What network driver are you using and what CIDR? i.e. Weave net / Flannel

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions