Предполагая, что ресурс Ambassador Mapping
связывает ресурсы REST со службами Kubernetes, вы можете получить метаданные аннотации через JSONPath , а затем проанализировать поле prefix:
, если я понимаю ваше вопрос правильно.
Пример службы k8s от Ambassador Документация :
kind: Service
metadata:
name: httpbin
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Mapping
name: tour-ui_mapping
prefix: /test/
service: http://tour
spec:
ports:
- name: httpbin
port: 80
Командная строка для извлечения prefix:
значение поля:
$ kubectl get svc httpbin -o jsonpath='{.metadata.annotations}'| grep -w "prefix:"| awk '{print $2}'
/ тест /
Обновление:
В качестве альтернативы, вы также можете рассмотреть возможность получения того же результата через прямой вызов REST API с помощью аутентификации токена на предъявителя метод :
curl -k -XGET -H "Authorization : Bearer $MY_TOKEN" 'https://<API-server_IP>/api/v1/namespaces/default/services/httpbin' -H "Accept: application/yaml"| grep -w "prefix:"| awk '{print $2}
Переменная
$MY_TOKEN
должна быть снабжена соответствующим токеном, который имеет право выполнять вышеуказанный запрос к REST API, как я уже указывал в моем предыдущем ответе .