Skip to content

Commit a7215ac

Browse files
committed
[FLINK-38517] Added unit tests for checking podTemplate add-props diffs
1 parent 10d50ee commit a7215ac

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/reconciler/diff/FlinkBlueGreenDeploymentSpecDiffTest.java

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.apache.flink.kubernetes.operator.api.spec.UpgradeMode;
3434

3535
import io.fabric8.kubernetes.api.model.ObjectMeta;
36+
import io.fabric8.kubernetes.api.model.PodTemplateSpecBuilder;
3637
import org.junit.jupiter.api.Test;
3738

3839
import java.util.HashMap;
@@ -41,7 +42,9 @@
4142
import static org.junit.jupiter.api.Assertions.assertEquals;
4243
import static org.junit.jupiter.api.Assertions.assertThrows;
4344

44-
/** Tests for FlinkBlueGreenDeploymentSpecDiff. */
45+
/**
46+
* Tests for FlinkBlueGreenDeploymentSpecDiff.
47+
*/
4548
public class FlinkBlueGreenDeploymentSpecDiffTest {
4649

4750
private static final KubernetesDeploymentMode DEPLOYMENT_MODE = KubernetesDeploymentMode.NATIVE;
@@ -133,6 +136,62 @@ public void testIgnoreForConfigurationDifference() {
133136
assertEquals(BlueGreenDiffType.IGNORE, diff.compare());
134137
}
135138

139+
@Test
140+
public void testIgnoreForRootPodTemplateAdditionalProps() {
141+
FlinkBlueGreenDeploymentSpec spec1 = createBasicSpec();
142+
FlinkBlueGreenDeploymentSpec spec2 = createBasicSpec();
143+
144+
// Set spec1 to have empty podTemplate to not cause valid diff to be detected
145+
spec1.getTemplate().getSpec().setPodTemplate(new PodTemplateSpecBuilder().build());
146+
spec2.getTemplate()
147+
.getSpec()
148+
.setPodTemplate(
149+
new PodTemplateSpecBuilder()
150+
.withAdditionalProperties(Map.of("apiVersion", "v1"))
151+
.build());
152+
FlinkBlueGreenDeploymentSpecDiff diff =
153+
new FlinkBlueGreenDeploymentSpecDiff(DEPLOYMENT_MODE, spec1, spec2);
154+
assertEquals(BlueGreenDiffType.IGNORE, diff.compare());
155+
}
156+
157+
@Test
158+
public void testIgnoreForJobManagerPodTemplateAdditionalProps() {
159+
FlinkBlueGreenDeploymentSpec spec1 = createBasicSpec();
160+
FlinkBlueGreenDeploymentSpec spec2 = createBasicSpec();
161+
162+
// Set spec1 to have empty podTemplate to not cause valid diff to be detected
163+
spec1.getTemplate().getSpec().getJobManager().setPodTemplate(new PodTemplateSpecBuilder().build());
164+
spec2.getTemplate()
165+
.getSpec()
166+
.getJobManager()
167+
.setPodTemplate(
168+
new PodTemplateSpecBuilder()
169+
.withAdditionalProperties(Map.of("apiVersion", "v1"))
170+
.build());
171+
FlinkBlueGreenDeploymentSpecDiff diff =
172+
new FlinkBlueGreenDeploymentSpecDiff(DEPLOYMENT_MODE, spec1, spec2);
173+
assertEquals(BlueGreenDiffType.IGNORE, diff.compare());
174+
}
175+
176+
@Test
177+
public void testIgnoreForTaskManagerPodTemplateAdditionalProps() {
178+
FlinkBlueGreenDeploymentSpec spec1 = createBasicSpec();
179+
FlinkBlueGreenDeploymentSpec spec2 = createBasicSpec();
180+
181+
// Set spec1 to have empty podTemplate to not cause valid diff to be detected
182+
spec1.getTemplate().getSpec().getTaskManager().setPodTemplate(new PodTemplateSpecBuilder().build());
183+
spec2.getTemplate()
184+
.getSpec()
185+
.getTaskManager()
186+
.setPodTemplate(
187+
new PodTemplateSpecBuilder()
188+
.withAdditionalProperties(Map.of("apiVersion", "v1"))
189+
.build());
190+
FlinkBlueGreenDeploymentSpecDiff diff =
191+
new FlinkBlueGreenDeploymentSpecDiff(DEPLOYMENT_MODE, spec1, spec2);
192+
assertEquals(BlueGreenDiffType.IGNORE, diff.compare());
193+
}
194+
136195
@Test
137196
public void testTransitionForNestedSpecDifference() {
138197
FlinkBlueGreenDeploymentSpec spec1 = createBasicSpec();

0 commit comments

Comments
 (0)