All Projects → ConsenSys → kubernetes-action

ConsenSys / kubernetes-action

Licence: other
GitHub Action to run kubectl

Programming Languages

Dockerfile
14818 projects
shell
77523 projects

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].