Skip to content

Commit 863c6e7

Browse files
committed
Rename from extra to required resources. Add support for bootstrap requirements for functions. Add support for ttl for function responses. Better flexibility in the registration of functions
Signed-off-by: Knut-Erik Johnsen <[email protected]>
1 parent 887a646 commit 863c6e7

14 files changed

+176
-20
lines changed

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositeresourcedefinitions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: compositeresourcedefinitions.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositionrevisions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: compositionrevisions.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: compositions.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_environmentconfigs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: environmentconfigs.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_managedresourceactivationpolicies.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: managedresourceactivationpolicies.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_managedresourcedefinitions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: managedresourcedefinitions.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_usages.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.18.0
6+
controller-gen.kubebuilder.io/version: v0.19.0
77
name: usages.apiextensions.crossplane.io
88
spec:
99
group: apiextensions.crossplane.io

crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneCompositeFunctionBase.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package io.crossplane.compositefunctions.base;
22

33

4+
import com.google.protobuf.Duration;
45
import io.crossplane.compositefunctions.protobuf.v1.FunctionRunnerServiceGrpc;
56
import io.crossplane.compositefunctions.protobuf.v1.Requirements;
7+
import io.crossplane.compositefunctions.protobuf.v1.ResponseMeta;
68
import io.crossplane.compositefunctions.protobuf.v1.RunFunctionRequest;
79
import io.crossplane.compositefunctions.protobuf.v1.RunFunctionResponse;
810
import io.crossplane.compositefunctions.protobuf.v1.State;
@@ -33,7 +35,7 @@ public void runFunction(RunFunctionRequest request, StreamObserver<RunFunctionRe
3335
desiredBuilder.putAllResources(desired.getResourcesMap());
3436

3537
CrossplaneFunctionRequest crossplaneFunctionRequest = new CrossplaneFunctionRequest(request.getObserved(),
36-
request.getExtraResourcesMap(), request.getCredentialsMap(), request.getDesired());
38+
request.getRequiredResourcesMap(), request.getCredentialsMap(), request.getDesired());
3739

3840

3941
logger.debug("Calling method with implemented logic");
@@ -49,7 +51,7 @@ public void runFunction(RunFunctionRequest request, StreamObserver<RunFunctionRe
4951

5052
if (! crossplaneFunctionResponse.resourceSelectors().isEmpty()) {
5153
Requirements requirements = Requirements.newBuilder()
52-
.putAllExtraResources(crossplaneFunctionResponse.resourceSelectors())
54+
.putAllResources(crossplaneFunctionResponse.resourceSelectors())
5355
.build();
5456
responseBuilder.setRequirements(requirements);
5557
}
@@ -62,6 +64,14 @@ public void runFunction(RunFunctionRequest request, StreamObserver<RunFunctionRe
6264
responseBuilder.addAllConditions(crossplaneFunctionResponse.conditions());
6365
}
6466

67+
if (crossplaneFunctionResponse.ttl() > 0) {
68+
ResponseMeta.Builder responseMetaBuilder = ResponseMeta.newBuilder();
69+
Duration.Builder durationBuilder = Duration.newBuilder();
70+
durationBuilder.setSeconds(crossplaneFunctionResponse.ttl());
71+
responseMetaBuilder.setTtl(durationBuilder);
72+
responseBuilder.setMeta(responseMetaBuilder);
73+
}
74+
6575
if (desiredBuilder.getResourcesCount() > 0) {
6676
responseBuilder.setDesired(desiredBuilder.build());
6777
}

crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionResponse.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@
1414
* @param desiredResources Map of the desired resources
1515
* @param resourceSelectors Map of the resource selectors for any extra resources
1616
* @param results List of the results
17+
* @param conditions List of the conditions of the function response
18+
* @param ttl Time to live for the response in positive seconds. This is an alpha feature, and needs to be explicitly enabled in Crossplane.
1719
*/
1820
public record CrossplaneFunctionResponse(Map<String, Object> desiredResources,
1921
Map<String, ResourceSelector> resourceSelectors,
20-
List<Result> results, List<Condition> conditions) {
22+
List<Result> results, List<Condition> conditions,
23+
long ttl) {
2124

2225
//
2326
//
@@ -27,6 +30,6 @@ public record CrossplaneFunctionResponse(Map<String, Object> desiredResources,
2730
* Create an empty response with all fields initiated
2831
*/
2932
public CrossplaneFunctionResponse() {
30-
this(new HashMap<>(), new HashMap<>(), new ArrayList<>(), new ArrayList<>());
33+
this(new HashMap<>(), new HashMap<>(), new ArrayList<>(), new ArrayList<>(), 0);
3134
}
3235
}

crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
* Commented out in 1.14
2525
*
2626
* @since 1.15
27+
* @deprecated Use CrossplaneRequiredResourcesService instead since resource has been renamed from extra to required
2728
*/
2829
public class CrossplaneExtraResourcesService {
2930

0 commit comments

Comments
 (0)