Specify nodeAffinity in everest percona deployment

Hi,
Is it possible to specify the nodeAffinty for the different elements installed by everest (victoriametrics, olm, everest-monitoring, …).
When I manually add the nodeaffinity in deployments my modification is overwritten.
I found the yaml manifest stored in the configMaps in the olm namespace. I decode the binary data, apply my modification, encode and store it in the configMap. But there is no impact on deployment.

I have the same question for the database statefulset created by everest. I manually add the nodeAffinity in the statefulset and it works. But is it possible to add this to creation?

Ps: I hope my English is understandable ^^

Thanks in advance

Hi @sbou

Thank you for your feedback. We are currently in discovery process for nodeAffinity configuration for database deployments, this feature is planned for Q4 this year and I would very much appreciate if you can share more information about how you are planning to use affinity config, what use cases are you addressing with it and how. Currently Everest by default is setting anti affinity rule to deploy database pods across different k8s worker nodes (if possible). For the Everest components nodeAffinity, it is not currently on our roadmap, I would also like to learn more about the use case you are targeting here. We can also jump to a zoom meeting if you prefer this way.

In my Kubernetes cluster, I have dedicated nodes with a specific label (node.type=ic). These nodes are reserved for continuous integration and I don’t want to deploy Everest (and all other products) on these nodes. Today, I use a nodeAffinity configuration like this to force pods to the other nodes:

        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            preference:
              matchExpressions:
              - key: node.type
                operator: In
                values:
                - application

Thank you for the details. Like I mentioned previously, we are planning to add database deployment affinity settings but Everest deployment affinity is not on our roadmap. We are currently working on helm charts which will allow to configure affinity when deploying Everest. Meanwhile you can manually run kubectl edit deployment -n everest-system percona-everest and edit the affinity settings after Everest is deployed.