Interacts with kubernetes clusters calling kubectl
commands. Integrates support for AWS EKS.
If you are getting the below issue -
error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"
Update that line/value in your .kube/config file to this -
client.authentication.k8s.io/v1beta1
Then base64 encode it again and update your secret in GitHub.
name: CI
on:
- push
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Trigger deploy
uses: brunoluizkatz/kubernetes-action@master
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
with:
args: apply deployment.yaml
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: brunoluizkatz/kubernetes-action@master
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
with:
args: apply deployment.yaml
One or more secrets needs to be created to store cluster credentials. (see here for help on creating secrets).
- KUBE_CONFIG_DATA: A
base64
representation of~/.kube/config
file.
cat ~/.kube/config | base64 | pbcopy # pbcopy will copy the secret to the clipboard (Mac OSX only)
-
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).
- result: Output of the
kubectl
command.
- name: Save container image
id: image-save
uses: brunoluizkatz-NETZSCH/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.