-
Notifications
You must be signed in to change notification settings - Fork 1.8k
feat: Support driver pod labels and annotations configuration at API server startup #12417
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
base: master
Are you sure you want to change the base?
feat: Support driver pod labels and annotations configuration at API server startup #12417
Conversation
|
Hi @thc1006. Thanks for your PR. I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
- Load and cache driver pod configuration at API server startup - Implement thread-safe config access with sync.RWMutex - Add comprehensive unit tests (16 test cases, all passing) - Remove .gitignore unrelated changes - Update documentation in backend/README.md - Remove unimplemented configuration options All reviewer requirements (7/7) fully addressed: ✅ Removed .gitignore changes ✅ Using Viper configuration system ✅ JSON format only ✅ Kubernetes-compatible format ✅ Startup-time config loading with caching ✅ Documentation in backend/README.md ✅ Removed unimplemented config options CI checks passed locally: ✅ go mod tidy ✅ All unit tests (16/16) ✅ go vet ✅ go fmt Resolves: kubeflow#12015 Signed-off-by: thc1006 <[email protected]>
1aedf1e to
0f72b31
Compare
- IMPLEMENTATION_SUMMARY.md: Complete implementation details and status - QUICK_REFERENCE.md: Quick reference for resuming work These documents capture the current state of issue kubeflow#12015 implementation for easy reference when resuming work after session disconnect. Related: kubeflow#12015 Signed-off-by: thc1006 <[email protected]>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/ok-to-test |
Adds package-level documentation comment to driver_config.go to resolve staticcheck ST1000 warning that requires at least one file in a package to have a package comment. The comment describes the common package's purpose as providing shared utilities and configuration for the KFP API server. Signed-off-by: thc1006 <[email protected]>
|
Dear @hbelmiro, Regarding E2E test failures: these are unrelated to this PR. The failures are caused by metadata-grpc-deployment CrashLoopBackOff, which is an intermittent upstream issue. Evidence:
Local verification completed:
Now ready for review. |
|
/ok-to-test |
TL;DRE2E failures are caused by GCR shutdown (unrelated to this PR). Code is ready for review. Fix in progress: PR #12426. Quick update on the CI failures: Root Cause: GCR shutdown (2025-07-17) - minio image no longer accessible Our PR Scope: Driver pod labels/annotations only - no minio changes Upstream Fix: PR #12426 migrates to Docker Hub The driver config implementation is complete and ready for code review. Thank you! 🙏 |
Summary
This PR implements admin-level configuration for driver pod labels and annotations, addressing issue #12015. Configuration is loaded once at API server startup and cached for performance.
Key Changes
common.InitDriverPodConfig()in backend/src/apiserver/main.go:418sync.RWMutexfor safe concurrent access to cached configurationAll Reviewer Requirements Addressed (7/7)
✅ Removed .gitignore changes - Only relevant backend and manifest changes included
✅ Using Viper configuration - Integrated with existing Viper config system
✅ JSON format only - Removed YAML support, JSON format only
✅ Kubernetes-compatible format - Standard Kubernetes label/annotation format
✅ Startup-time loading with caching - Config loaded once at startup, cached for performance
✅ Documentation in backend/README.md - Concise documentation added
✅ Removed unimplemented options - Removed environment variable and serviceaccount options
Testing
Local tests passed:
Configuration Example
{ "DriverPodLabels": { "custom-label": "value", "team": "ml-platform" }, "DriverPodAnnotations": { "sidecar.istio.io/inject": "true", "custom-annotation": "value" } }Resolves: #12015
Note: This PR supersedes #12306 which was closed due to commit history issues. All code changes and reviewer feedback remain fully addressed in this clean PR.