Skip to content

Commit 5bc9d4d

Browse files
committed
feat: add getPlural method on GroupVersionKind
Signed-off-by: Chris Laprun <claprun@redhat.com>
1 parent 1b8b92b commit 5bc9d4d

File tree

4 files changed

+25
-12
lines changed

4 files changed

+25
-12
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/GroupVersionKind.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22

33
import java.util.Objects;
44

5+
import io.fabric8.kubernetes.api.Pluralize;
56
import io.fabric8.kubernetes.api.model.HasMetadata;
67

78
public class GroupVersionKind {
89
private final String group;
910
private final String version;
1011
private final String kind;
12+
private final String plural;
13+
private final String apiVersion;
1114

1215
public GroupVersionKind(String apiVersion, String kind) {
1316
this.kind = kind;
@@ -19,17 +22,26 @@ public GroupVersionKind(String apiVersion, String kind) {
1922
this.group = groupAndVersion[0];
2023
this.version = groupAndVersion[1];
2124
}
25+
this.plural = Pluralize.toPlural(kind);
26+
this.apiVersion = apiVersion;
2227
}
2328

2429
public GroupVersionKind(String group, String version, String kind) {
30+
this(group, version, kind, null);
31+
}
32+
33+
public GroupVersionKind(String group, String version, String kind, String plural) {
2534
this.group = group;
2635
this.version = version;
2736
this.kind = kind;
37+
this.plural = plural != null ? plural : Pluralize.toPlural(kind);
38+
this.apiVersion = (group == null || group.isBlank()) ? version : group + "/" + version;
2839
}
2940

3041
public static GroupVersionKind gvkFor(Class<? extends HasMetadata> resourceClass) {
3142
return new GroupVersionKind(HasMetadata.getGroup(resourceClass),
32-
HasMetadata.getVersion(resourceClass), HasMetadata.getKind(resourceClass));
43+
HasMetadata.getVersion(resourceClass), HasMetadata.getKind(resourceClass),
44+
HasMetadata.getPlural(resourceClass));
3345
}
3446

3547
public String getGroup() {
@@ -44,8 +56,12 @@ public String getKind() {
4456
return kind;
4557
}
4658

59+
public String getPlural() {
60+
return plural;
61+
}
62+
4763
public String apiVersion() {
48-
return group == null || group.isBlank() ? version : group + "/" + version;
64+
return apiVersion;
4965
}
5066

5167
@Override
@@ -55,13 +71,12 @@ public boolean equals(Object o) {
5571
if (o == null || getClass() != o.getClass())
5672
return false;
5773
GroupVersionKind that = (GroupVersionKind) o;
58-
return Objects.equals(group, that.group) && Objects.equals(version, that.version)
59-
&& Objects.equals(kind, that.kind);
74+
return Objects.equals(apiVersion, that.apiVersion) && Objects.equals(kind, that.kind);
6075
}
6176

6277
@Override
6378
public int hashCode() {
64-
return Objects.hash(group, version, kind);
79+
return Objects.hash(apiVersion, kind);
6580
}
6681

6782
@Override

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationReconciler.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,12 @@ private ConfigMap configMap(DynamicGenericEventSourceRegistrationCustomResource
6666
return cm;
6767
}
6868

69-
private GroupVersionKind gvkFor(Class<? extends HasMetadata> clazz) {
70-
return new GroupVersionKind(HasMetadata.getApiVersion(clazz), HasMetadata.getKind(clazz));
71-
}
72-
7369
private InformerEventSource<GenericKubernetesResource, DynamicGenericEventSourceRegistrationCustomResource> genericInformerFor(
7470
Class<? extends HasMetadata> clazz,
7571
Context<DynamicGenericEventSourceRegistrationCustomResource> context) {
7672

7773
return new InformerEventSource<>(
78-
InformerConfiguration.from(gvkFor(clazz),
74+
InformerConfiguration.from(GroupVersionKind.gvkFor(clazz),
7975
context.eventSourceRetriever().eventSourceContextForDynamicRegistration()).build(),
8076
context.eventSourceRetriever().eventSourceContextForDynamicRegistration());
8177
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/generickubernetesresource/generickubernetesdependentresourcemanaged/ConfigMapGenericKubernetesDependent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.io.InputStream;
55
import java.util.Map;
66

7+
import io.fabric8.kubernetes.api.model.ConfigMap;
78
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
89
import io.javaoperatorsdk.operator.api.reconciler.Context;
910
import io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected;
@@ -24,7 +25,7 @@ public class ConfigMapGenericKubernetesDependent extends
2425
public static final String KEY = "key";
2526

2627
public ConfigMapGenericKubernetesDependent() {
27-
super(new GroupVersionKind("", VERSION, KIND));
28+
super(GroupVersionKind.gvkFor(ConfigMap.class));
2829
}
2930

3031
@Override

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/generickubernetesresource/generickubernetesdependentstandalone/ConfigMapGenericKubernetesDependent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.io.InputStream;
55
import java.util.Map;
66

7+
import io.fabric8.kubernetes.api.model.ConfigMap;
78
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
89
import io.javaoperatorsdk.operator.api.reconciler.Context;
910
import io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected;
@@ -24,7 +25,7 @@ public class ConfigMapGenericKubernetesDependent extends
2425
public static final String KEY = "key";
2526

2627
public ConfigMapGenericKubernetesDependent() {
27-
super(new GroupVersionKind("", VERSION, KIND));
28+
super(GroupVersionKind.gvkFor(ConfigMap.class));
2829
}
2930

3031
@Override

0 commit comments

Comments
 (0)