Как получить значение конфигурации kubectl с сервера Dex, настроенного с помощью LDAP, с помощью команды curl?

#kubectl #kubeconfig

#kubectl #kubeconfig

Вопрос:

В нашей компании есть несколько кластеров Kubernetes. Чтобы получить содержимое конфигурации kubectl, мы используем Dex для входа в систему и копирования / вставки содержимого в наш локальный confi для kubectl.

Я хочу сделать это автоматизированным и поэтому запустить кучу команд, чтобы получить содержимое с помощью curl .

Я не мог понять, как, проверив ответы на запросы. Пожалуйста, помогите мне, если кто-нибудь знает, как это сделать.

Комментарии:

1. возможно ли запустить dex в режиме CLI? похоже ли это на ssh?

Ответ №1:

Я нашел, как это сделать. Итак, нам нужно сделать два вызова. Сначала извлекается страница входа, на которой мы можем получить идентификатор запроса:

the_id=$(curl -s -v -L "https://login.${cluster}" | grep -Po 'action="(.*)"')

Приведенный выше поиск в ответе для атрибута action= , где указано, куда отправить запрос

Затем используйте the_id в следующем вызове:

 konfig=$(curl --insecure POST -H 'Content-Type: application/x-www-form-urlencoded' -d "login=$usernameamp;password=$password" -v -L "${cluster}${the_id}" | grep -Pzo '(?s)id=".*?</')
 

Эта команда вернет HTML-страницу, в которой вы можете найти конфигурацию. Очевидно, что для вас это может быть другой ответ, но извлечение request id из первого вызова — это ключ, который я пропустил для начала.