tale / kubectl-action

GitHub Action to manage a K8s cluster using kubectl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kubectl-action

GitHub Action to manage a K8s (Kubernetes) cluster using kubectl.

Usage

To use this action, add the following step to your GitHub Action workflow:

- uses: tale/kubectl-action@v1
  with:
    base64-kube-config: ${{ secrets.KUBE_CONFIG }}

Keep in mind that the action expects a base64 encoded string of your Kubernetes configuration. The simplest way to do that is to run cat $HOME/.kube/config | base64 and save that output as an action secret. It's additionally possible to generate a config file using the aws CLI for EKS or any other tools with other cloud providers.

It's also possible to specify the version of the kubectl CLI to use. The current default release used by this action is the latest version.

- uses: tale/kubectl-action@v1
  with:
    base64-kube-config: ${{ secrets.KUBE_CONFIG }}
    kubectl-version: v1.22.0

Once you've completed this setup, you have direct access to the kubectl binary and command in the rest of your actions. Here's a full example to give you some inspiration:

name: Kubectl Action

on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: tale/kubectl-action@v1
      with:
        base64-kube-config: ${{ secrets.KUBE_CONFIG }}
    - run: kubectl get pods

Here's an example using AWS EKS:

name: Kubectl Action

on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v4
      with:
        role-to-assume: arn:aws:iam::123456789100:role/my-github-actions-role
        aws-region: us-east-2
    - name: Generate kubeconfig
      run: |
        {
            echo 'EKS_CREDS<<EOF'
            aws eks update-kubeconfig --region us-east-2 --name my-cluster --dry-run | base64
            echo EOF
        } >> $GITHUB_ENV
    - uses: tale/kubectl-action@v1
      with:
        base64-kube-config: ${{ env.EKS_CREDS }}
    - run: kubectl get pods

About

GitHub Action to manage a K8s cluster using kubectl

License:MIT License


Languages

Language:TypeScript 100.0%