Sign inSign up

devopsnirvana/aws-helm-multi-deploy

By devopsnirvana

•Updated over 4 years ago

Image
0

211

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

over 4 years ago

docker pull devopsnirvana/aws-helm-multi-deploy