Github 操作:使用 kubectl 创建命名空间以部署构建

Github Action: Creating namespace using kubectl in order to deploy the build

我正在创建一个 GitHub 工作流操作,以将构建部署到一个集成集群中,为此,我首先想使用 kubectl 创建一个命名空间,但我收到一个错误: error: You must be logged in to the server (Unauthorized)

这是我的 action.yaml 片段

        uses: cancue/eks-action@v0.0.2
        env:
          aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws_region: $AWS_REGION
          cluster_name: $EKS_CLUSTER_NAME
          kubeconfig: ${{ secrets.INTEGRATION_CLUSTER_SECRETS }}
        with:
          args: |
             kubectl create ns namespace:pr#${{ github.sha }}

我是编写动作工作流的新手。 提前致谢。

你可以试试

- name: verify deployment
      uses: kodermax/kubectl-aws-eks@master
      env:
        KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
      with:
        args: create ns <namespace-name>

但是您的配置看起来不错,但是 确保 您已经为 kubeconfig 添加了正确的数据。

此外,请检查您正在使用的 access_keysecret_key 是否有权访问 EKS 集群。

示例:https://github.com/marketplace/actions/kubectl-aws-eks

快速修复 :

一旦你在环境中设置了访问和秘密,使用命令从 AWS 获取配置,你就可以删除在 Gitaction seceret 中添加配置文件。

aws eks update-kubeconfig --region ap-south-1 --name <Cluster name>

秘密

KUBE_CONFIG_DATA – 必需:base64 编码的 kubeconfig 文件,其中包含 Kubernetes 访问集群的凭据。您可以通过运行以下命令获取它:

cat $HOME/.kube/config | base64