Skip to content

Commit f35f1cc

Browse files
committed
ssa issue reproducer
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 1dc8669 commit f35f1cc

File tree

5 files changed

+131
-0
lines changed

5 files changed

+131
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.javaoperatorsdk.operator.baseapi.ssaissue;
2+
3+
import io.fabric8.kubernetes.api.model.Namespaced;
4+
import io.fabric8.kubernetes.client.CustomResource;
5+
import io.fabric8.kubernetes.model.annotation.Group;
6+
import io.fabric8.kubernetes.model.annotation.Kind;
7+
import io.fabric8.kubernetes.model.annotation.ShortNames;
8+
import io.fabric8.kubernetes.model.annotation.Version;
9+
10+
@Group("sample.javaoperatorsdk")
11+
@Version("v1")
12+
@Kind("CustomService")
13+
@ShortNames("ssaf")
14+
public class SSAFinalizerIssueCustomResource
15+
extends CustomResource<SSAFinalizerIssueSpec, SSAFinalizerIssueStatus> implements Namespaced {}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package io.javaoperatorsdk.operator.baseapi.ssaissue;
2+
3+
import java.util.List;
4+
5+
import org.junit.jupiter.api.Test;
6+
import org.junit.jupiter.api.extension.RegisterExtension;
7+
8+
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
9+
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
10+
11+
import static org.assertj.core.api.Assertions.assertThat;
12+
import static org.awaitility.Awaitility.await;
13+
14+
class SSAFinalizerIssueIT {
15+
16+
public static final String TEST_1 = "test1";
17+
18+
@RegisterExtension
19+
LocallyRunOperatorExtension operator =
20+
LocallyRunOperatorExtension.builder()
21+
.withReconciler(new SSAFinalizerIssueReconciler())
22+
.build();
23+
24+
@Test
25+
void addingFinalizerRemoveListValues() {
26+
operator.create(testResource());
27+
28+
await()
29+
.untilAsserted(
30+
() -> {
31+
var actual = operator.get(SSAFinalizerIssueCustomResource.class, TEST_1);
32+
assertThat(actual.getFinalizers()).hasSize(1);
33+
assertThat(actual.getSpec().getList()).isEmpty();
34+
});
35+
}
36+
37+
SSAFinalizerIssueCustomResource testResource() {
38+
var res = new SSAFinalizerIssueCustomResource();
39+
res.setMetadata(new ObjectMetaBuilder().withName(TEST_1).build());
40+
res.setSpec(new SSAFinalizerIssueSpec());
41+
res.getSpec().setValue("val");
42+
res.getSpec().setList(List.of("val1", "val2"));
43+
return res;
44+
}
45+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package io.javaoperatorsdk.operator.baseapi.ssaissue;
2+
3+
import io.javaoperatorsdk.operator.api.reconciler.Cleaner;
4+
import io.javaoperatorsdk.operator.api.reconciler.Context;
5+
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
6+
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
7+
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
8+
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
9+
10+
@ControllerConfiguration
11+
public class SSAFinalizerIssueReconciler
12+
implements Reconciler<SSAFinalizerIssueCustomResource>,
13+
Cleaner<SSAFinalizerIssueCustomResource> {
14+
15+
@Override
16+
public DeleteControl cleanup(
17+
SSAFinalizerIssueCustomResource resource, Context<SSAFinalizerIssueCustomResource> context) {
18+
return DeleteControl.defaultDelete();
19+
}
20+
21+
@Override
22+
public UpdateControl<SSAFinalizerIssueCustomResource> reconcile(
23+
SSAFinalizerIssueCustomResource resource, Context<SSAFinalizerIssueCustomResource> context) {
24+
return UpdateControl.noUpdate();
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package io.javaoperatorsdk.operator.baseapi.ssaissue;
2+
3+
import java.util.List;
4+
5+
public class SSAFinalizerIssueSpec {
6+
7+
private String value;
8+
9+
private List<String> list;
10+
11+
public String getValue() {
12+
return value;
13+
}
14+
15+
public void setValue(String value) {
16+
this.value = value;
17+
}
18+
19+
public List<String> getList() {
20+
return list;
21+
}
22+
23+
public void setList(List<String> list) {
24+
this.list = list;
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.javaoperatorsdk.operator.baseapi.ssaissue;
2+
3+
public class SSAFinalizerIssueStatus {
4+
5+
private String configMapStatus;
6+
7+
public String getConfigMapStatus() {
8+
return configMapStatus;
9+
}
10+
11+
public void setConfigMapStatus(String configMapStatus) {
12+
this.configMapStatus = configMapStatus;
13+
}
14+
15+
@Override
16+
public String toString() {
17+
return "TestCustomResourceStatus{" + "configMapStatus='" + configMapStatus + '\'' + '}';
18+
}
19+
}

0 commit comments

Comments
 (0)