Skip to content

Commit 4ea7a90

Browse files
authored
Merge pull request #39 from vibe/main
feat: generate extra resources proto
2 parents 439ecb8 + e1851fe commit 4ea7a90

File tree

3 files changed

+156
-41
lines changed

3 files changed

+156
-41
lines changed

crossplane/function/proto/v1beta1/run_function.proto

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,19 @@ message RunFunctionRequest {
6161
// and that context will be passed to subsequent Functions. Crossplane
6262
// discards all context returned by the last Function in the pipeline.
6363
optional google.protobuf.Struct context = 5;
64+
65+
// Optional extra resources that the Function required.
66+
// Note that extra resources is a map to Resources, plural.
67+
// The map key corresponds to the key in a RunFunctionResponse's
68+
// extra_resources field. If a Function requested extra resources that
69+
// did not exist, Crossplane sets the map key to an empty Resources message to
70+
// indicate that it attempted to satisfy the request.
71+
map<string, Resources> extra_resources = 6;
72+
}
73+
74+
// Resources represents the state of several Crossplane resources.
75+
message Resources {
76+
repeated Resource items = 1;
6477
}
6578

6679
// A RunFunctionResponse contains the result of a Composition Function run.
@@ -88,6 +101,9 @@ message RunFunctionResponse {
88101
// Optional context to be passed to the next Function in the pipeline as part
89102
// of the RunFunctionRequest. Dropped on the last function in the pipeline.
90103
optional google.protobuf.Struct context = 4;
104+
105+
// Requirements that must be satisfied for this Function to run successfully.
106+
Requirements requirements = 5;
91107
}
92108

93109
// RequestMeta contains metadata pertaining to a RunFunctionRequest.
@@ -97,6 +113,29 @@ message RequestMeta {
97113
string tag = 1;
98114
}
99115

116+
// Requirements that must be satisfied for a Function to run successfully.
117+
message Requirements {
118+
// Extra resources that this Function requires.
119+
// The map key uniquely identifies the group of resources.
120+
map<string, ResourceSelector> extra_resources = 1;
121+
}
122+
123+
// ResourceSelector selects a group of resources, either by name or by label.
124+
message ResourceSelector {
125+
string api_version = 1;
126+
string kind = 2;
127+
128+
oneof match {
129+
string match_name = 3;
130+
MatchLabels match_labels = 4;
131+
}
132+
}
133+
134+
// MatchLabels defines a set of labels to match resources against.
135+
message MatchLabels {
136+
map<string, string> labels = 1;
137+
}
138+
100139
// ResponseMeta contains metadata pertaining to a RunFunctionResponse.
101140
message ResponseMeta {
102141
// An opaque string identifying the content of the request. Must match the

crossplane/function/proto/v1beta1/run_function_pb2.py

Lines changed: 49 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)