Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document how to write a Composition Function #579

Closed
Tracked by #3751
negz opened this issue Feb 3, 2023 · 3 comments · Fixed by #597
Closed
Tracked by #3751

Document how to write a Composition Function #579

negz opened this issue Feb 3, 2023 · 3 comments · Fixed by #597
Assignees
Labels
docs User docs related issues and content enhancement New feature or request

Comments

@negz
Copy link
Member

negz commented Feb 3, 2023

What problem are you facing?

We expect that there may be multiple Composition Function runner implementations. When designing Composition Functions we realized that it was tough to find a perfect solution considering all of the tradeoffs (running functions securely, running many functions, making guarantees around starting functions quickly, etc). We should provide guidance for folks who might want to implement their own Function runner.

We have a reference Composition Function runner (xfn) implementation, and strongly typed I/O in the form of a RunFunctionRequest. We're missing (at least):

  • gRPC encryption and authentication requirements.
  • gRPC status code meanings.
  • How to turn a RunFunctionRequest into an OCI runtime spec.
  • How to pass FunctionIO to and from an OCI container.
  • Expectations of the OCI containers we run (i.e. they need a baked in ENTRYPOINT)

How could Crossplane help solve your problem?

We might consider adding a specification to formally describe all these requirements.

@negz negz added the enhancement New feature or request label Feb 3, 2023
@negz negz self-assigned this Feb 3, 2023
@github-actions
Copy link

github-actions bot commented May 5, 2023

Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale because it has had no activity in the last 90 days. It will be closed in 14 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

@jbw976
Copy link
Member

jbw976 commented May 8, 2023

/fresh we are tracking this in crossplane/crossplane#3751

@negz
Copy link
Member Author

negz commented Jul 17, 2023

This feels a little less important with crossplane/crossplane#4306, since everything will end up in the protobuf RunFunctionRequest and RunFunctionResponse. I'm going to keep this issue for now, but I think it might become more "document how to write a Function" in future.

@negz negz changed the title Add a Composition Runner spec Document how to write a Composition Function Jul 17, 2023
@negz negz added the docs User docs related issues and content label Sep 2, 2023
negz referenced this issue in negz/crossplane Sep 18, 2023
This is a first pass at a 'formal' spec for a Composition Function. I
think it will be important for all Functions to behave in a similar way
in order for us to build tooling around them.

Relates to https://github.com/crossplane/crossplane/issues/3714

Signed-off-by: Nic Cope <[email protected]>
@negz negz transferred this issue from crossplane/crossplane Oct 24, 2023
@negz negz closed this as completed in #597 Nov 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs User docs related issues and content enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants