在 github 操作中保留 k8s 的秘密

我们正在尝试使用,并且我们希望保留敏感数据,例如在github内部,我创建了一个带有名称的GitHub秘密github actionskubeconfigsecretsKUBECONFIG1


重现步骤


在GitHub秘密中,我应该存储以下文件,也尝试使用此 https://onlineyamltools.com/convert-yaml-to-json


apiVersion: v1

kind: Config

clusters:

  - name: brf

    cluster:

      certificate-authority-data: >-

        LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURTakNBd0t6RXBNQ2NHQTFVRUF4TWdkbWx5ZE2bUljTlRtakFWCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=

      server: 'https://vfg.canary.k8s.ondemand.com'

users:

  - name: user1

    user:

      token: >-

        eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuW1lc3BhY2UiOiJnYXJkZW4tZGV2e

contexts:

  - name: g-root

    context:

      cluster: garv

      user: robot

      namespace: gking

current-context: gaot


在github操作工作流程中,我们将上面的文件内容与名称一起保存,并从中创建k8s秘密。KUBECONFIG1


name: Example action


on: [push]


jobs:

  build:

    runs-on: ubuntu-latest

    timeout-minutes: 5

    steps:

      - uses: actions/checkout@v2

      - name: install k8s

        run: |

          curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE=777 sh -

          cat /etc/rancher/k3s/k3s.yaml

          mkdir -p ~/.kube

          cp /etc/rancher/k3s/k3s.yaml ~/.kube/config



     - run: 'echo -e "$KUBECONFIG1" > ~/.tmpfile.json'

        shell: bash

        env:

          KUBECONFIG1: ${{secrets.KUBECONFIG1}}

    

      - name: example 

        shell: bash

        run: |

          cd ~/

          kubectl create secret generic project-kubecfg --from-file=~/.tmpfile.json -n default

运行此工作流后,我收到以下错误:


error: error loading config file "/home/runner/work/_temp/kubeconfig_1617030542039": couldn't get version/kind; json parse error: json: cannot unmarshal string into Go value of type struct *** APIVersion string "json:\"apiVersion,omitempty\""; Kind string "json:\"kind,omitempty\"" ***

Error: Process completed with exit code 1.

慕标5832272
浏览 121回答 1
1回答

慕容森

问题出在以下命令上kubectl create secret generic project-kubecfg --from-file=~/.tmpfile.json -n default问题是转到哪个不会将其扩展到主目录。因此,如果您像下面那样更改它,它将起作用~kubectlkubectl create secret generic project-kubecfg --from-file=/home/runner/.tmpfile.json -n default或者更确切地说,使用固定路径而不是主目录~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go