Skip to content

Commit 5182092

Browse files
committed
Add support for the new scope parameter, also allowing use of the legacy setting to enable easy transtion from old to new config
Signed-off-by: Knut-Erik Johnsen <[email protected]>
1 parent d31dc0a commit 5182092

File tree

1 file changed

+31
-14
lines changed

1 file changed

+31
-14
lines changed

crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/registration/CrossplaneCompositeResourceService.java

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ public class CrossplaneCompositeResourceService {
4040
public static <T extends CustomResource<?, Void>> void registerOrUpdateCompositeResource(List<String> pipelineFunctions,
4141
T compositionDefinition,
4242
KubernetesClient kubernetesClient) {
43+
registerOrUpdateCompositeResource(pipelineFunctions, compositionDefinition, kubernetesClient, false);
44+
}
45+
public static <T extends CustomResource<?, Void>> void registerOrUpdateCompositeResource(List<String> pipelineFunctions,
46+
T compositionDefinition,
47+
KubernetesClient kubernetesClient, boolean legacy) {
4348

44-
CompositeResourceDefinition compositeResourceDefinition = createCompositeResourceDefinition(compositionDefinition);
49+
CompositeResourceDefinition compositeResourceDefinition = createCompositeResourceDefinition(compositionDefinition, legacy);
4550

4651
registerOrUpdateCompositeResourceDefinition(compositeResourceDefinition, kubernetesClient);
4752

@@ -71,28 +76,40 @@ private static void registerOrUpdateCompositeResourceDefinition(CompositeResourc
7176
* @return A CompositeResourceDefintion based on the provided CustomResource
7277
* @param <T> Must extend CustomResource
7378
*/
74-
public static <T extends CustomResource<?, Void>> CompositeResourceDefinition createCompositeResourceDefinition(T compositionDefinition) { //}, Class functionMixin) {
79+
80+
public static <T extends CustomResource<?, Void>> CompositeResourceDefinition createCompositeResourceDefinition(T compositionDefinition) {
81+
return createCompositeResourceDefinition(compositionDefinition, false);
82+
}
83+
84+
/**
85+
* Create a CompositeResourceDefinition based on the provided CustomResource
86+
* If Namespaced, ClaimNames will be added in addition to Names.
87+
*
88+
* @param compositionDefinition The composition definition
89+
* @return A CompositeResourceDefintion based on the provided CustomResource
90+
* @param <T> Must extend CustomResource
91+
* @param legacy True if legacy scope should be used, otherwise the type of the compositionDefinition will be used to determine scope
92+
*/
93+
public static <T extends CustomResource<?, Void>> CompositeResourceDefinition createCompositeResourceDefinition(T compositionDefinition, boolean legacy) { //}, Class functionMixin) {
7594

7695
CompositeResourceDefinition compositeResourceDefinition = new CompositeResourceDefinition();
7796

7897
CompositeResourceDefinitionSpec spec = new CompositeResourceDefinitionSpec();
7998
spec.setGroup(compositionDefinition.getGroup());
8099

81-
String namePrefix = "";
82100

83-
if (compositionDefinition instanceof Namespaced) {
84-
ClaimNames claimNames = new ClaimNames();
85-
claimNames.setKind(compositionDefinition.getKind());
86-
claimNames.setPlural(compositionDefinition.getPlural());
87-
claimNames.setSingular(compositionDefinition.getSingular());
88-
spec.setClaimNames(claimNames);
89-
namePrefix = "x";
101+
if (legacy) {
102+
spec.setScope(CompositeResourceDefinitionSpec.Scope.LEGACYCLUSTER);
103+
} else if (compositionDefinition instanceof Namespaced) {
104+
spec.setScope(CompositeResourceDefinitionSpec.Scope.NAMESPACED);
105+
} else {
106+
spec.setScope(CompositeResourceDefinitionSpec.Scope.CLUSTER);
90107
}
91108

92109
Names names = new Names();
93-
names.setKind(namePrefix + compositionDefinition.getKind());
94-
names.setPlural(namePrefix + compositionDefinition.getPlural());
95-
names.setSingular(namePrefix + compositionDefinition.getSingular());
110+
names.setKind(compositionDefinition.getKind());
111+
names.setPlural(compositionDefinition.getPlural());
112+
names.setSingular(compositionDefinition.getSingular());
96113
spec.setNames(names);
97114

98115
Versions versions = new Versions();
@@ -102,7 +119,7 @@ public static <T extends CustomResource<?, Void>> CompositeResourceDefinition cr
102119
versions.setReferenceable(compositionDefinition.isStorage());
103120
versions.setServed(compositionDefinition.isServed());
104121

105-
compositeResourceDefinition.setMetadata(CrossplaneMetadataBuilder.createMetadata(namePrefix + compositionDefinition.getCRDName()));
122+
compositeResourceDefinition.setMetadata(CrossplaneMetadataBuilder.createMetadata(compositionDefinition.getCRDName()));
106123

107124
Schema schema = new Schema();
108125
schema.setOpenAPIV3Schema(getOpenAPIV3Schema(compositionDefinition.getClass(), CrossplaneCompositeResourceMixin.class));

0 commit comments

Comments
 (0)