[Starlingx-discuss] Problem with docker login, wrong realm address returned

Marc Ferland ferlandm at amotus.ca
Fri Jul 10 17:59:50 UTC 2020


Hi,

I have a STX 3.0 bare metal duplex installation here. Followed the
instructions on the web site. Only difference is I added two VLAN
interfaces (one for the mgmt network, the other for the cluster-host
network).

Both controllers are up and running (unlocked, available, online). No
alarms.

I would like to login to the docker registry (registry.local) from a
machine which sits on the mgmt and cluster-host network (but does not have
access to the OAM network).

When I run the docker login cmd like so:

docker login -u admin https://registry.local:9001

I get back:

Error response from daemon: Get https://registry.local:9001/v2/: Get
https://192.168.30.5:9002/token/?account=admin&client_id=docker&offline_token=true&service=192.168.204.1%3A9001:
dial tcp 192.168.30.5:9002: connect: network is unreachable

192.168.30.5 is the floating OAM ip address. Digging a bit deeper I found
that this curl command:

curl -v -s -H "Content-Type: application/json" -X POST -d '{"username":
"'admin'", "password": "'PassWord123*'"}'
https://registry.local:9001/v2/_catalog

returns:

< HTTP/1.1 401 Unauthorized
< Content-Type: application/json; charset=utf-8
< Docker-Distribution-Api-Version: registry/2.0
< Www-Authenticate: Bearer realm="https://192.168.30.5:9002/token/
",service="192.168.204.1:9001",scope="registry:catalog:*"
< X-Content-Type-Options: nosniff
< Date: Fri, 10 Jul 2020 17:36:33 GMT
< Content-Length: 145

So the bearer realm address returned seems to point to the OAM network (to
which I don't have access, hence the 'network is unreachable' error). I
should also point out the the registry-token-server is configured like so:

REGISTRY_TOKEN_SERVER_ADDR=192.168.204.1:9002
REGISTRY_TOKEN_SERVER_ISSUER=bird-token-server
REGISTRY_TOKEN_SERVER_KS_ENDPOINT=http://192.168.204.1:5000/v3
REGISTRY_TOKEN_SERVER_TLSCERT=/etc/ssl/private/registry-cert.crt
REGISTRY_TOKEN_SERVER_TLSKEY=/etc/ssl/private/registry-cert.key
REGISTRY_TOKEN_SERVER_REALM=https://192.168.204.1:9002/token/
REGISTRY_TOKEN_SERVER_KEY=/etc/ssl/private/registry-cert-pkcs1.key

Here, the REGISTRY_TOKEN_SERVER_REALM is correctly set to
https://192.168.204.1:9002/token/. Lastly, the
/etc/docker-distribution/registry/config.yml configuration file points to
another realm address:

auth:
  token:
    realm: "https://192.168.30.5:9002/token/"
    service: "192.168.204.1:9001"
    issuer: bird-token-server
    rootcertbundle: /etc/ssl/private/registry-cert.crt

What am I missing here? How can I login to the registry from outside the
OAM network?

Regards,

Marc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.starlingx.io/pipermail/starlingx-discuss/attachments/20200710/09bd1ced/attachment.html>


More information about the Starlingx-discuss mailing list