Skip to content

Commit 88afbd6

Browse files
authored
Improvements (#19)
* fix: use SNAPSHOT version as is customary for working versions * fix: remove unneeded imports * fix: remove unneeded default implementation override * fix: remove unneeded dependencies * chore(deps): update to latest versions * chore(deps): update to Quarkus extension 1.9.4 * fix: no need to specify a builder image * Fixes #20: Version annotation should use the Resource's version, not the CRD's * Fixes #21: support namespaced flag & properly use it in generated code
1 parent c31bdb6 commit 88afbd6

File tree

4 files changed

+13
-50
lines changed

4 files changed

+13
-50
lines changed

pkg/quarkus/v1alpha/api.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030

3131
type createAPIOptions struct {
3232
CRDVersion string
33+
Namespaced bool
3334
}
3435

3536
type createAPISubcommand struct {
@@ -42,7 +43,7 @@ func (opts createAPIOptions) UpdateResource(res *resource.Resource) {
4243

4344
res.API = &resource.API{
4445
CRDVersion: opts.CRDVersion,
45-
Namespaced: true,
46+
Namespaced: opts.Namespaced,
4647
}
4748

4849
// Ensure that Path is empty and Controller false as this is not a Go project
@@ -57,6 +58,7 @@ var (
5758
func (p *createAPISubcommand) BindFlags(fs *pflag.FlagSet) {
5859
fs.SortFlags = false
5960
fs.StringVar(&p.options.CRDVersion, "crd-version", "v1", "crd version to generate")
61+
fs.BoolVar(&p.options.Namespaced, "namespaced", true, "resource is namespaced")
6062
}
6163

6264
func (p *createAPISubcommand) InjectConfig(c config.Config) error {

pkg/quarkus/v1alpha/scaffolds/internal/templates/controller/controller.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,10 @@ func (f *Controller) SetTemplateDefaults() error {
5151
// TODO: pass in the name of the operator i.e. replace Memcached
5252
const controllerTemplate = `package {{ .Package }};
5353
54-
import io.fabric8.kubernetes.api.model.*;
55-
import io.fabric8.kubernetes.api.model.apps.Deployment;
56-
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
57-
import io.fabric8.kubernetes.api.model.apps.DeploymentSpecBuilder;
5854
import io.fabric8.kubernetes.client.KubernetesClient;
5955
import io.javaoperatorsdk.operator.api.*;
6056
import io.javaoperatorsdk.operator.api.Context;
6157
import io.javaoperatorsdk.operator.processing.event.EventSourceManager;
62-
import java.util.HashMap;
63-
import java.util.List;
64-
import java.util.Map;
65-
import java.util.stream.Collectors;
66-
import org.apache.commons.collections.CollectionUtils;
6758
6859
@Controller
6960
public class {{ .ClassName }}Controller implements ResourceController<{{ .ClassName }}> {
@@ -88,14 +79,6 @@ public class {{ .ClassName }}Controller implements ResourceController<{{ .ClassN
8879
8980
return UpdateControl.noUpdate();
9081
}
91-
92-
@Override
93-
public DeleteControl deleteResource({{ .ClassName }} resource, Context<{{ .ClassName }}> context) {
94-
// nothing to do here...
95-
// framework takes care of deleting the resource object
96-
// k8s takes care of deleting deployment and pods because of ownerreference set
97-
return DeleteControl.DEFAULT_DELETE;
98-
}
9982
}
10083
10184
`

pkg/quarkus/v1alpha/scaffolds/internal/templates/model/model.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,17 @@ func (f *Model) SetTemplateDefaults() error {
5252
// TODO: pass in the name of the operator i.e. replace Memcached
5353
const modelTemplate = `package {{ .Package }};
5454
55-
import io.fabric8.kubernetes.api.model.Namespaced;
55+
{{if .Resource.API.Namespaced}}import io.fabric8.kubernetes.api.model.Namespaced;{{end}}
5656
import io.fabric8.kubernetes.client.CustomResource;
5757
import io.fabric8.kubernetes.model.annotation.Group;
5858
import io.fabric8.kubernetes.model.annotation.Kind;
5959
import io.fabric8.kubernetes.model.annotation.Plural;
6060
import io.fabric8.kubernetes.model.annotation.Version;
6161
62-
@Version("{{ .Resource.API.CRDVersion }}")
62+
@Version("{{ .Resource.Version }}")
6363
@Group("{{ .Resource.QualifiedGroup }}")
6464
@Kind("{{ .Resource.Kind }}")
6565
@Plural("{{ .Resource.Plural }}")
66-
public class {{ .ClassName }} extends CustomResource<{{ .ClassName }}Spec, {{ .ClassName }}Status>
67-
implements Namespaced {}
66+
public class {{ .ClassName }} extends CustomResource<{{ .ClassName }}Spec, {{ .ClassName }}Status> {{if .Resource.API.Namespaced}}implements Namespaced {{end}}{}
6867
6968
`

pkg/quarkus/v1alpha/scaffolds/internal/templates/pomxml.go

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,18 @@ const pomxmlTemplate = `<?xml version="1.0" encoding="UTF-8"?>
4848
<groupId>{{ .Package }}</groupId>
4949
<artifactId>{{ .ProjectName }}</artifactId>
5050
<name>{{ .ProjectName }}</name>
51-
<version>{{ .OperatorVersion }}</version>
51+
<version>{{ .OperatorVersion }}-SNAPSHOT</version>
5252
<packaging>jar</packaging>
5353
<properties>
5454
<compiler-plugin.version>3.8.1</compiler-plugin.version>
5555
<maven.compiler.parameters>true</maven.compiler.parameters>
5656
<maven.compiler.source>11</maven.compiler.source>
57-
<maven.compiler.target>11</maven.compiler.target>
58-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
59-
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
60-
<fabric8-client.version>5.3.0</fabric8-client.version>
61-
<quarkus-sdk.version>1.8.2</quarkus-sdk.version>
62-
<java-sdk.version>1.8.2</java-sdk.version>
63-
<quarkus.version>1.12.2.Final</quarkus.version>
64-
<quarkus.native.builder-image>quay.io/quarkus/ubi-quarkus-native-image:19.3.1-java11</quarkus.native.builder-image>
57+
<maven.compiler.target>11</maven.compiler.target>
58+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
59+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
60+
<fabric8-client.version>5.4.1</fabric8-client.version>
61+
<quarkus-sdk.version>1.9.4</quarkus-sdk.version>
62+
<quarkus.version>1.13.7.Final</quarkus.version>
6563
</properties>
6664
6765
<dependencyManagement>
@@ -88,25 +86,6 @@ const pomxmlTemplate = `<?xml version="1.0" encoding="UTF-8"?>
8886
<artifactId>quarkus-operator-sdk</artifactId>
8987
<version>${quarkus-sdk.version}</version>
9088
</dependency>
91-
<dependency>
92-
<groupId>io.fabric8</groupId>
93-
<artifactId>crd-generator-apt</artifactId>
94-
<version>${fabric8-client.version}</version>
95-
</dependency>
96-
<dependency>
97-
<groupId>io.fabric8</groupId>
98-
<artifactId>kubernetes-model-common</artifactId>
99-
</dependency>
100-
<dependency>
101-
<groupId>io.javaoperatorsdk</groupId>
102-
<artifactId>operator-framework</artifactId>
103-
<version>${java-sdk.version}</version>
104-
</dependency>
105-
<dependency>
106-
<groupId>io.quarkus</groupId>
107-
<artifactId>quarkus-container-image-jib</artifactId>
108-
<version>${quarkus.version}</version>
109-
</dependency>
11089
</dependencies>
11190
11291
<build>

0 commit comments

Comments
 (0)