Слияние kubeconfig JSON и YAML - PullRequest
       66

Слияние kubeconfig JSON и YAML

0 голосов
/ 05 августа 2020

У меня есть два файла kubeconfigs, первый - следующий, который я использую для связи с кластером, а второй - для Aquase c в формате JSON. Как я могу объединить эти два?

apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: DATA+OMITTED
        server: https://656835E69F31E2933asdAFAKE3F5904sadFDDC112dsasa7.yld432.eu-west-2.eks.amazonaws.com
      name: arn:aws:eks:eu-west-2:test651666:cluster/Magento
    - cluster:
        certificate-authority-data: DATA+OMITTED
        server: https://kubernetes.docker.internal:6443
      name: docker-desktop
    - cluster:
        certificate-authority-data: DATA+OMITTED
        server: https://192.142.242.111:6443
      name: kubernetes
    contexts:
    - context:
        cluster: arn:aws:eks:eu-west-2:test651666:cluster/testing
        user: arn:aws:eks:eu-west-2:test651666:cluster/testing
      name: arn:aws:eks:eu-west-2:test651666:cluster/testing
    - context:
        cluster: docker-desktop
        user: docker-desktop
      name: docker-desktop
    - context:
        cluster: docker-desktop
        user: docker-desktop
      name: docker-for-desktop
    - context:
        cluster: kubernetes
        user: kubernetes-admin
      name: kubernetes-admin@kubernetes
    current-context: arn:aws:eks:eu-west-2:test651666:cluster/testing
    kind: Config
    preferences: {}
    users:
    - name: arn:aws:eks:eu-west-2:test651666:cluster/testing

1 Ответ

3 голосов
/ 05 августа 2020

Вы можете установить переменную среды KUBECONFIG на несколько файлов конфигурации, разделенных :, и kubectl автоматически объединит их за кулисами.

Например:

export KUBECONFIG=config:my-config.json

In экспорт выше, config - это файл конфигурации по умолчанию, содержащийся в ~/.kube, а my-config.json будет вашим вторым файлом конфигурации, который, как вы сказали, имеет формат JSON.

Вы можете увидеть объединенную конфигурацию используя эту команду, которая показывает унифицированное представление о конфигурации, которую kubectl в настоящее время использует:

kubectl config view

Поскольку kubectl автоматически объединяет несколько конфигураций, вам не нужно сохранять объединенную конфигурацию в файл. Но если вы действительно хотите это сделать, вы можете перенаправить вывод, например:

kubectl config view > merged-config.yaml

Изменить: очевидно, вам нужно использовать --flatten, если вы хотите сохранить объединенный вывод в отдельный файл, поэтому это будет примерно так:

kubectl config view --flatten > merged-config.yaml

Проверить Освоение файла KUBECONFIG , Организация доступа к кластеру с помощью файлов kubeconfig для получения дополнительных объяснений и просмотра некоторых других примеры.

...