-
Notifications
You must be signed in to change notification settings - Fork 17
Add FS Operator #196
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 FS Operator #196
Conversation
Signed-off-by: Zike Yang <[email protected]>
Signed-off-by: Zike Yang <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds the FS Operator, implementing the main operator controller logic, API types (CRDs) for Functions and Packages, and updating project scaffolding including build, deployment, and CI/CD workflows.
- Introduces the operator’s main entrypoint with configuration flags and webhook integrations.
- Implements API definitions and generated deep copy methods for custom resources.
- Adds supporting files including Dockerfile, Makefile, CI workflows, documentation, and development container configuration.
Reviewed Changes
Copilot reviewed 114 out of 114 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
operator/cmd/main.go | New main operator executable with flag parsing and webhook setup. |
operator/api/v1alpha1/zz_generated.deepcopy.go | Generated deep copy functions for CRD types. |
operator/api/v1alpha1/packages_types.go | API definitions for Package resource including configuration items. |
operator/api/v1alpha1/groupversion_info.go | Group version and scheme registration info for the API group. |
operator/api/v1alpha1/function_types.go | API definitions for Function resource including source and sink specs. |
operator/README.md | Documentation on operator usage, deployment, and installation. |
operator/PROJECT | Project configuration for scaffolding and API registration. |
operator/Makefile | Build, lint, test, deployment, and cross-compilation automation. |
operator/Dockerfile | Container build instructions for the operator binary. |
operator/.golangci.yml | Linter configuration for Go code quality. |
operator/.github/workflows/* | CI workflows for tests, end-to-end tests, and linting. |
operator/.devcontainer/* | Devcontainer configuration and post-install script for development. |
license-checker/license-checker.sh | Update to license checker script to include the operator directory. |
.github/workflows/ci.yaml | Extended CI configuration to include tests from the operator folder. |
.github/workflows/bench.yaml | Removed benchmark workflow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR scaffolds and implements the new FunctionStream (FS) Operator, providing a Kubernetes controller, CRD API definitions, and associated build/deploy tooling.
- Adds
main.go
with controller-runtime manager setup, flag parsing, TLS cert watchers, and webhook registration. - Introduces API types and generated deepcopy code for
Function
andPackage
CRDs underapi/v1alpha1
. - Updates project scaffolding: Makefile targets, Dockerfile, CI workflows, license checks, and README.
Reviewed Changes
Copilot reviewed 114 out of 114 changed files in this pull request and generated 3 comments.
File | Description |
---|---|
operator/cmd/main.go | Operator entrypoint: flags, manager, cert watchers, webhooks |
operator/api/v1alpha1/*.go | CRD schemas for Function & Package and generated deepcopy |
operator/Makefile | Build, generate, test, lint, and deploy targets |
Comments suppressed due to low confidence (1)
operator/cmd/main.go:245
- [nitpick] The webhook name is logged as "Package" but the reconciler and resource are pluralized elsewhere. Consider using "Packages" for consistency.
setupLog.Error(err, "unable to create webhook", "webhook", "Package")
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces the FS Operator, which includes the operator’s command-line entrypoint (main.go), API type definitions (CRDs for Functions and Packages), and associated tooling (Makefile, Dockerfile, and CI/CD workflows).
- Add new operator binary with TLS certificate watching and HTTP/2 disabling options
- Define Kubernetes CRDs and deep copy functions for API types
- Set up project configuration, build scripts, and CI/CD workflows for testing, linting, and deployment
Reviewed Changes
Copilot reviewed 114 out of 114 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
operator/cmd/main.go | Introduces the operator’s main function with config flags, certificate watchers, and webhook setup |
operator/api/v1alpha1/* | Adds CRD type definitions and autogenerated deep copy methods for Functions, Packages, and related specs |
operator/README.md | Provides documentation on deploying and using the operator |
operator/Makefile & Dockerfile | Introduces build, deployment, and cross-platform support configurations |
Other files (PROJECT, workflows, etc.) | Adds CI/CD, linting configurations, and project scaffolding setup |
Comments suppressed due to low confidence (1)
operator/Makefile:130
- The docker-buildx target uses commands prefixed with '-' to suppress errors. Consider handling errors explicitly to ensure that potential issues during the build process are not silently ignored.
sed -e '1 s/\(^FROM\)/FROM --platform=\${BUILDPLATFORM}/; t' -e ' 1,// s//FROM --platform=\${BUILDPLATFORM}/' Dockerfile > Dockerfile.cross
No description provided.