fix: Prevent duplicate toleration specs (#29)
Add duplicate check in unit test Fix: Prevent duplicate toleration specs Fix formatting errorpull/45/head
parent
bee849ff7a
commit
0d7a511a67
|
|
@ -23,6 +23,7 @@ import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
|
|||
import io.fabric8.kubernetes.api.model.PodSecurityContext;
|
||||
import io.fabric8.kubernetes.api.model.PodSpec;
|
||||
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
|
||||
import io.fabric8.kubernetes.api.model.Toleration;
|
||||
import io.fabric8.kubernetes.api.model.Volume;
|
||||
import io.fabric8.kubernetes.api.model.apps.Deployment;
|
||||
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
|
||||
|
|
@ -154,8 +155,13 @@ public class PodMerger {
|
|||
|
||||
// if there are entries with such keys then values will be overridden
|
||||
baseSpec.getAdditionalProperties().putAll(podData.getSpec().getAdditionalProperties());
|
||||
|
||||
// add tolerations to baseSpec if any
|
||||
baseSpec.getTolerations().addAll(podData.getSpec().getTolerations());
|
||||
for (Toleration toleration : podData.getSpec().getTolerations()) {
|
||||
if (!baseSpec.getTolerations().contains(toleration)) {
|
||||
baseSpec.getTolerations().add(toleration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, String> matchLabels = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import io.fabric8.kubernetes.api.model.VolumeBuilder;
|
|||
import io.fabric8.kubernetes.api.model.apps.Deployment;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -131,7 +132,9 @@ public class PodMergerTest {
|
|||
.withVolumes(new VolumeBuilder().withName("v2").build())
|
||||
.withNodeSelector(Map.of("foo2", "bar2"))
|
||||
.withImagePullSecrets(new LocalObjectReferenceBuilder().withName("secret2").build())
|
||||
.withTolerations(new Toleration("Effect", "key", "operator", 0L, "value2"))
|
||||
.withTolerations(
|
||||
new Toleration("Effect", "key", "operator", 0L, "value1"),
|
||||
new Toleration("Effect", "key", "operator", 0L, "value2"))
|
||||
.build();
|
||||
podSpec2.setAdditionalProperty("add2", 2L);
|
||||
PodData podData2 = new PodData(podSpec2, new ObjectMetaBuilder().build());
|
||||
|
|
@ -452,5 +455,6 @@ public class PodMergerTest {
|
|||
.entrySet()
|
||||
.containsAll(toCheck.getAdditionalProperties().entrySet()));
|
||||
assertTrue(source.getTolerations().containsAll(toCheck.getTolerations()));
|
||||
assertEquals(toCheck.getTolerations().size(), new HashSet<>(toCheck.getTolerations()).size());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue