https://github.com/abgeo/kubectl-action
GitHub Action for interacting with kubectl
https://github.com/abgeo/kubectl-action
ci cli docker github-actions k8s kubectl shell
Last synced: about 2 months ago
JSON representation
GitHub Action for interacting with kubectl
- Host: GitHub
- URL: https://github.com/abgeo/kubectl-action
- Owner: ABGEO
- License: mit
- Created: 2022-10-19T11:18:28.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-19T14:25:46.000Z (over 3 years ago)
- Last Synced: 2025-04-10T00:46:39.785Z (about 1 year ago)
- Topics: ci, cli, docker, github-actions, k8s, kubectl, shell
- Language: Shell
- Homepage:
- Size: 4.88 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kubectl
GitHub Action for interacting with kubectl
## Usage
```yaml
- uses: abgeo/kubectl-action@1.25.3
env:
KUBE_HOST: ${{ secrets.KUBE_HOST }}
KUBE_CERTIFICATE: ${{ secrets.KUBE_CERTIFICATE }}
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }}
KUBE_NAMESPACE: ${{ secrets.KUBE_NAMESPACE }}
```
## Environment variables
To work with this action you have to create service account with all the necessary RBAC permissions.
After you create the account you should retrieve `ca.crt` and `token` from its secret. We will use those values later.
| Variable | Type | Description |
|------------------|--------|----------------------------------------------|
| KUBE_HOST | string | Hostname of your cluster (without protocol!) |
| KUBE_CERTIFICATE | string | base64-encrypted value of `ca.crt` secret |
| KUBE_TOKEN | string | `token` secret |
| KUBE_NAMESPACE | string | k8s namespace of your service account |
## Example
```yaml
name: Get Pods
on: [ push ]
jobs:
pods:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: abgeo/kubectl-action@1.25.3
env:
KUBE_HOST: ${{ secrets.KUBE_HOST }}
KUBE_CERTIFICATE: ${{ secrets.KUBE_CERTIFICATE }}
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }}
KUBE_NAMESPACE: ${{ secrets.KUBE_NAMESPACE }}
with:
arg: get pods
```
```yaml
name: Deploy API
on: [ push ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup kubectl
uses: abgeo/kubectl-action@1.25.3
env:
KUBE_HOST: ${{ secrets.KUBE_HOST }}
KUBE_CERTIFICATE: ${{ secrets.KUBE_CERTIFICATE }}
KUBE_TOKEN: ${{ secrets.KUBE_TOKEN }}
KUBE_NAMESPACE: ${{ secrets.KUBE_NAMESPACE }}
- name: kubectl get deployments
uses: abgeo/kubectl-action@1.25.3
with:
arg: get deployments
- name: kubectl apply
uses: abgeo/kubectl-action@1.25.3
with:
arg: apply -f deployments.yaml
```
## Authors
- [Temuri Takalandze](https://abgeo.dev) - *Maintainer*
## License
Copyright (c) 2022 [Temuri Takalandze](https://abgeo.dev).
Released under the [GPL-3.0](LICENSE) license.