Skip to content

Commit 39d6e23

Browse files
committed
fix: multiple versions should actually not be supported
See #94
1 parent eadbdde commit 39d6e23

File tree

3 files changed

+6
-22
lines changed

3 files changed

+6
-22
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.io.IOException;
55
import java.net.ConnectException;
66
import java.util.ArrayList;
7-
import java.util.Collections;
87
import java.util.HashMap;
98
import java.util.List;
109
import java.util.Map;
@@ -164,10 +163,6 @@ static class ControllerManager implements Closeable {
164163
private final Map<String, ConfiguredController> controllers = new HashMap<>();
165164
private boolean started = false;
166165

167-
synchronized Map<String, ConfiguredController> getControllers() {
168-
return Collections.unmodifiableMap(controllers);
169-
}
170-
171166
public synchronized void shouldStart() {
172167
if (started) {
173168
return;
@@ -203,15 +198,13 @@ public synchronized void close() {
203198
public synchronized void add(ConfiguredController configuredController) {
204199
final var configuration = configuredController.getConfiguration();
205200
final var crdName = configuration.getCRDName();
206-
final var version = configuration.getCustomResourceVersion();
207-
final var key = crdName + "/" + version;
208-
final var existing = controllers.get(key);
201+
final var existing = controllers.get(crdName);
209202
if (existing != null) {
210203
throw new OperatorException("Cannot register controller '" + configuration.getName()
211-
+ "': another controller (" + existing.getConfiguration().getName()
212-
+ ") is already registered for CRD '" + crdName + "' (version: " + version + ")");
204+
+ "': another controller named '" + existing.getConfiguration().getName()
205+
+ "' is already registered for CRD '" + crdName + "'");
213206
}
214-
this.controllers.put(key, configuredController);
207+
this.controllers.put(crdName, configuredController);
215208
if (started) {
216209
configuredController.start();
217210
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.Collections;
55
import java.util.Set;
66

7-
import io.fabric8.kubernetes.api.model.HasMetadata;
87
import io.fabric8.kubernetes.client.CustomResource;
98
import io.javaoperatorsdk.operator.ControllerUtils;
109
import io.javaoperatorsdk.operator.api.Controller;
@@ -21,10 +20,6 @@ default String getCRDName() {
2120
return CustomResource.getCRDName(getCustomResourceClass());
2221
}
2322

24-
default String getCustomResourceVersion() {
25-
return HasMetadata.getVersion(getCustomResourceClass());
26-
}
27-
2823
default String getFinalizer() {
2924
return ControllerUtils.getDefaultFinalizerName(getCRDName());
3025
}

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ControllerManagerTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import io.javaoperatorsdk.operator.sample.simple.TestCustomResourceControllerV2;
1414
import io.javaoperatorsdk.operator.sample.simple.TestCustomResourceV2;
1515

16-
import static org.junit.jupiter.api.Assertions.assertEquals;
17-
1816
public class ControllerManagerTest {
1917

2018
@Test(expected = OperatorException.class)
@@ -27,17 +25,15 @@ public void shouldNotAddMultipleControllersForSameCustomResource() {
2725
config(TestCustomResource.class), null));
2826
}
2927

30-
@Test
31-
public void addingMultipleControllersForCustomResourcesWithDifferentVersionsShouldWork() {
28+
@Test(expected = OperatorException.class)
29+
public void addingMultipleControllersForCustomResourcesWithDifferentVersionsShouldNotWork() {
3230
final var controllerManager = new ControllerManager();
3331
controllerManager
3432
.add(new ConfiguredController<>(new TestCustomResourceController(null),
3533
config(TestCustomResource.class), null));
3634
controllerManager
3735
.add(new ConfiguredController<>(new TestCustomResourceControllerV2(), config(
3836
TestCustomResourceV2.class), null));
39-
final var controllers = controllerManager.getControllers();
40-
assertEquals(2, controllers.size());
4137
}
4238

4339
private <R extends CustomResource<?, ?>> ControllerConfiguration<R> config(Class<R> crClass) {

0 commit comments

Comments
 (0)