Skip to content

Commit 57d4f1c

Browse files
knutejohnylend95
andauthored
Backports/1.17 custom (#23)
* Include namePrefix in CRD name of CompositionResourceDefinition as CRD name must match plural.group (#20) Signed-off-by: Jesper Nylend <[email protected]> * Wrap the generator to avoid refs in the generated schema Signed-off-by: Knut-Erik Johnsen <[email protected]> --------- Signed-off-by: Jesper Nylend <[email protected]> Signed-off-by: Knut-Erik Johnsen <[email protected]> Co-authored-by: Jesper Nylend <[email protected]>
1 parent 4a23c6b commit 57d4f1c

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ private static void registerOrUpdateCompositeResourceDefinition(CompositeResourc
7474
public static <T extends CustomResource<?, Void>> CompositeResourceDefinition createCompositeResourceDefinition(T compositionDefinition) { //}, Class functionMixin) {
7575

7676
CompositeResourceDefinition compositeResourceDefinition = new CompositeResourceDefinition();
77-
compositeResourceDefinition.setMetadata(CrossplaneMetadataBuilder.createMetadata(compositionDefinition.getCRDName()));
7877

7978
CompositeResourceDefinitionSpec spec = new CompositeResourceDefinitionSpec();
8079
spec.setGroup(compositionDefinition.getGroup());
@@ -99,10 +98,11 @@ public static <T extends CustomResource<?, Void>> CompositeResourceDefinition cr
9998
Versions versions = new Versions();
10099
versions.setName(compositionDefinition.getVersion());
101100

102-
// This is not 100%. isStorage vs referencable. Need to check the crossplan docs
101+
// This is not 100%. isStorage vs referencable. Need to check the crossplane docs
103102
versions.setReferenceable(compositionDefinition.isStorage());
104103
versions.setServed(compositionDefinition.isServed());
105104

105+
compositeResourceDefinition.setMetadata(CrossplaneMetadataBuilder.createMetadata(namePrefix + compositionDefinition.getCRDName()));
106106

107107
Schema schema = new Schema();
108108
schema.setOpenAPIV3Schema(getOpenAPIV3Schema(compositionDefinition.getClass(), CrossplaneCompositeResourceMixin.class));

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package io.crossplane.compositefunctions.starter.registration;
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
4+
import com.fasterxml.jackson.databind.JavaType;
45
import com.fasterxml.jackson.databind.ObjectMapper;
56
import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatTypes;
67
import com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema;
78
import com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchemaGenerator;
9+
import com.fasterxml.jackson.module.jsonSchema.jakarta.factories.SchemaFactoryWrapper;
10+
import com.fasterxml.jackson.module.jsonSchema.jakarta.factories.VisitorContext;
811
import com.fasterxml.jackson.module.jsonSchema.jakarta.types.ArraySchema;
912
import io.crossplane.apiextensions.v1.compositeresourcedefinitionspec.versions.schema.OpenAPIV3Schema;
1013
import io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps;
@@ -29,7 +32,17 @@ public static OpenAPIV3Schema getOpenAPIV3Schema(Class clazz, Class mixin) {
2932
//Add mixin class to ignore id field as OpenShift does not support it.
3033
mapper.addMixIn(clazz, mixin);
3134
// apper.addMixIn(ObjectMeta.class, MetadataIgnorer.class);
32-
JsonSchemaGenerator generator = new JsonSchemaGenerator(mapper);
35+
36+
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
37+
visitor.setVisitorContext(new VisitorContext(){
38+
@Override
39+
public String addSeenSchemaUri(JavaType aSeenSchema) {
40+
return javaTypeToUrn(aSeenSchema);
41+
}
42+
});
43+
44+
45+
JsonSchemaGenerator generator = new JsonSchemaGenerator(mapper, visitor);
3346
JsonSchema jsonSchema = generator.generateSchema(clazz);
3447

3548
removeIdField(jsonSchema);

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>org.springframework.boot</groupId>
88
<artifactId>spring-boot-starter-parent</artifactId>
9-
<version>3.3.1</version>
9+
<version>3.3.3</version>
1010
</parent>
1111

1212
<groupId>io.crossplane.compositefunctions</groupId>
@@ -25,8 +25,8 @@
2525
<maven.compiler.source>17</maven.compiler.source>
2626

2727
<!-- Dependency versions -->
28-
<spring-boot.version>3.3.1</spring-boot.version>
29-
<kubernetes-client.version>6.13.0</kubernetes-client.version>
28+
<spring-boot.version>3.3.3</spring-boot.version>
29+
<kubernetes-client.version>6.13.3</kubernetes-client.version>
3030
<os-maven-plugin.version>1.7.1</os-maven-plugin.version>
3131
<protobuf.version>3.25.1</protobuf.version>
3232
<grpc.version>1.63.0</grpc.version>

0 commit comments

Comments
 (0)