您如何设置KUBECONFIG从github操作部署连接到Azure Kubernetes服务?

问题描述

我正在尝试设置部署管道,以通过github操作配置Azure Kubernetes服务。我已经在github操作市场上找到了用于配置各种步骤的步骤,但是我无法将它们的任何组合正确地工作。我不断收到错误消息

加载配置文件时出错 “ / home / runner / work / _temp / kubeconfig_xxxx”:yaml:找不到 预期密钥

或类似的错误提示

加载配置文件时出错,无法获取版本/种类; json解析错误:json:无法将数组解组为struct类型的Go值{APIVersion字符串json:“ apiVersion,omitempty;类型的字符串json:\ kind,omitempty \}

取决于我如何尝试从terraform传递kube_config。如果我在本地运行相同的环境,那么它可以工作,因此我假设在github动作上设置它的方式有问题。

这是我的部署文件

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

我尝试使用bash一步设置KUBECONfig获取pod,但它也失败了。有什么想法我想念的吗?预先感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)