-
Notifications
You must be signed in to change notification settings - Fork 175
Unify AWS ECR and GCP Artifact Registry behavior in Docker reverse proxy #890
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: main
Are you sure you want to change the base?
Conversation
Hey @warren830, thanks for the PR. I'm curious what's the goal of the PR - are you trying to run on AWS? |
Yes, that's my target |
We had some discussion in #846 |
I just quickly went through. Is there a reason why breaking change for AWS was introduced? |
There are two main reasons for introducing this breaking change for AWS: First, I wanted AWS repos to also be able to use template IDs for differentiation, similar to other platforms. Second, I wanted to ensure that AWS and GCP maintain the same workflow at the Docker proxy layer for consistency. This change helps align the processes between these two cloud providers. |
Hi @sitole , is there anything I can do to do for this pr? |
Currently, we are internally discussing next steps. |
Ok,is there anything I can do to make aws available? |
Summary
This PR introduces a unified architecture for handling Docker registry operations across AWS ECR and GCP Artifact Registry, ensuring consistent behavior and improved maintainability for multi-cloud deployments.
Key Changes
🏗️ Architecture Refactoring
🏷️ Tag Format Standardization
🔒 Enhanced Security & Validation
🧪 Comprehensive Testing
Technical Details
Before
// AWS returned: repositoryUri:buildID
// GCP returned: repositoryUri:templateID:buildID
After
// AWS returns: repositoryUri:templateID_buildID
// GCP returns: repositoryUri:templateID:buildID
// Both now include templateID for consistent access control
Provider Selection Logic
// Auto-detection based on environment variables:
// 1. CLOUD_PROVIDER (explicit)
// 2. AWS_ACCOUNT_ID (AWS detection)
// 3. GCP_PROJECT_ID (GCP detection)
// 4. Defaults to GCP for backward compatibility
Breaking Changes
Environment Variables
New required for AWS:
Test Plan
Migration Notes
Existing AWS deployments will need to: