Skip to content

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

Merged
merged 11 commits into from
May 19, 2025
Merged

Add FS Operator #196

merged 11 commits into from
May 19, 2025

Conversation

RobertIndie
Copy link
Contributor

No description provided.

@RobertIndie RobertIndie marked this pull request as ready for review May 19, 2025 15:34
@RobertIndie RobertIndie requested a review from Copilot May 19, 2025 15:34
Copy link

@Copilot Copilot AI left a 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.

@RobertIndie RobertIndie requested a review from Copilot May 19, 2025 15:36
Copy link

@Copilot Copilot AI left a 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 and Package CRDs under api/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")

@RobertIndie RobertIndie requested a review from Copilot May 19, 2025 15:42
Copy link

@Copilot Copilot AI left a 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

@RobertIndie RobertIndie merged commit 56f867b into main May 19, 2025
5 checks passed
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.

1 participant