Giter Club home page Giter Club logo

eks-helm-deploy's Introduction

EKS Helm Deploy GitHub Action

This GitHub action uses AWS CLI to login to EKS and deploy a helm chart.

Inputs

Input parameters allow you to specify data that the action expects to use during runtime.

  • aws-secret-access-key: AWS secret access key part of the aws credentials. This is used to login to EKS. (required)
  • aws-access-key-id: AWS access key id part of the aws credentials. This is used to login to EKS. (required)
  • aws-region: AWS region to use. This must match the region your desired cluster lies in. (default: us-west-2)
  • cluster-name: The name of the desired cluster. (required)
  • cluster-role-arn: If you wish to assume an admin role, provide the role arn here to login as.
  • config-files: Comma separated list of helm values files.
  • debug: Enable verbose output.
  • dry-run: Simulate an upgrade.
  • namespace: Kubernetes namespace to use.
  • values: Comma separates list of value set for helms. e.x: key1=value1,key2=value2
  • name: Helm release name. (required)
  • chart-path: The path to the chart. (defaults to helm/)

Example usage

uses: peymanmortazavi/eks-helm-deploy@v1
with:
  aws-access-key-id: ${{ secrets.AWS_ACCESS__KEY_ID }}
  aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  aws-region: us-west-2
  cluster-name: mycluster
  config-files: .github/values/dev.yaml
  namespace: dev
  values: key1=value1,key2=value2
  name: release_name

eks-helm-deploy's People

Contributors

peymanmortazavi avatar yunpengeric avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

eks-helm-deploy's Issues

failed to download repo

@peymanmortazavi I have added eks-helm-deploy job to my git workflow as shown below

- name: Deploy on EKS
  uses: peymanmortazavi/eks-helm-deploy@v1
  with:
    aws-access-key-id: ${{ secrets.AWS_ACCESS__KEY_ID }}
    aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    aws-region: us-west-1
    cluster-name: unitek-dev
    config-files: helm/unitek-open-banking-service/values.yaml
    namespace: monitoring
    name: unitek-open-banking-service

But unfortunately I'm facing this issue

Error: 'peymanmo/eks-helm-deploy' should be either '[path]/Dockerfile' or 'docker://image[:tag]'.

Version 2.2 of the action points to Docker image which does not exist

The action.yml file points to peymanmo/eks-helm-deploy:latest but a latest tag was never pushed to Dockerhub.

image: 'docker://peymanmo/eks-helm-deploy:latest'

This results in the following error when using using action peymanmortazavi/[email protected]:

Pull down action image 'peymanmo/eks-helm-deploy:latest'
  /usr/bin/docker pull peymanmo/eks-helm-deploy:latest
  Error response from daemon: manifest for peymanmo/eks-helm-deploy:latest not found: manifest unknown: manifest unknown
  Warning: Docker pull failed with exit code 1, back off 3.422 seconds before retry.

I think the right solution here would be to push 2.2 as latest to Dockerhub.

cluster-role is not required but always assumed

I'm trying to use this action to install helm charts. In my setup the AWS keys I'm using already give access to the cluster and no role needs to be assumed. However, when I run the workflow I get the error:

An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::1234567890:user/... is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::1234567890:role/blackbox-eks-admin

It seems that the role is always assumed irrespectively of it being defined.

Is there a way to not assume the role, or would that need a PR?

Error: 'peymanmo/eks-helm-deploy' should be either '[path]/Dockerfile' or 'docker://image[:tag]'.

Error: 'peymanmo/eks-helm-deploy' should be either '[path]/Dockerfile' or 'docker://image[:tag]'.

    - name: Deploy to EKS using Helm
      uses: peymanmortazavi/eks-helm-deploy@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: af-south-1
        cluster-name: test-cluster
        namespace: test-development
        values: key1=value1,key2=value2
        name: test-1
        dry-run: true

An error occurred (AccessDenied) when calling the AssumeRole operation

I am using v2.1 of this action everything works fine but on deployment i get following error

Added new context arn:aws:eks:us-east-1:***:cluster/my-cluster to /github/home/.kube/config
Executing: helm upgrade --wait --atomic --install -n default app chart

An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::***:user/app-user is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::118196747825:role/blackbox-eks-admin
Error: Kubernetes cluster unreachable: Get "https://***********gr7.us-east-2.eks.amazonaws.com/version?timeout=32s": getting credentials: exec: exit status 255

i allowed all EKS permissions to the app-user in IAM
Can someone tell me a possible fix for it ?

Error: validation: chart.metadata is required ?

when i run workflow I'm getting this issue.
`Error: validation: chart.metadata is required
Executing: helm upgrade --wait --atomic --install -f ../../helm/open-some/values.yaml -n monitoring open-some helm/

An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam:::user/aks is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam:::role/gitworkflow-openbanking
Error: Kubernetes cluster unreachable: Get "https://asfnasnjfashjghjas.gr7.eu-west-1.eks.amazonaws.com/version?timeout=32s": getting credentials: exec: exit status 255`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.