Skip to content
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

Fix issues with Docker Hub rate limits in CI #283

Merged
merged 1 commit into from
Jul 15, 2024

Conversation

edmorley
Copy link
Member

@edmorley edmorley commented Jul 15, 2024

Similar to the Node.js CNB repo, this repo is occasionally hitting Docker Hub rate limit errors on the ARM jobs in the matrix like so:
https://github.com/heroku/buildpacks-go/actions/runs/9796334219/job/27051359595#step:8:10

These are due to the fact that the pub-hk-ubuntu-22.04-arm-small ARM runner also has a static IP enabled, which means all traffic from any runners in that group go through a single load balancer with the fixed IP. This not only causes throughput/reliability issues, but means that we're more likely to hit the Docker Hub rate limit.

As such, we requested the creation of some new runner groups that separate out the "need a fixed IP for writes" vs "need more compute or an ARM CPU" use-cases. As an added bonus these groups are also using Ubuntu 24.04. See:
https://salesforce.quip.com/bu6UA0KImOxJ#temp:C:GZR57becb9df8d94f80b132168fd
https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md

This PR switches to those new groups, and also adds pre-pulling of the run image to prevent it being pulled multiple times when the tests run (libcnb-test uses --pull-policy if-not-present with pack build, but the tests run concurrently so on first run multiple pulls will otherwise be performed). See also:
heroku/buildpacks-python#223

GUS-W-16238120.

Similar to the Node.js CNB repo, this repo is occasionally hitting
Docker Hub rate limit errors on the ARM jobs in the matrix like so:
https://github.com/heroku/buildpacks-go/actions/runs/9796334219/job/27051359595#step:8:10

These are due to the fact that the `pub-hk-ubuntu-22.04-arm-small`
ARM runner also has a static IP enabled, which means all traffic from
any runners in that group go through a single load balance with the
fixed IP. This not only causes throughput/reliability issues, but means
that we're more likely to hit the Docker Hub rate limit.

As such, we requested the creation of some new runner groups that
separate out the "need a fixed IP for writes" vs "need more compute
or an ARM CPU" use-cases. As an added bonus these groups are also
using Ubuntu 24.04. See:
https://salesforce.quip.com/bu6UA0KImOxJ#temp:C:GZR57becb9df8d94f80b132168fd

This PR switches to those new groups, and also adds pre-pulling of
the run image to prevent it being pulled multiple times when the
tests run (`libcnb-test` uses `--pull-policy if-not-present` with
`pack build`, but the tests run concurrently so on first run multiple
pulls will otherwise be performed). See also:
heroku/buildpacks-python#223

GUS-W-16238120.
@edmorley edmorley self-assigned this Jul 15, 2024
@edmorley edmorley merged commit a94957b into main Jul 15, 2024
8 checks passed
@edmorley edmorley deleted the edmorley/fix-rate-limit-errors branch July 15, 2024 21:29
edmorley added a commit to heroku/buildpacks-ruby that referenced this pull request Jul 16, 2024
To update to Ubuntu 24.04, and to prevent the rate limit issues
mentioned here:
heroku/buildpacks-go#283

I've not added the run image pre-pulling step used by some of
the other CNB repos, since this repo doesn't currently use a matrix
to test builder image versions, and instead varies the builder test
by test, which (a) means I'd have to hardcode a list, (b) means that
the benefit is less.

See also:
https://salesforce.quip.com/bu6UA0KImOxJ#temp:C:GZR57becb9df8d94f80b132168fd
https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md

GUS-W-16238120.
edmorley added a commit to heroku/buildpacks-php that referenced this pull request Jul 16, 2024
Switches to the new GitHub Actions runner groups to:
1. Avoid the rate limit issues mentioned in:
   heroku/buildpacks-go#283
2. To update to Ubuntu 24.04

Also pre-pulls the builder and run images to prevent duplicate
pulls and impact on rate limits, as mentioned in:
heroku/buildpacks-python#223

See also:
https://salesforce.quip.com/bu6UA0KImOxJ#temp:C:GZR57becb9df8d94f80b132168fd
https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md

GUS-W-16238120.
edmorley added a commit to heroku/buildpacks-jvm that referenced this pull request Jul 17, 2024
Switches to the new GitHub Actions runner groups to:
1. Avoid the rate limit issues mentioned in:
   heroku/buildpacks-go#283
2. To update to Ubuntu 24.04

Also pre-pulls the builder and run images to prevent duplicate
pulls and impact on rate limits, as mentioned in:
heroku/buildpacks-python#223

See also:
https://salesforce.quip.com/bu6UA0KImOxJ#temp:C:GZR57becb9df8d94f80b132168fd
https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md

GUS-W-16238120.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants