# README
= CloudBees action: Configure EKS credentials
Use this action to configure Amazon Elastic Kubernetes Service (EKS) credentials for use in CloudBees workflows.
This action updates your \~/.kube/config
with credentials for connecting to an EKS cluster.
== Prerequisites
Make sure to add the following to your YAML file:
[source,yaml]
- name: Check out repo
uses: actions/checkout@v1
- name: Configure AWS credentials
uses: cloudbees-io/configure-aws-credentials@v1
with:
role-to-assume: arn:aws:iam::123456789012:role/my-github-actions-role
aws-region: aws-region-1
== Inputs
[cols="2a,1a,1a,3a",options="header"] .Input details |===
| Input name | Data type | Required? | Description
| name
| String
| Yes
| The EKS cluster name.
| role-to-assume
| String
| No
| The EKS role to assume.
| user-alias
| String
| No
| The user alias.
| alias
| String
| No
| The EKS alias.
|===
== Usage examples
=== Current credentials role
Authenticate to EKS with the current credentials role.
[source,yaml]
- name: Log in to Amazon EKS
uses: cloudbees-io/configure-eks-credentials@v1
with:
name: my-eks-cluster-name
- name: Do some things with the cluster
uses: docker://alpine/k8s:latest
run: |
kubectl apply -k ...
=== Assume a different role
To get correct credentials for EKS, you may at times need to assume a role different from your current role.
NOTE: The current AWS credentials must be able to assume the role.
[source,yaml]
- name: Log in to Amazon EKS
uses: cloudbees-io/configure-eks-credentials@v1
with:
name: my-eks-cluster-name
role-to-assume: my-eks-admin-role
- name: Do some things with the cluster
uses: docker://alpine/k8s:latest
run: |
helm install ...
TIP: To assume a different role, use the role-session-name
and role-external-id
options available in link:https://github.com/cloudbee-io[configure AWS credentials action].
=== Connect to multiple clusters
Merge the credentials into \~/.kube/config
so you can chain multiple times; for example, if you need to have multiple EKS clusters authenticated, or switch between different authentications for the same cluster.
NOTE: The workflow always sets the current context, so the last one takes precedence.
[source,yaml]
- name: Log in to Amazon EKS as admin
uses: cloudbees-io/configure-eks-credentials@v1
with:
name: my-eks-cluster-name
role-to-assume: my-eks-admin-role
user-alias: admin
alias: cluster-with-admin
- name: Log in to Amazon EKS as regular user
uses: cloudbees-io/configure-eks-credentials@v1
with:
name: my-eks-cluster-name
user-alias: standard
alias: cluster-without-admin
- name: Do some things with the cluster
uses: docker://alpine/k8s:latest
run: |
helm --kubecontext cluster-with-admin install ...
kubectl --context cluster-without-admin get pods ...
kubectl --context cluster-with-admin patch ...
== License
This code is made available under the link:https://opensource.org/license/mit/[MIT license].
== References
- Learn more about link:https://docs.cloudbees.com/docs/cloudbees-saas-platform-actions/latest/[using actions in CloudBees workflows].
- Learn about link:https://docs.cloudbees.com/docs/cloudbees-saas-platform/latest/[the CloudBees platform].