#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, и это также не удалось. Есть идеи, чего мне не хватает? Заранее спасибо!