Skip to content

Commit b412821

Browse files
iocanelmetacosm
authored andcommitted
refactor: Allow creating an Operator without a KubernetesClient instance.
1 parent 520e615 commit b412821

File tree

6 files changed

+26
-28
lines changed

6 files changed

+26
-28
lines changed

Diff for: README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,7 @@ controller.
135135
public class Runner {
136136

137137
public static void main(String[] args) {
138-
Operator operator = new Operator(new DefaultKubernetesClient(),
139-
DefaultConfigurationService.instance());
138+
Operator operator = new Operator(DefaultConfigurationService.instance());
140139
operator.register(new WebServerController());
141140
}
142141
}

Diff for: docs/documentation/use-samples.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ controller.
5050
public class Runner {
5151

5252
public static void main(String[] args) {
53-
Operator operator = new Operator(new DefaultKubernetesClient(),
54-
DefaultConfigurationService.instance());
53+
Operator operator = new Operator(DefaultConfigurationService.instance());
5554
operator.register(new WebServerController());
5655
}
5756
}

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

+12-7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.slf4j.LoggerFactory;
1212

1313
import io.fabric8.kubernetes.client.CustomResource;
14+
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
1415
import io.fabric8.kubernetes.client.KubernetesClient;
1516
import io.fabric8.kubernetes.client.Version;
1617
import io.javaoperatorsdk.operator.api.ResourceController;
@@ -22,12 +23,16 @@
2223
@SuppressWarnings("rawtypes")
2324
public class Operator implements AutoCloseable {
2425
private static final Logger log = LoggerFactory.getLogger(Operator.class);
25-
private final KubernetesClient k8sClient;
26+
private final KubernetesClient kubernetesClient;
2627
private final ConfigurationService configurationService;
2728
private final ControllerManager controllers = new ControllerManager();
2829

29-
public Operator(KubernetesClient k8sClient, ConfigurationService configurationService) {
30-
this.k8sClient = k8sClient;
30+
public Operator(ConfigurationService configurationService) {
31+
this(new DefaultKubernetesClient(), configurationService);
32+
}
33+
34+
public Operator(KubernetesClient kubernetesClient, ConfigurationService configurationService) {
35+
this.kubernetesClient = kubernetesClient;
3136
this.configurationService = configurationService;
3237
}
3338

@@ -37,7 +42,7 @@ public void installShutdownHook() {
3742
}
3843

3944
public KubernetesClient getKubernetesClient() {
40-
return k8sClient;
45+
return kubernetesClient;
4146
}
4247

4348
public ConfigurationService getConfigurationService() {
@@ -65,7 +70,7 @@ public void start() {
6570

6671
log.info("Client version: {}", Version.clientVersion());
6772
try {
68-
final var k8sVersion = k8sClient.getVersion();
73+
final var k8sVersion = kubernetesClient.getVersion();
6974
if (k8sVersion != null) {
7075
log.info("Server version: {}.{}", k8sVersion.getMajor(), k8sVersion.getMinor());
7176
}
@@ -93,7 +98,7 @@ public void close() {
9398
controllers.close();
9499

95100
ExecutorServiceManager.close();
96-
k8sClient.close();
101+
kubernetesClient.close();
97102
}
98103

99104
/**
@@ -138,7 +143,7 @@ public <R extends CustomResource> void register(
138143
configuration = existing;
139144
}
140145
final var configuredController =
141-
new ConfiguredController(controller, configuration, k8sClient);
146+
new ConfiguredController(controller, configuration, kubernetesClient);
142147
controllers.add(configuredController);
143148

144149
final var watchedNS =

Diff for: samples/common/src/main/java/io/javaoperatorsdk/operator/sample/CustomServiceController.java

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.fabric8.kubernetes.api.model.ServiceBuilder;
99
import io.fabric8.kubernetes.api.model.ServicePort;
1010
import io.fabric8.kubernetes.api.model.ServiceSpec;
11+
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
1112
import io.fabric8.kubernetes.client.KubernetesClient;
1213
import io.javaoperatorsdk.operator.api.Context;
1314
import io.javaoperatorsdk.operator.api.Controller;
@@ -24,6 +25,10 @@ public class CustomServiceController implements ResourceController<CustomService
2425

2526
private final KubernetesClient kubernetesClient;
2627

28+
public CustomServiceController() {
29+
this(new DefaultKubernetesClient());
30+
}
31+
2732
public CustomServiceController(KubernetesClient kubernetesClient) {
2833
this.kubernetesClient = kubernetesClient;
2934
}
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package io.javaoperatorsdk.operator.sample;
22

3-
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
4-
import io.fabric8.kubernetes.client.KubernetesClient;
53
import io.javaoperatorsdk.operator.Operator;
64
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider;
75
import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService;
86

97
public class PureJavaApplicationRunner {
108

119
public static void main(String[] args) {
12-
KubernetesClient client = new DefaultKubernetesClient();
13-
Operator operator = new Operator(client,
14-
ConfigurationServiceOverrider.override(DefaultConfigurationService.instance())
10+
Operator operator =
11+
new Operator(ConfigurationServiceOverrider.override(DefaultConfigurationService.instance())
1512
.withConcurrentReconciliationThreads(2)
1613
.build());
17-
operator.register(new CustomServiceController(client));
14+
operator.register(new CustomServiceController());
1815
operator.start();
1916
}
2017
}

Diff for: samples/spring-boot-plain/src/main/java/io/javaoperatorsdk/operator/sample/Config.java

+4-11
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import org.springframework.context.annotation.Bean;
66
import org.springframework.context.annotation.Configuration;
77

8-
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
9-
import io.fabric8.kubernetes.client.KubernetesClient;
108
import io.javaoperatorsdk.operator.Operator;
119
import io.javaoperatorsdk.operator.api.ResourceController;
1210
import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService;
@@ -15,19 +13,14 @@
1513
public class Config {
1614

1715
@Bean
18-
public KubernetesClient kubernetesClient() {
19-
return new DefaultKubernetesClient();
20-
}
21-
22-
@Bean
23-
public CustomServiceController customServiceController(KubernetesClient client) {
24-
return new CustomServiceController(client);
16+
public CustomServiceController customServiceController() {
17+
return new CustomServiceController();
2518
}
2619

2720
// Register all controller beans
2821
@Bean(initMethod = "start", destroyMethod = "stop")
29-
public Operator operator(KubernetesClient client, List<ResourceController> controllers) {
30-
Operator operator = new Operator(client, DefaultConfigurationService.instance());
22+
public Operator operator(List<ResourceController> controllers) {
23+
Operator operator = new Operator(DefaultConfigurationService.instance());
3124
controllers.forEach(operator::register);
3225
return operator;
3326
}

0 commit comments

Comments
 (0)