API Kubernetes для configmap - PullRequest
       70

API Kubernetes для configmap

0 голосов
/ 09 марта 2020

Я мог бы заставить kubectl работать для создания configmap с набором файлов с командой ниже

kubectl create configmap configmap2 --from-file foldername

, где foldername содержит файлы с ключами и значениями

Теперь я хочу создать K8s карта конфигурации с той же папкой, используя Java. Я не хочу использовать какие-либо библиотеки. Есть ли способ, которым я могу достичь этого?

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Вот запрос API, который вы должны сделать на сервер API Kubernetes для создания ConfigMap:

POST /api/v1/namespaces/{namespace}/configmaps

Данные должны быть объектом ConfigMap JSON, как указано здесь .

Если вы не используете библиотеку, вы также должны включить в запрос правильные учетные данные, которые обычно токен (Authorization: Bearer <token>) или сертификат.

Совет:

Вы можете использовать kubectl create configmap -v 10 configmap2 --from-file foldername (примечание -v 10), чтобы увидеть точный HTTP-запрос, который kubectl делает к серверу API.

1 голос
/ 09 марта 2020

Да, вы можете сделать это, но это не так просто - вам придется:

  • Список всех файлов (вы можете использовать java.nio.file.Files)
  • Создать представление base64 для файлы (для этого используйте java.util.Base64)
  • Создайте JSON, представляющий файлы и метаданные (для этого вам нужно использовать конкатенацию строк). JSON должен выглядеть так:

    kubectl create configmap configmap2 --from-file foldername --dry-run -o json
    
  • Отправьте это на сервер API Kubernetes с правильной аутентификацией (используя новый HTTP-клиент )

Было бы проще использовать клиент Kubernetes Java (например: клиент fabric8io , официальный клиент Kubernetes ).

...