Listing public endpoints
Each request needs to be sent to the public endpoint of the appropriate service. You can obtain the list of public endpoints by sending a request to https://<node_IP_addr>:5000/v3/auth/catalog
. For more readability, you can filter the response with the jq
tool that is installed on each node by default.
Sample request:
# curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \ https://<node_IP_addr>:5000/v3/auth/catalog | jq '.catalog[] | . as { endpoints: $e, name: $n } | $e[] | { serviceName: $n, publicEndpoint: select(.interface=="public").url }'
Sample response:
{ "serviceName": "keystone", "publicEndpoint": "https://<node_IP_addr>:5000/v3" } { "serviceName": "glance", "publicEndpoint": "https://<node_IP_addr>:9292" } { "serviceName": "cinderv2", "publicEndpoint": "https://<node_IP_addr>:8776/v2/f5d834d636c642c7bfe8af86139c6f26" } { "serviceName": "cinderv3", "publicEndpoint": "https://<node_IP_addr>:8776/v3/f5d834d636c642c7bfe8af86139c6f26" } { "serviceName": "placement", "publicEndpoint": "https://<node_IP_addr>:8780" } { "serviceName": "nova", "publicEndpoint": "https://<node_IP_addr>:8774/v2.1/f5d834d636c642c7bfe8af86139c6f26" } { "serviceName": "neutron", "publicEndpoint": "https://<node_IP_addr>:9696" } { "serviceName": "heat", "publicEndpoint": "https://<node_IP_addr>:8004/v1/f5d834d636c642c7bfe8af86139c6f26" } { "serviceName": "barbican", "publicEndpoint": "https://<node_IP_addr>:9313" } { "serviceName": "octavia", "publicEndpoint": "https://<node_IP_addr>:9888" } { "serviceName": "magnum", "publicEndpoint": "https://<node_IP_addr>:9513/v1" } { "serviceName": "gnocchi", "publicEndpoint": "https://<node_IP_addr>:8041" }