Fetches the config for your DigitalOcean Kubernetes Cluster, then installs and configures kubectl
, exposing it to path for future use!
For help updating, view the change logs.
Type | Systems | Note |
---|---|---|
GitHub Runners | ubuntu-16.04 , ubuntu-18.04 , ubuntu-20.04 , macos-10.15 , windows-2016 , windows-2019 |
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. |
- name: Set up kubectl
uses: matootie/[email protected]
with:
personalAccessToken: ${{ secrets.DIGITALOCEAN_TOKEN }}
clusterName: my-fabulous-cluster
- 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!
- name: Set up kubectl
uses: matootie/[email protected]
with:
personalAccessToken: ${{ secrets.DIGITALOCEAN_TOKEN }}
clusterName: my-fabulous-cluster
version: "1.17.4"
- 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.
- name: Set up kubectl
uses: matootie/[email protected]
with:
personalAccessToken: ${{ secrets.DIGITALOCEAN_TOKEN }}
clusterName: my-fabulous-cluster
expirationTime: "1200"
- 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.