Fetches the config for your DigitalOcean Kubernetes Cluster, then installs and configures kubectl
, exposing it to path for future use!
Disclaimer: As of late, I haven't been using much Kubernetes in my daily projects. I've been focusing more on developing with serverless functions. Because of this, I haven't been making use of this GitHub Action either, so I haven't been able to find any bugs or feature ideas. Consider this project relatively unmaintained. That is to say, if you do make use of it and would like to submit and Issue outlining a problem you're facing, or a feature you want to implement, I will definitely be around to address those. Thank you.
For help updating, view the change logs.
Type | Systems | Note |
---|---|---|
GitHub Runners | ubuntu-20.04 , ubuntu-22.04 , macos-11 , macos-12 , windows-2019 , windows-2022 |
All available GitHub hosted runners. |
Self-Hosted Runners | linux-amd64 , linux-arm64 , linux-s390x , macOS-x64 , windows-x64 |
Not tested, but in theory should work as long as kubectl is available for your system. |
Name | Requirement | Description |
---|---|---|
personalAccessToken |
Required | A DigitalOcean Personal Access Token to use for authentication, when fetching cluster credentials from DigitalOcean. Must be tied to the same account as the Kubernetes Cluster you are trying to operate on. For instructions, see here. |
clusterName |
Required | The name of the cluster you are trying to operate on. This was chosen during the "Choose a name" step when originally creating the cluster. |
version |
Optional | The kubectl version to use. Remember to omit "v" prefix, for example: 1.16.0 . Defaults to 1.16.0 . See example below. |
expirationTime |
Optional | Amount of time, in seconds, that the generated DigitalOcean Token has to live. Typically should be slightly longer than the amount of time your job will run. Defaults to 600. See example below. |
namespace |
Optional | The Kubernetes namespace to operate under. Defaults to default . |
# Set up the Kubernetes CLI with your DigitalOcean Kubernetes cluster.
- name: Set up kubectl
uses: matootie/[email protected]
with:
personalAccessToken: ${{ secrets.DIGITALOCEAN_TOKEN }}
clusterName: my-fabulous-cluster
# Run any kubectl commands you want!
- name: Get nodes
run: kubectl get nodes
This will setup kubectl
configured with your DigitalOcean Kubernetes cluster. After that you're free to use kubectl
as you wish!
# Set up the Kubernetes CLI with your DigitalOcean Kubernetes cluster.
- name: Set up kubectl
uses: matootie/[email protected]
with:
personalAccessToken: ${{ secrets.DIGITALOCEAN_TOKEN }}
clusterName: my-fabulous-cluster
version: "1.20.15"
# Run any kubectl commands you want!
- name: Get nodes
run: kubectl get nodes
If you would like to install a specific version of kubectl
, you can specify it with the version
input.
# Set up the Kubernetes CLI with your DigitalOcean Kubernetes cluster.
- name: Set up kubectl
uses: matootie/[email protected]
with:
personalAccessToken: ${{ secrets.DIGITALOCEAN_TOKEN }}
clusterName: my-fabulous-cluster
expirationTime: "1200"
# Run any kubectl commands you want!
- name: Get nodes
run: kubectl get nodes
The generated Kubernetes config is set to only last a short amount of time, as it is only expected to be used for the duration of the job. If you would like to specify a shorter or larger time, better tailored to the average length of your job, you can do so with the expirationTime
input.