bluerobotics / bluerobotics/BlueOS

version-chooser: Use signed in accounts for fetching dockerhub tags/images

Open
#3,972 3 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Vue
Stars
453
Forks
151
Avg merge
1d 3h
Merged PRs (30d)
174

Description

# Problem
We run a larger fleet of blueos devices, that are connected over LTE. Our ISP for the LTE employs CG-NAT, so publicly our IP adresse is re-used by several devices across different antenna/connections.

When we need to update blueos on several devices (via dockerhub), then we sometimes run into rate limiting by dockerhub. For anon connections, the rate limit is 100 "pulls" per 6 hours. Ref: https://docs.docker.com/docker-hub/usage/

We get met with the `TOOMANYREQUESTS`, with the addition of "You have reached the unauthenticated pull rate limit". Which makes sense, I can see how with multiple images, on multiple devices (on the same IP (as dockerhub sees it), that we would hit the limit.

This is frustrating, as there is no good way to get around this for our non-dev staff (besides just waiting a few hours). We've prevously gotten around this by just doing docker pulls via bash (outside of blueOS), via `docker login` (authenticate).

# Solutions
It seems like currently blueOS has *some* docker login wired up, but it does *not* actually use the signed in accounts (root nor non-root) as far as I can tell in the code. Not sure what the auth is for (private repos?), if not being used for pulling images. It feels like we could take this login further, and try to use the authenticated credentials, with anon as a fallback. That should at least double our limit.

Another option might be to see if its possible to fetch fewer images, or NOT fetch images, unless requested (to decrease the amount of pulls).

# Notes
I understand that this is a niche issue, and most people dont run multiple devices, over LTE (with CG-NAT). I'm happy to help out writing the feature, if there is a acceptance for a proposed (or different) solution to this problem.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the version-chooser code that fetches Docker Hub tags and images, then inspect how the existing Docker login wiring handles root and non-root accounts. Define whether authenticated credentials can be used with anonymous fallback, and consider the alternative of fetching fewer images; done means the agreed approach addresses Docker Hub rate limits without breaking existing updates.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.