Как настроить KUBECONFIG для подключения к службе Azure Kubernetes из развертывания github actions?

#kubernetes #terraform #github-actions #azure-aks

#kubernetes #terraform #github-действия #azure-aks

Вопрос:

Я пытаюсь настроить конвейер развертывания для настройки службы Azure Kubernetes из github actions. Я нашел шаги на github actions marketplace для настройки различных шагов, однако я не могу заставить какую-либо их комбинацию работать правильно. Я продолжаю получать ошибки, говорящие

ошибка при загрузке конфигурационного файла «/home / runner / work /_temp /kubeconfig_xxxx»: yaml: не найден ожидаемый ключ

или аналогичные ошибки, говорящие

ошибка при загрузке конфигурационного файла не удалось получить version / kind; ошибка синтаксического анализа json: json: не удается преобразовать массив в значение Go типа struct { apiVersion string json:»apiVersion,omitempty; Строка вида json:kind,omitempty }

в зависимости от того, как я пытаюсь передать kube_config из Terraform. Если я запускаю ту же среду локально, она работает, поэтому я предполагаю, что что-то не так с настройкой в github actions.

Вот мой файл развертывания:

 name: Deploy

on:
  workflow_dispatch:
    inputs:
      <redacted> 

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-18.04
    env:
      <redacted> 
    defaults:
      run:
        shell: bash
    steps:
      - uses: actions/checkout@v2

      - uses: azure/login@v1.1
        with:
          creds: ${{ <redacted> }}

      - name: Generate Terraform backend
        uses: azure/cli@v1.0.3
        with:
          azcliversion: 2.11.1
          inlineScript: |
            <redacted> 

      - uses: hashicorp/setup-terraform@v1.1.0
        with:
          terraform_version: 0.13.0

      - name: Terraform Init
        run: |
          terraform init

      - name: Terraform Plan
        run: |
          terraform plan 
              <redacted> 
              -out=tfplan

      - name: Terraform Apply
        run: |
          terraform apply 
              -auto-approve 
              tfplan

      - uses: azure/setup-kubectl@v1
        with:
          version: 'v1.19.2'

      - uses: azure/setup-helm@v1
        with:
          version: 'v3.3.1'

      - name: Save Config
        run: |
          terraform output kube_config > ./aks.yml

      - name: Set Env
        run: |
          echo ::set-env name=XXX::$(cat ./aks.yml)

      - uses: azure/k8s-set-context@v1
        with:
          method: kubeconfig
          kubeconfig: "${{ env.XXX }}"

      - name: Test
        run: |
          kubectl get pods -o wide
  

Я попытался установить KUBECONFIG и получить модули за один шаг с помощью bash, и это также не удалось. Есть идеи, чего мне не хватает? Заранее спасибо!