Skip to content

Commit b3d76cb

Browse files
authored
Merge pull request operator-framework#345 from java-operator-sdk/5.1-upgrade
chore: update to Quarkus 1.12.0 and fabric8 kubernetes-client 5.1.0
2 parents e13767c + d4d22d4 commit b3d76cb

File tree

19 files changed

+188
-59
lines changed

19 files changed

+188
-59
lines changed

README.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -180,28 +180,21 @@ to your project:
180180
</dependency>
181181
```
182182

183-
Create an Application, Quarkus will automatically create and inject a `KubernetesClient`, `Operator`
184-
and `ConfigurationService` instances that your application can use, as shown below:
183+
Create an Application, Quarkus will automatically create and inject a `KubernetesClient`, `Operator`, `ConfigurationService` and `ResourceController` instances that your application can use. Below, you can see the minimal code you need to write to get your operator and controllers up and running:
185184

186185
```java
187186
@QuarkusMain
188187
public class QuarkusOperator implements QuarkusApplication {
189188

190-
@Inject KubernetesClient client;
191-
192189
@Inject Operator operator;
193190

194-
@Inject ConfigurationService configuration;
195-
196191
public static void main(String... args) {
197192
Quarkus.run(QuarkusOperator.class, args);
198193
}
199194

200195
@Override
201196
public int run(String... args) throws Exception {
202-
final var config = configuration.getConfigurationFor(new CustomServiceController(client));
203-
System.out.println("CR class: " + config.getCustomResourceClass());
204-
197+
operator.start();
205198
Quarkus.waitForExit();
206199
return 0;
207200
}

operator-framework-quarkus-extension/pom.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2020
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2121
<maven.compiler.parameters>true</maven.compiler.parameters>
22-
<quarkus.version>1.11.3.Final</quarkus.version>
22+
<quarkus.version>1.12.0.Final</quarkus.version>
2323
<compiler-plugin.version>3.8.1</compiler-plugin.version>
2424
<maven.surefire.version>3.0.0-M5</maven.surefire.version>
2525
</properties>
@@ -31,6 +31,13 @@
3131
</modules>
3232
<dependencyManagement>
3333
<dependencies>
34+
<dependency>
35+
<groupId>io.fabric8</groupId>
36+
<artifactId>kubernetes-client-bom</artifactId>
37+
<version>${fabric8-client.version}</version>
38+
<type>pom</type>
39+
<scope>import</scope>
40+
</dependency>
3441
<dependency>
3542
<groupId>io.quarkus</groupId>
3643
<artifactId>quarkus-bom</artifactId>

operator-framework-spring-boot-starter-test/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55
<modelVersion>4.0.0</modelVersion>
66

7+
<name>Operator SDK - Spring Boot Starter - Tests</name>
78
<artifactId>operator-framework-spring-boot-starter-test</artifactId>
89

910
<parent>

operator-framework-spring-boot-starter-test/src/test/java/io/javaoperatorsdk/operator/springboot/starter/test/EnableMockOperatorTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,16 @@ void testCrdLoaded() {
2323
assertThat(applicationContext.getBean(Operator.class)).isNotNull();
2424
assertThat(
2525
client
26+
.apiextensions()
27+
.v1()
2628
.customResourceDefinitions()
2729
.withName("customservices.sample.javaoperatorsdk")
2830
.get())
2931
.isNotNull();
3032
assertThat(
3133
client
34+
.apiextensions()
35+
.v1()
3236
.customResourceDefinitions()
3337
.withName("customservices.global.sample.javaoperatorsdk")
3438
.get())

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import io.fabric8.kubernetes.api.model.Namespace;
88
import io.fabric8.kubernetes.api.model.NamespaceBuilder;
99
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
10-
import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition;
10+
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
1111
import io.fabric8.kubernetes.client.CustomResource;
1212
import io.fabric8.kubernetes.client.KubernetesClient;
1313
import io.fabric8.kubernetes.client.dsl.MixedOperation;
@@ -70,10 +70,17 @@ public void initialize(
7070
log.info("Operator is running with {}", controller.getClass().getCanonicalName());
7171
}
7272

73-
public CustomResourceDefinition loadCRDAndApplyToCluster(String classPathYaml) {
74-
CustomResourceDefinition crd = loadYaml(CustomResourceDefinition.class, classPathYaml);
75-
k8sClient.customResourceDefinitions().createOrReplace(crd);
76-
return crd;
73+
public void loadCRDAndApplyToCluster(String classPathYaml) {
74+
var crd = loadYaml(CustomResourceDefinition.class, classPathYaml);
75+
if ("apiextensions.k8s.io/v1".equals(crd.getApiVersion())) {
76+
k8sClient.apiextensions().v1().customResourceDefinitions().createOrReplace(crd);
77+
} else {
78+
var crd2 =
79+
loadYaml(
80+
io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition.class,
81+
classPathYaml);
82+
k8sClient.apiextensions().v1beta1().customResourceDefinitions().createOrReplace(crd2);
83+
}
7784
}
7885

7986
public void cleanup() {

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/doubleupdate/DoubleUpdateTestCustomResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
import io.fabric8.kubernetes.client.CustomResource;
55
import io.fabric8.kubernetes.model.annotation.Group;
66
import io.fabric8.kubernetes.model.annotation.Kind;
7+
import io.fabric8.kubernetes.model.annotation.ShortNames;
78
import io.fabric8.kubernetes.model.annotation.Version;
89

910
@Group("sample.javaoperatorsdk")
1011
@Version("v1")
1112
@Kind("DoubleUpdateSample")
13+
@ShortNames("du")
1214
public class DoubleUpdateTestCustomResource
1315
extends CustomResource<DoubleUpdateTestCustomResourceSpec, DoubleUpdateTestCustomResourceStatus>
1416
implements Namespaced {}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/event/EventSourceTestCustomResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
import io.fabric8.kubernetes.client.CustomResource;
55
import io.fabric8.kubernetes.model.annotation.Group;
66
import io.fabric8.kubernetes.model.annotation.Kind;
7+
import io.fabric8.kubernetes.model.annotation.ShortNames;
78
import io.fabric8.kubernetes.model.annotation.Version;
89

910
@Group("sample.javaoperatorsdk")
1011
@Version("v1")
1112
@Kind("Eventsourcesample")
13+
@ShortNames("es")
1214
public class EventSourceTestCustomResource
1315
extends CustomResource<EventSourceTestCustomResourceSpec, EventSourceTestCustomResourceStatus>
1416
implements Namespaced {}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/retry/RetryTestCustomResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
import io.fabric8.kubernetes.client.CustomResource;
55
import io.fabric8.kubernetes.model.annotation.Group;
66
import io.fabric8.kubernetes.model.annotation.Kind;
7+
import io.fabric8.kubernetes.model.annotation.ShortNames;
78
import io.fabric8.kubernetes.model.annotation.Version;
89

910
@Group("sample.javaoperatorsdk")
1011
@Version("v1")
1112
@Kind("retrysample")
13+
@ShortNames("rs")
1214
public class RetryTestCustomResource
1315
extends CustomResource<RetryTestCustomResourceSpec, RetryTestCustomResourceStatus>
1416
implements Namespaced {}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
import io.fabric8.kubernetes.client.CustomResource;
55
import io.fabric8.kubernetes.model.annotation.Group;
66
import io.fabric8.kubernetes.model.annotation.Kind;
7+
import io.fabric8.kubernetes.model.annotation.ShortNames;
78
import io.fabric8.kubernetes.model.annotation.Version;
89

910
@Group("sample.javaoperatorsdk")
1011
@Version("v1")
1112
@Kind("CustomService")
13+
@ShortNames("cs")
1214
public class TestCustomResource
1315
extends CustomResource<TestCustomResourceSpec, TestCustomResourceStatus>
1416
implements Namespaced {}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomResourceController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public UpdateControl<TestCustomResource> createOrUpdateResource(
110110
}
111111
resource.getStatus().setConfigMapStatus("ConfigMap Ready");
112112
}
113-
return UpdateControl.updateCustomResource(resource);
113+
return UpdateControl.updateStatusSubResource(resource);
114114
}
115115

116116
private Map<String, String> configMapData(TestCustomResource resource) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
import io.fabric8.kubernetes.model.annotation.Group;
66
import io.fabric8.kubernetes.model.annotation.Kind;
77
import io.fabric8.kubernetes.model.annotation.Plural;
8+
import io.fabric8.kubernetes.model.annotation.ShortNames;
89
import io.fabric8.kubernetes.model.annotation.Version;
910

1011
@Group("sample.javaoperatorsdk")
1112
@Version("v1")
1213
@Kind("SubresourceSample")
1314
@Plural("subresourcesample")
15+
@ShortNames("ss")
1416
public class SubResourceTestCustomResource
1517
extends CustomResource<SubResourceTestCustomResourceSpec, SubResourceTestCustomResourceStatus>
1618
implements Namespaced {}
Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
1-
apiVersion: apiextensions.k8s.io/v1beta1
1+
apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
name: doubleupdatesamples.sample.javaoperatorsdk
55
spec:
66
group: sample.javaoperatorsdk
7-
version: v1
8-
subresources:
9-
status: {}
10-
scope: Namespaced
117
names:
8+
kind: DoubleUpdateSample
129
plural: doubleupdatesamples
1310
singular: doubleupdatesample
14-
kind: DoubleUpdateSample
15-
shortNames:
16-
- du
11+
scope: Namespaced
12+
versions:
13+
- name: v1
14+
schema:
15+
openAPIV3Schema:
16+
properties:
17+
status:
18+
properties:
19+
state:
20+
type: string
21+
enum:
22+
- "SUCCESS"
23+
- "ERROR"
24+
type: object
25+
spec:
26+
properties:
27+
value:
28+
type: string
29+
type: object
30+
type: object
31+
served: true
32+
storage: true
33+
subresources:
34+
status: { }
Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
1-
apiVersion: apiextensions.k8s.io/v1beta1
1+
apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
name: eventsourcesamples.sample.javaoperatorsdk
55
spec:
66
group: sample.javaoperatorsdk
7-
version: v1
8-
subresources:
9-
status: { }
10-
scope: Namespaced
117
names:
8+
kind: Eventsourcesample
129
plural: eventsourcesamples
1310
singular: eventsourcesample
14-
kind: Eventsourcesample
15-
shortNames:
16-
- es
11+
scope: Namespaced
12+
versions:
13+
- name: v1
14+
schema:
15+
openAPIV3Schema:
16+
properties:
17+
status:
18+
properties:
19+
state:
20+
type: string
21+
enum:
22+
- "SUCCESS"
23+
- "ERROR"
24+
type: object
25+
spec:
26+
properties:
27+
value:
28+
type: string
29+
type: object
30+
type: object
31+
served: true
32+
storage: true
33+
subresources:
34+
status: { }
Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
1-
apiVersion: apiextensions.k8s.io/v1beta1
1+
apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
name: retrysamples.sample.javaoperatorsdk
55
spec:
66
group: sample.javaoperatorsdk
7-
version: v1
8-
subresources:
9-
status: { }
10-
scope: Namespaced
117
names:
8+
kind: retrysample
129
plural: retrysamples
1310
singular: retrysample
14-
kind: retrysample
15-
shortNames:
16-
- rs
11+
scope: Namespaced
12+
versions:
13+
- name: v1
14+
schema:
15+
openAPIV3Schema:
16+
properties:
17+
status:
18+
properties:
19+
state:
20+
type: string
21+
enum:
22+
- "SUCCESS"
23+
- "ERROR"
24+
type: object
25+
spec:
26+
properties:
27+
value:
28+
type: string
29+
type: object
30+
type: object
31+
served: true
32+
storage: true
33+
subresources:
34+
status: { }
Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
1-
apiVersion: apiextensions.k8s.io/v1beta1
1+
apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
name: subresourcesample.sample.javaoperatorsdk
55
spec:
66
group: sample.javaoperatorsdk
7-
version: v1
8-
subresources:
9-
status: { }
10-
scope: Namespaced
117
names:
8+
kind: SubresourceSample
129
plural: subresourcesample
1310
singular: subresourcesample
14-
kind: SubresourceSample
15-
shortNames:
16-
- ss
11+
scope: Namespaced
12+
versions:
13+
- name: v1
14+
schema:
15+
openAPIV3Schema:
16+
properties:
17+
status:
18+
properties:
19+
state:
20+
type: string
21+
enum:
22+
- "SUCCESS"
23+
- "ERROR"
24+
type: object
25+
spec:
26+
properties:
27+
value:
28+
type: string
29+
type: object
30+
type: object
31+
served: true
32+
storage: true
33+
subresources:
34+
status: { }

0 commit comments

Comments
 (0)