You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Build Kubernetes Operators in Java without hassle. Inspired by [operator-sdk](https://github.com/operator-framework/operator-sdk).
6
+
6
7
7
-
| S.No. |Contents|
8
-
| ----- | -------- |
9
-
|[1.](#Features)|[Features](#Features)|
10
-
|[2.](#Why-build-your-own-Operator)|[Why build your own Operator?](#Why-build-your-own-Operator)|
11
-
|[3.](#Roadmap)|[Roadmap](#Roadmap)|
12
-
|[4.](#Join-us-on-Discord)|[Join us on Discord!](#Join-us-on-Discord)|
13
-
|[5.](#User-Guide)|[User Guide](#User-Guide)|
14
-
|[6.](#Usage)|[Usage](#Usage)|
15
-
|[7.](#Spring-Boot)|[Spring Boot](#Spring-Boot)|
16
-
17
-
####Features
8
+
Table of Contents
9
+
==========
10
+
11
+
1.[Features](#Features)
12
+
1.[Why build your own Operator?](#Why-build-your-own-Operator)
13
+
1.[Roadmap and Release Notes](#Roadmap-and-Release-Notes)
14
+
1.[Join us on Discord!](#Join-us-on-Discord)
15
+
1.[User Guide](#User-Guide)
16
+
1.[Usage](#Usage)
17
+
18
+
## Features
18
19
* Framework for handling Kubernetes API events
19
20
* Automatic registration of Custom Resource watches
20
21
* Retry action on failure
@@ -24,37 +25,29 @@ Check out this [blog post](https://csviri.medium.com/deep-dive-building-a-kubern
24
25
about the non-trivial yet common problems needed to be solved for every operator. In case you are interested how to
25
26
handle more complex scenarios take a look on [event sources](https://csviri.medium.com/java-operator-sdk-introduction-to-event-sources-a1aab5af4b7b).
26
27
27
-
####Why build your own Operator?
28
+
## Why build your own Operator?
28
29
* Infrastructure automation using the power and flexibility of Java. See [blog post](https://blog.container-solutions.com/cloud-native-java-infrastructure-automation-with-kubernetes-operators).
29
30
* Provisioning of complex applications - avoiding Helm chart hell
30
31
* Integration with Cloud services - e.g. Secret stores
31
32
* Safer deployment of applications - only expose cluster to users by Custom Resources
32
33
33
-
#### Roadmap
34
+
## Roadmap and Release Notes
35
+
34
36
* Testing of the framework and all samples while running on a real cluster.
35
37
* Generate a project skeleton
36
38
* Generate Java classes from CRD
37
-
* Integrate with Quarkus (including native image build)
38
39
* Integrate with OLM (Operator Lifecycle Manager)
39
40
40
-
#### Join us on Discord!
41
-
42
-
[Discord Invite Link](https://discord.gg/DacEhAy)
41
+
#### Overview of the 1.9.0 changes
43
42
44
-
#### User Guide
45
-
46
-
You can (will) find detailed documentation [here](docs/DOCS.md).
47
-
Note that these docs are currently in progress.
48
-
49
-
> :warning: 1.7.0 Upgrade
50
-
> The 1.7.0 upgrade comes with big changes due to the update to the 5.0.0 version of the fabric8
51
-
> Kubernetes client. While this should improve the user experience quite nicely, there are a couple
52
-
> of things to be aware of when upgrading from a previous version as detailed below.
43
+
- The Spring Boot starters have been moved to their own repositories and are now found at:
The operator will, by default, query the deployed CRDs to check that the `CustomResource`
176
166
implementations match what is known to the cluster. This requires an additional query to the cluster
177
167
and, sometimes, elevated privileges for the operator to be able to read the CRDs from the cluster.
178
168
This validation is mostly meant to help users new to operator development get started and avoid
179
169
common mistakes. Advanced users or production deployments might want to skip this step. This is done
180
-
by setting
181
-
the `CHECK_CRD_ENV_KEY` environment variable to `false`. Quarkus users can also add
182
-
`quarkus.operator-sdk.check-crd-and-validate-local-model=false` to their `application.properties` for the
183
-
same purpose. Spring Boot users can set the property `javaoperatorsdk.check-crd-and-validate-local-model`
184
-
to `false`.
170
+
by setting the `CHECK_CRD_ENV_KEY` environment variable to `false`.
185
171
186
-
####Automatic generation of CRDs
172
+
### Automatic generation of CRDs
187
173
188
174
To automatically generate CRD manifests from your annotated Custom Resource classes, you only need
189
175
to add the following dependencies to your project:
190
176
191
177
```xml
192
178
<dependency>
193
179
<groupId>io.fabric8</groupId>
194
-
<artifactId>crd-generator</artifactId>
195
-
<scope>compile</scope>
196
-
</dependency>
197
-
<!-- This dependency will not be needed anymore in a future release of the kubernetes-client -->
198
-
<dependency>
199
-
<groupId>io.fabric8</groupId>
200
-
<artifactId>kubernetes-model-common</artifactId>
180
+
<artifactId>crd-generator-apt</artifactId>
181
+
<scope>provided</scope>
201
182
</dependency>
202
183
```
203
184
@@ -209,8 +190,10 @@ a `mycrs` plural form will result in 2 files:
209
190
-`mycrs.java-operator-sdk.io-v1.yml`
210
191
-`mycrs.java-operator-sdk.io-v1beta1.yml`
211
192
193
+
**NOTE:**
194
+
> Quarkus users using the `quarkus-operator-sdk` extension do not need to add any extra dependency to get their CRD generated as this is handled by the extension itself.
212
195
213
-
####Quarkus
196
+
### Quarkus
214
197
215
198
A [Quarkus](https://quarkus.io) extension is also provided to ease the development of Quarkus-based operators.
216
199
@@ -247,7 +230,7 @@ public class QuarkusOperator implements QuarkusApplication {
247
230
}
248
231
```
249
232
250
-
####Spring Boot
233
+
### Spring Boot
251
234
252
235
You can also let Spring Boot wire your application together and automatically register the controllers.
0 commit comments