Skip to content

Latest commit

History

87 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

EKS deployments with Helm

GitHub action for deploying to AWS EKS clusters using helm.

Note: If your EKS cluster administrative access is in a private network, you will need to use a self hosted runner in that network to use this action.

Customizing

Note on chart repository / oci registry

Although Helm repositories are different than OCI registries, the chart-repository variable supports both options.

See example below for reference, but should be similar to using a repo.

Inputs

Following inputs can be used as step.with keys

NameTypeDescription
aws-secret-access-keyStringAWS secret access key part of the aws credentials. This is used to login to EKS.
aws-access-key-idStringAWS access key id part of the aws credentials. This is used to login to EKS.
aws-regionStringAWS region to use. This must match the region your desired cluster lies in.
cluster-nameStringThe name of the desired cluster.
cluster-role-arnStringIf you wish to assume an admin role, provide the role arn here to login as.
actionStringDetermines if we install or uninstall the chart. (Optional, Defaults to install)
config-filesStringComma separated list of helm values files.
namespaceStringKubernetes namespace to use. Will create if it does not exist
valuesStringComma separated list of value set for helms. e.x:key1=value1,key2=value2
nameStringThe name of the helm release
chart-pathStringThe path to the chart. (defaults to helm/)
chart-repositoryStringThe URL of the chart-repository (Optional) Note: If oci based registry, set url to oci://
versionStringThe version of the chart (Optional)
pluginsStringComma separated list of plugins to install. e.x: https://github.com/hypnoglow/helm-s3.git, https://github.com/someuser/helm-plugin.git (defaults to none)
timeoutStringThe value of the timeout for the helm release
update-depsStringUpdate chart dependencies
helm-waitStringAdd the helm --wait flag to the helm Release (Optional)
atomicStringAdd the helm --atomic flag if set (Optional)
ca-fileStringVerify certificates of HTTPS-enabled servers using this CA bundle.
cert-fileStringIdentify HTTPS client using this SSL certificate file.
key-fileStringIdentify HTTPS client using this SSL key file.
insecure-skip-tls-verifyStringSkip tls certificate checks for the chart download.
pass-credentialsStringPass credentials to all domains. set (Optional)
usernameStringChart repository username where to locate the requested chart.
passwordStringChart repository password where to locate the requested chart.

Example 1 - local repo chart

 - name: Deploy Helmuses: macmiranda/github-actions-deploy-eks-helm@v0.4.0with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}aws-region: us-west-2cluster-name: myclusterconfig-files: .github/values/dev.yamlchart-path: chart/namespace: devvalues: key1=value1,key2=value2name: release_name

Example 2 - Custom Chart Repo

 - name: Deploy Helmuses: macmiranda/github-actions-deploy-eks-helm@v0.4.0with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}aws-region: us-west-2cluster-name: myclustercluster-role-arn: ${{ secrets.AWS_ROLE_ARN }}config-files: fluent-bit/prod/values.yamlchart-path: fluent/fluent-bitnamespace: loggingname: fluent-bitchart-repository: https://fluent.github.io/helm-chartsversion: 0.20.6atomic: true

Example 3 - OCI Chart Repo

 - name: Deploy Helmuses: macmiranda/github-actions-deploy-eks-helm@v0.4.0with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}aws-region: us-west-2cluster-name: myclustercluster-role-arn: ${{ secrets.AWS_ROLE_ARN }}chart-repository: oci://registry.iochart-path: organization/chartnamespace: orgname: some-nameversion: 0.1.0

Example 4 - Separate AWS login

 - name: Configure AWS credentialsuses: aws-actions/configure-aws-credentials@v1with:
role-to-assume: arn:aws:iam::${{ env.aws-account-id }}:role/${{ env.aws-assume-role }}aws-region: ${{ env.aws-region }}
- name: Install Helm Chartuses: macmiranda/github-actions-deploy-eks-helm@v0.4.0with:
aws-region: ${{ env.aws-region }}cluster-name: eks-cluster-${{ env.environment }}... (put your other arguments here)

Example Uninstall

 - name: Deploy Helmuses: macmiranda/github-actions-deploy-eks-helm@v0.4.0with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}aws-region: us-west-2action: uninstallcluster-name: myclusternamespace: devname: release_name

Contributing

We would love for you to contribute to macmiranda/github-actions-deploy-eks-helm. Issues and Pull Requests are welcome!

License

The scripts and documentation in this project are released under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages