Sign inSign up

devopsnirvana/aws-helm-multi-deploy

By devopsnirvana

Updated about 4 years ago

Image
0

202

devopsnirvana/aws-helm-multi-deploy repository overview

Kubernetes Helm Multi-Deploy (Pre-Built Docker Image)

:warning: This action's docker image is pulled from DockerHub. If you don't trust us and want to build the image at runtime see here.

This GitHub Action will deploy all Helm chart folders inside a 'deployment' folder in your repository root. Useful for deploying multiple services that are in separate charts. For example:

my-awesome-app/
├── README.md
├── deployment
│   ├── my-deployment-1
│   │   ├── Chart.yaml
|   |   ├── requirements.yaml
│   │   ├── values-dev.yaml
│   │   ├── values-prod.yaml
│   │   └── values.yaml
│   └── my-deployment-2
│       ├── Chart.yaml
│       ├── values-dev.yaml
│       ├── values-prod.yaml
│       └── values.yaml
└── src
    └── etc

For the above file system, this action will deploy my-deployment-1, my-deployment-2, and any other charts under the deployment folder. Each chart can contain subcharts too.

If you define the input environment-slug, then values-<env>.yaml will be applied on top of your values.yml. e.g. if you define environment-slug=dev, then the options -f values.yaml -f values-dev.yaml will be passed to helm (if values-dev.yaml exists). This is to provide the option of having different settings per environment.

Inputs

InputRequiredDefaultDescription
aws-access-key-idyesN/AAWS access key for the cluster
aws-secret-access-keyyesN/AAWS secret key for the cluster
aws-regionnous-east-1AWS region for the cluster
cluster-nameyesN/ACluster name in EKS
image-tagyesN/AImage tag to use in each deployment.
k8s-namespaceyesN/ADeployment namespace in kubernetes.
environment-slugnoN/AShort name of the deployment environment (dev, prod, etc). Set this if you have a values-<env>.yaml.
dry-runnofalseSkip actual deployment and only show a diff.

Example Usage

jobs:
  build:
    steps:
      - uses: actions/checkout@v3
      - uses: docker/build-push-action@v3
          ...

  deploy:
    needs: build
    steps:
      - uses: actions/checkout@v2
      - uses: DevOps-Nirvana/k8s-helm-multi-deploy@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
          cluster-name: primary
          environment-slug: dev
          k8s-namespace: my-dev-ns
          image-tag: my-dev-image-tag

Tag summary

Content type

Image

Digest

Size

357.2 MB

Last updated

about 4 years ago

docker pull devopsnirvana/aws-helm-multi-deploy