refactor(a2a): Simplify Service Discovery to use CRD-based approach#21
refactor(a2a): Simplify Service Discovery to use CRD-based approach#21
Conversation
Replace label-based A2A service discovery with CRD-based discovery: - Remove LabelSelector field from A2AServiceDiscovery API - Add discoverA2AEndpoints() method to find A2A CRDs and services - Replace A2A_SERVICE_DISCOVERY_LABEL_SELECTOR with A2A_SERVICE_DISCOVERY_ENDPOINTS - Add RBAC permissions for Gateway controller to access A2A resources - Update example to use A2A CRD instead of labeled Service - Update tests to expect endpoints instead of label selector Architecture: Gateway discovers A2A CRDs → gets owned Services → provides endpoints Resolves: #19 Co-authored-by: Eden Reich <edenreich@users.noreply.github.com>
|
@claude Can you fix the CI ? |
|
Claude finished @edenreich's task —— View job Fixing CI Issues ✅I'll analyze and fix the CI failures for this PR. Todo List:
Analysis:The "Generate & Verify Clean State" CI job was failing because generated manifests were out of sync. The PR removes the Solution:✅ Fixed: Updated generated manifests by running:
Changes:Committed updated manifests that removed the
The CI should now pass as the generated files are in sync with the API changes. Commit: |
…ery API changes Remove labelSelector field from generated CRD manifests to match the API type changes that replaced label-based discovery with CRD-based discovery. Co-authored-by: Eden Reich <edenreich@users.noreply.github.com>
|
@claude the tests are failing, can you fix them? |
|
Claude finished @edenreich's task —— View job I've successfully fixed the failing tests! ✅ Todo List:
Summary:✅ Fixed all test failures by addressing resource cleanup issues in the test helper function. Root Cause:The tests were failing due to:
Solution:
Verification:
The A2A service discovery tests now work correctly with the new CRD-based approach, properly handling empty endpoints when no A2A resources exist in the test environment. Commit: |
- Fix resource cleanup issues in checkGatewayDeploymentEnvVars helper function - Remove manual deployment deletion logic that was causing timing issues - Simplify test approach to let controller handle existing deployments properly - Remove unused errors import Fixes test failures: - "deployments.apps already exists" error - "Gateway not found" errors during reconciliation - Test timeouts due to resource cleanup issues Co-authored-by: Eden Reich <edenreich@users.noreply.github.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
Understood the functionality, makes sense. Signed-off-by: Eden Reich <eden.reich@gmail.com>
…INTS in gateway controller tests Signed-off-by: Eden Reich <eden.reich@gmail.com>
…rs function Signed-off-by: Eden Reich <eden.reich@gmail.com>
…ldA2AService function Signed-off-by: Eden Reich <eden.reich@gmail.com>
## [0.11.0](v0.10.0...v0.11.0) (2025-07-28) ### ✨ Features * **a2a:** Add automatic pod restart on configuration changes ([#20](#20)) ([307fee2](307fee2)) ### ♻️ Improvements * **a2a:** Simplify Service Discovery to use CRD-based approach ([#21](#21)) ([121e33b](121e33b)), closes [#19](#19) ### 👷 CI * Consolidate linting and build processes into a single CI workflow ([#22](#22)) ([f4591e9](f4591e9)) ### 📚 Documentation * **examples:** Add Google provider support ([#23](#23)) ([879e762](879e762)), closes [#17](#17)
|
🎉 This PR is included in version 0.11.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Replace label-based A2A service discovery with CRD-based discovery:
Architecture: Gateway discovers A2A CRDs → gets owned Services → provides endpoints
Resolves: #19
Generated with Claude Code