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.