Skip to content

gsviec/kubernetes-action

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

kubernetes-action

Interacts with kubernetes clusters calling kubectl commands. Integrates support for AWS EKS.

Usage

Basic Example

name: CI

on:
  - push

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Trigger deploy
        uses: Consensys/kubernetes-action@master
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        with:
          args: apply deployment.yaml

EKS Example

name: CI

on:
  - push

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1

      - name: Trigger deploy
        uses: Consensys/kubernetes-action@master
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        with:
          args: apply deployment.yaml

Config

Secrets

One or more secrets needs to be created to store cluster credentials. (see here for help on creating secrets).

Basic

  • KUBE_CONFIG_DATA: A base64 representation of ~/.kube/config file.
Example
cat ~/.kube/config | base64 | pbcopy # pbcopy will copy the secret to the clipboard (Mac OSX only)

EKS

  • KUBE_CONFIG_DATA: Same as Basic configuration above.

  • AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID of a IAM user with permissions to access the cluster.

  • AWS_SECRET_ACCESS_KEY: AWS_SECRET_ACCESS_KEY of a IAM user with permissions to access the cluster.

Make sure your users has the proper IAM permissions to access your cluster and that its configured inside kubernetes (more info here).

Outputs

  • result: Output of the kubectl command.

Example

      - name: Save container image
        id: image-save
        uses: Consensys/kubernetes-action@master
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        with:
          args: get deploy foo -o jsonpath="{..image}"

      - name: Print image
        run: 
          echo ${{ steps.image-save.outputs.result }}

More info on how to use outputs here.

About

GitHub Action to run kubectl

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dockerfile 57.0%
  • Shell 43.0%