Skip to content

Commit 2f96320

Browse files
committed
fix: actually create a valid finalizer name and check it is
1 parent c7217be commit 2f96320

File tree

4 files changed

+28
-16
lines changed

4 files changed

+28
-16
lines changed

operator-framework/src/main/java/io/javaoperatorsdk/operator/ControllerUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
public class ControllerUtils {
9-
private static final String FINALIZER_NAME_SUFFIX = "/finalizer";
9+
private static final String FINALIZER_NAME_SUFFIX = ".javaoperatorsdk.io/finalizer";
1010

1111
static String getFinalizer(ResourceController controller) {
1212
final String annotationFinalizerName = getAnnotation(controller).finalizerName();
@@ -17,7 +17,8 @@ static String getFinalizer(ResourceController controller) {
1717
}
1818

1919
static String getDefaultFinalizerIdentifier(ResourceController controller) {
20-
return controller.getClass().getCanonicalName() + FINALIZER_NAME_SUFFIX;
20+
final Class<? extends ResourceController> controllerClass = controller.getClass();
21+
return controllerClass.getSimpleName().toLowerCase() + FINALIZER_NAME_SUFFIX;
2122
}
2223

2324
static boolean getGenerationEventProcessing(ResourceController controller) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/ConcurrencyIT.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package io.javaoperatorsdk.operator;
22

3-
import io.javaoperatorsdk.operator.sample.TestCustomResource;
4-
import io.javaoperatorsdk.operator.sample.TestCustomResourceController;
3+
import java.util.List;
4+
import java.util.concurrent.TimeUnit;
5+
import java.util.stream.Collectors;
6+
57
import io.fabric8.kubernetes.api.model.ConfigMap;
8+
import io.fabric8.kubernetes.api.model.HasMetadata;
69
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
710
import io.fabric8.kubernetes.client.KubernetesClient;
11+
import io.javaoperatorsdk.operator.sample.TestCustomResource;
12+
import io.javaoperatorsdk.operator.sample.TestCustomResourceController;
813
import org.awaitility.Awaitility;
914
import org.junit.jupiter.api.BeforeAll;
1015
import org.junit.jupiter.api.BeforeEach;
@@ -13,10 +18,6 @@
1318
import org.slf4j.Logger;
1419
import org.slf4j.LoggerFactory;
1520

16-
import java.util.List;
17-
import java.util.concurrent.TimeUnit;
18-
import java.util.stream.Collectors;
19-
2021
import static org.assertj.core.api.Assertions.assertThat;
2122

2223
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@@ -32,8 +33,9 @@ public class ConcurrencyIT {
3233
@BeforeAll
3334
public void setup() {
3435
KubernetesClient k8sClient = new DefaultKubernetesClient();
35-
integrationTest.initialize(k8sClient, new TestCustomResourceController(k8sClient, true),
36-
"test-crd.yaml");
36+
final TestCustomResourceController controller = new TestCustomResourceController(k8sClient, true);
37+
assertThat(HasMetadata.DOMAIN_NAME_MATCHER.reset(ControllerUtils.getDefaultFinalizerIdentifier(controller)).matches()).isTrue();
38+
integrationTest.initialize(k8sClient, controller, "test-crd.yaml");
3739
}
3840

3941
@BeforeEach

operator-framework/src/test/java/io/javaoperatorsdk/operator/ControllerUtilsTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator;
22

3+
import io.fabric8.kubernetes.api.model.HasMetadata;
34
import io.javaoperatorsdk.operator.api.Context;
45
import io.javaoperatorsdk.operator.api.Controller;
56
import io.javaoperatorsdk.operator.api.ResourceController;
@@ -19,7 +20,9 @@ class ControllerUtilsTest {
1920
@Test
2021
public void returnsValuesFromControllerAnnotationFinalizer() {
2122
final TestCustomResourceController controller = new TestCustomResourceController(null);
22-
Assertions.assertEquals(ControllerUtils.getDefaultFinalizerIdentifier(controller), ControllerUtils.getFinalizer(controller));
23+
final String finalizer = ControllerUtils.getFinalizer(controller);
24+
Assertions.assertEquals(ControllerUtils.getDefaultFinalizerIdentifier(controller), finalizer);
25+
Assertions.assertTrue(HasMetadata.DOMAIN_NAME_MATCHER.reset(finalizer).matches());
2326
assertEquals(TestCustomResource.class, ControllerUtils.getCustomResourceClass(controller));
2427
Assertions.assertEquals(TestCustomResourceController.CRD_NAME, ControllerUtils.getCrdName(controller));
2528
assertFalse(ControllerUtils.getGenerationEventProcessing(controller));

operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import java.util.concurrent.TimeUnit;
44

5+
import io.fabric8.kubernetes.api.model.HasMetadata;
56
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
67
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
78
import io.fabric8.kubernetes.client.KubernetesClient;
89
import io.javaoperatorsdk.operator.sample.subresource.SubResourceTestCustomResource;
910
import io.javaoperatorsdk.operator.sample.subresource.SubResourceTestCustomResourceController;
1011
import io.javaoperatorsdk.operator.sample.subresource.SubResourceTestCustomResourceSpec;
1112
import io.javaoperatorsdk.operator.sample.subresource.SubResourceTestCustomResourceStatus;
13+
import org.junit.jupiter.api.BeforeAll;
1214
import org.junit.jupiter.api.BeforeEach;
1315
import org.junit.jupiter.api.Test;
1416
import org.junit.jupiter.api.TestInstance;
@@ -19,17 +21,21 @@
1921

2022
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2123
public class SubResourceUpdateIT {
22-
24+
2325
private IntegrationTestSupport integrationTestSupport = new IntegrationTestSupport();
24-
26+
27+
@BeforeAll
28+
void checkFinalizer() {
29+
assertThat(HasMetadata.DOMAIN_NAME_MATCHER.reset(ControllerUtils.getDefaultFinalizerIdentifier(new SubResourceTestCustomResourceController())).matches()).isTrue();
30+
}
31+
2532
@BeforeEach
2633
public void initAndCleanup() {
2734
KubernetesClient k8sClient = new DefaultKubernetesClient();
28-
integrationTestSupport.initialize(k8sClient, new SubResourceTestCustomResourceController(),
29-
"subresource-test-crd.yaml");
35+
integrationTestSupport.initialize(k8sClient, new SubResourceTestCustomResourceController(), "subresource-test-crd.yaml");
3036
integrationTestSupport.cleanup();
3137
}
32-
38+
3339
@Test
3440
public void updatesSubResourceStatus() {
3541
integrationTestSupport.teardownIfSuccess(() -> {

0 commit comments

Comments
 (0)