feat: Support cross-namespace package references with PackageRef field #203
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The current Function CRD uses a simple
Package
field to reference packages, which limits the ability to reference packages from different namespaces. This change introduces a newPackageRef
structure that supports cross-namespace package references while maintaining backward compatibility and proper label management.The main problems this solves:
Modifications
Updated Function CRD structure:
Package
field withPackageRef
structure containingName
andNamespace
fieldsPackageRef
structureEnhanced webhook validation:
function_webhook.go
to validate cross-namespace package referencesnamespace.package-name
)Improved controller logic:
function_controller.go
to handle cross-namespace package lookupsmapPackageToFunctions
to work with namespace-aware package labelsEnhanced test coverage:
PackageRef
instead ofPackage
Updated package webhook:
packages_webhook.go
to use namespace-aware package labels when finding referencing functionsThe changes maintain backward compatibility while providing a more robust and flexible package reference system that supports cross-namespace operations.