# Unable to upgrade to enterprise-2.15.2: node(s) didn't match pod anti-affinity rules

**URL:** <https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441>\
**Category:** Linkerd General Discussion\
**Tags:** configuration\
**Created:** [April 12, 2024, 5:17pm UTC](https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441 "2024-04-12T17:17:45Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![bourquep](https://yyz1.discourse-cdn.com/flex029/user_avatar/linkerd.buoyant.io/bourquep/32/160_2.png) [@bourquep](https://linkerd.buoyant.io/u/bourquep)\
**Post date:** [April 12, 2024, 5:17pm UTC](https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441/1 "2024-04-12T17:17:45Z")

</div>

Hello,

I am trying to upgrade from `stable-2.14.10` to `enterprise-2.15.2`, and the Linkerd pods (`destination`, `identity` and `proxy-injector`) are stuck in `Pending` state, with the following message:

```auto
node(s) didn't match pod anti-affinity rules.

```

What can I do about this?

Thanks!

Pascal

---

<div class="post-metadata">

**Author:** ![Alen](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@Alen](https://linkerd.buoyant.io/u/Alen)\
**Post date:** [April 12, 2024, 6:01pm UTC](https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441/2 "2024-04-12T18:01:35Z")

</div>

Hi Pascal,

It sounds like you may be setting the `enablePodAntiAffinity: true` flag in your values (either explicitly or implicitly, depending on which steps you’re taking to upgrade), and you don’t have enough nodes to handle the request.

Can you provide the following when you get a chance:

1. steps your using to migrate from OSS to enterprise
2. Values (files or runtime settings) you’re using

Once I have those I can better advise on how to clear it up. In the meantime, as a general setting, you can try passing in `enablePodAntiAffinity: false` in the values and see if that gets around the issue you’re seeing.

---

<div class="post-metadata">

**Author:** ![bourquep](https://yyz1.discourse-cdn.com/flex029/user_avatar/linkerd.buoyant.io/bourquep/32/160_2.png) [@bourquep](https://linkerd.buoyant.io/u/bourquep)\
**Post date:** [April 12, 2024, 6:05pm UTC](https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441/3 "2024-04-12T18:05:37Z")

</div>

Hello Alen,

I install/upgrade Linkerd with the `--ha` flag, for High Availability.

I realized that the Linkerd deployments are set to 3 replicas and affinity rules that state “no more than 1 pod per node”, and I have 3 nodes, so this is why it was stuck. Scaling down to 2 replicas fixed the issue.

Pascal

---

<div class="post-metadata">

**Author:** ![Alen](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@Alen](https://linkerd.buoyant.io/u/Alen)\
**Post date:** [April 12, 2024, 6:41pm UTC](https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441/4 "2024-04-12T18:41:03Z")

</div>

Aaah gotcha. Glad you were able to get it resolved, though I would expect it to work still if all 3 nodes are schedulable (assuming one is not a tainted orchestrator node or something like that).

---

<div class="post-metadata">

**Author:** ![bourquep](https://yyz1.discourse-cdn.com/flex029/user_avatar/linkerd.buoyant.io/bourquep/32/160_2.png) [@bourquep](https://linkerd.buoyant.io/u/bourquep)\
**Post date:** [April 12, 2024, 6:50pm UTC](https://linkerd.buoyant.io/t/unable-to-upgrade-to-enterprise-2-15-2-node-s-didnt-match-pod-anti-affinity-rules/441/5 "2024-04-12T18:50:06Z")

</div>

Yep, all 3 nodes are schedulable.
