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

Add a specification for Composition Functions #4640

Merged
merged 4 commits into from
Sep 19, 2023
Merged

Conversation

negz
Copy link
Member

@negz negz commented Sep 18, 2023

Description of your changes

Relates to crossplane/docs#579

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.

I have:

  • Read and followed Crossplane's contribution process.
  • Added or updated unit and E2E tests for my change.
  • Run make reviewable to ensure this PR is ready for review.
  • Added backport release-x.y labels to auto-backport this PR, if necessary.
  • Opened a PR updating the docs, if necessary.

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 <nicc@rk0n.org>
Signed-off-by: Nic Cope <nicc@rk0n.org>
Signed-off-by: Nic Cope <nicc@rk0n.org>
Signed-off-by: Nic Cope <nicc@rk0n.org>
@negz
Copy link
Member Author

negz commented Sep 18, 2023

@plumbis Added you as optional to review this for readability.

A Function MUST NOT assume it is deployed in any particular way, for example
that it is running as a Kubernetes Pod in the same cluster as Crossplane.

A Function SHOULD fail gracefully if it does not have network access, for
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A Function SHOULD fail gracefully if it does not have network access, for
A Function SHOULD fail gracefully if it needs but does not have network access, for

I assume this is not relevant for an offline function.

contributing/specifications/functions.md Outdated Show resolved Hide resolved
contributing/specifications/functions.md Show resolved Hide resolved
contributing/specifications/functions.md Show resolved Hide resolved
Copy link
Contributor

@bobh66 bobh66 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - now I just need to get started on that Python SDK

A Function MUST listen for gRPC requests on TCP port 9443, regardless of whether
they are using mTLS transport security or have transport security disabled.

A Function MUST not disable gRPC transport security unless the `--insecure` flag
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MUST NOT

contributing/specifications/functions.md Show resolved Hide resolved
@negz negz merged commit 0965f0e into crossplane:master Sep 19, 2023
11 checks passed
@negz negz deleted the specific branch September 19, 2023 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants