-
Notifications
You must be signed in to change notification settings - Fork 864
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
VPA e2e tests are broken due to tests writing to deprecated GCR repository #7910
Comments
/sig k8s-infra |
/transfer k8s.io
I don't think we should take this approach, because it will be disjoint if we need to expand the pool.
I don't think we should let the tests spin up arbitrary registries. I think we should do: Then we don't need to over-permission the CI accounts, we don't need to coordinate cleanup in boskos, and the setup is uniform for any new projects that don't exist yet should we need to expand any of the project pools. https://github.com/kubernetes/k8s.io/blob/main/infra/gcp/bash/prow/ensure-e2e-projects.sh is probably the place to do this |
cc @upodroid |
/priority important-soon Part of: #1343 |
Pre-created repositories with baked-in garbage collection policies SGTM. |
This has been fixed for the k8s-infra-e2e-boskos-{000-160} GCP projects. |
Tests are passing again, thank you! https://testgrid.k8s.io/sig-autoscaling-vpa#autoscaling-vpa-full |
See canonical issue in Autoscaler repo: kubernetes/autoscaler#7946.
Today, the VPA e2e tests compile and build the VPA component and write the image to the GCR repo in the test project.
This week, GCR writes started getting blocked as part of the GCR deprecation:
failed to mount blob k8s-infra-e2e-boskos-154/vpa-recommender-amd64@sha256:d858cbc252ade14879807ff8dbc3043a26bbdb92087da98cda831ee040b172b3 to gcr.io/k8s-infra-e2e-boskos-154/vpa-recommender:latest: Head "https://gcr.io/v2/k8s-infra-e2e-boskos-154/vpa-recommender/blobs/sha256:d858cbc252ade14879807ff8dbc3043a26bbdb92087da98cda831ee040b172b3": unknown: Container Registry is deprecated and shutting down, please use the auto migration tool to migrate to Artifact Registry (gcloud artifacts docker upgrade migrate --projects='k8s-infra-e2e-boskos-154'). For more details see: https://cloud.google.com/artifact-registry/docs/transition/auto-migrate-gcr-ar
The logic that writes to GCR is captured here in the test script:
https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/hack/deploy-for-e2e.sh#L62-L74
Discussed this a bit with @BenTheElder and @upodroid in #k8s-infra Slack chat.
I believe there are a few options:
Migrate all the Boskos test projects to use Artifact Registry using the standard GCR->AR process. Note that this would have to be done for ~O(100) projects.
Have VPA start writing to a NEW artificat registry repository. Note that this requires the test runner to have permissions to create the repository and write to it (which is a bit different from GCR).
Both of the solutions above also need some proper garbage collection to ensure images don't leak and drive up storage costs. All of these images are temporary and can be cleaned up quickly after use.
I don't have access to the Boskos projects but in debugging this via our test scripts, I discovered that there are other components ALSO writing images to GCR within the projects (not sure if we are aware of this yet):
The text was updated successfully, but these errors were encountered: