From 32bac8ad76a2708db50bd84e5d3aeeb92e8618ad Mon Sep 17 00:00:00 2001 From: Todd Loisel <2481693+tloisel1@users.noreply.github.com> Date: Fri, 19 Jul 2024 10:42:01 -0400 Subject: [PATCH] Update logic for detecting taint updates to include taint effect --- .../java/gyro/aws/eks/EksNodegroupResource.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/gyro/aws/eks/EksNodegroupResource.java b/src/main/java/gyro/aws/eks/EksNodegroupResource.java index b76c0a3d9..ebd140dde 100644 --- a/src/main/java/gyro/aws/eks/EksNodegroupResource.java +++ b/src/main/java/gyro/aws/eks/EksNodegroupResource.java @@ -534,14 +534,15 @@ public void update( Set<Taint> taintsToRemove = new HashSet<>(currentTaints); taintsToRemove.removeAll(taints); - // Taint key cannot be in both added and removed, this means it's an update, so remove from remove set. - Set<String> taintKeysToAddOrUpdate = taintsToAddOrUpdate.stream() - .map(Taint::key) - .collect(Collectors.toSet()); + // Detect true updates. + // taint key and effect is the same, but the value is different. Set<Taint> taintsToUpdate = new HashSet<>(); - for (Taint taint : taintsToRemove) { - if (taintKeysToAddOrUpdate.contains(taint.key())) { - taintsToUpdate.add(taint); + for (Taint taintToBeRemoved : taintsToRemove) { + for (Taint taintToBeAdded : taintsToAddOrUpdate) { + if (taintToBeRemoved.key().equals(taintToBeAdded.key()) && + taintToBeRemoved.effect().equals(taintToBeAdded.effect())) { + taintsToUpdate.add(taintToBeRemoved); + } } } taintsToRemove.removeAll(taintsToUpdate);