{"id":19347800,"url":"https://github.com/devopscorner/devopscorner-helm","last_synced_at":"2025-04-23T05:32:29.595Z","repository":{"id":39331331,"uuid":"474642647","full_name":"devopscorner/devopscorner-helm","owner":"devopscorner","description":"Production Grade of HelmChart Template for Multipurpose Application","archived":false,"fork":false,"pushed_at":"2024-10-29T12:26:50.000Z","size":742,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-29T14:53:16.626Z","etag":null,"topics":["deployment","devops","devops-tools","devopscorner","eks","helm","helmchart","helmfile","ingress-alb","ingress-nginx","jenkins","kubernetes","spinnaker","websocket"],"latest_commit_sha":null,"homepage":"https://devopscorner.id","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devopscorner.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-27T13:15:39.000Z","updated_at":"2024-10-29T12:26:53.000Z","dependencies_parsed_at":"2023-02-19T13:30:59.320Z","dependency_job_id":"4185a05b-3f62-4354-9f4f-fb31c1db4455","html_url":"https://github.com/devopscorner/devopscorner-helm","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopscorner%2Fdevopscorner-helm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopscorner%2Fdevopscorner-helm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopscorner%2Fdevopscorner-helm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopscorner%2Fdevopscorner-helm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devopscorner","download_url":"https://codeload.github.com/devopscorner/devopscorner-helm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223910289,"owners_count":17223663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment","devops","devops-tools","devopscorner","eks","helm","helmchart","helmfile","ingress-alb","ingress-nginx","jenkins","kubernetes","spinnaker","websocket"],"created_at":"2024-11-10T04:18:04.456Z","updated_at":"2024-11-10T04:18:06.400Z","avatar_url":"https://github.com/devopscorner.png","language":"Smarty","readme":"# DevOpsCorner Helm Chart\n\n![all contributors](https://img.shields.io/github/contributors/devopscorner/devopscorner-helm)\n![tags](https://img.shields.io/github/v/tag/devopscorner/devopscorner-helm?sort=semver)\n![download all](https://img.shields.io/github/downloads/devopscorner/devopscorner-helm/total.svg)\n![download latest](https://img.shields.io/github/downloads/devopscorner/devopscorner-helm/1.5.0/total)\n![view](https://views.whatilearened.today/views/github/devopscorner/devopscorner-helm.svg)\n![clone](https://img.shields.io/badge/dynamic/json?color=success\u0026label=clone\u0026query=count\u0026url=https://raw.githubusercontent.com/devopscorner/devopscorner-helm/master/clone.json?raw=True\u0026logo=github)\n![issues](https://img.shields.io/github/issues/devopscorner/devopscorner-helm)\n![pull requests](https://img.shields.io/github/issues-pr/devopscorner/devopscorner-helm)\n![forks](https://img.shields.io/github/forks/devopscorner/devopscorner-helm)\n![stars](https://img.shields.io/github/stars/devopscorner/devopscorner-helm)\n[![license](https://img.shields.io/github/license/devopscorner/devopscorner-helm)](https://img.shields.io/github/license/devopscorner/devopscorner-helm)\n\nHelm chart for devopscorner services (Semantic Version)\n\n---\n\n## Prerequirements\n\n- Helm\n\n  ```\n  ### Linux ###\n  $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3\n  $ chmod 700 get_helm.sh\n  $ ./get_helm.sh\n\n  ### MacOS ###\n  $ brew install helm\n  ```\n\n- Helmfile\n\n  ```\n  wget https://github.com/roboll/helmfile/releases/download/v0.139.7/helmfile_linux_amd64\n  chmod +x helmfile_linux_amd64\n  sudo mv helmfile_linux_amd64 /usr/local/bin/helmfile\n  ```\n\n- Helm Plugins\n\n  ```\n  helm plugin install https://github.com/databus23/helm-diff\n  helm plugin install https://github.com/hypnoglow/helm-s3.git\n  ```\n\n- Added Mandatory Repository\n\n  ```\n  helm repo add stable https://charts.helm.sh/stable\n  helm repo update\n  ```\n\n## Helm Repository\n\n- Check Repository Helm\n\n  ```\n  helm repo list\n  ----\n  NAME            URL\n  stable          https://charts.helm.sh/stable\n  ```\n\n- Adding Repository Helm\n\n  ```\n  ### LAB ###\n  helm s3 init s3://devopscorner-helm-chart/lab\n  AWS_REGION=ap-southeast-1 helm repo add devopscorner-lab s3://devopscorner-helm-chart/lab\n\n  ### STAGING ###\n  helm s3 init s3://devopscorner-helm-chart/staging\n  AWS_REGION=ap-southeast-1 helm repo add devopscorner-staging s3://devopscorner-helm-chart/staging\n\n  ### PRODUCTION ###\n  helm s3 init s3://devopscorner-helm-chart/prod\n  AWS_REGION=ap-southeast-1 helm repo add devopscorner s3://devopscorner-helm-chart/prod\n\n  helm repo update\n  ```\n\n## Testing Helm\n\n- Testing the chart template\n\n  ```\n  helm template ./api -f api/values.yaml\n  helm template ./backend -f backend/values.yaml\n  helm template ./frontend -f frontend/values.yaml\n  helm template ./svcrole -f svcrole/values.yaml\n  ```\n\n## Create Helm Template\n\n- Create a zip package of helm chart\n\n  ```\n  helm package api\n  helm package backend\n  helm package frontend\n  helm package svcrole\n  ```\n\n## Update Helm Template\n\n- Push chart into private repository\n\n  ```\n  ### LAB ###\n  helm s3 push api-[version].tgz devopscorner-lab --force\n  helm s3 push backend-[version].tgz devopscorner-lab --force\n  helm s3 push frontend-[version].tgz devopscorner-lab --force\n  helm s3 push svcrole-[version].tgz devopscorner-lab --force\n\n  ### STAGING ###\n  helm s3 push api-[version].tgz devopscorner-staging --force\n  helm s3 push backend-[version].tgz devopscorner-staging --force\n  helm s3 push frontend-[version].tgz devopscorner-staging --force\n  helm s3 push svcrole-[version].tgz devopscorner-staging --force\n  ---\n  ### PRODUCTION ###\n  helm s3 push api-[version].tgz devopscorner --force\n  helm s3 push backend-[version].tgz devopscorner --force\n  helm s3 push frontend-[version].tgz devopscorner --force\n  helm s3 push svcrole-[version].tgz devopscorner --force\n  ```\n\n## Changing Version Helm\n\n- Update `version` value in Chart Template `Chart.yaml`\n\n  ```\n  apiVersion: v1\n  name: api\n  description: A Helm chart for Kubernetes\n\n  # A chart can be either an 'application' or a 'library' chart.\n  #\n  # Application charts are a collection of templates that can be packaged into versioned archives\n  # to be deployed.\n  #\n  # Library charts provide useful utilities or functions for the chart developer. They're included as\n  # a dependency of application charts to inject those utilities and functions into the rendering\n  # pipeline. Library charts do not define any templates and therefore cannot be deployed.\n  type: application\n\n  # This is the chart version. This version number should be incremented each time you make changes\n  # to the chart and its templates, including the app version.\n  # Versions are expected to follow Semantic Versioning (https://semver.org/)\n  version: 0.3.0     ### Change HERE\n\n  # This is the version number of the application being deployed. This version number should be\n  # incremented each time you make changes to the application. Versions are not expected to\n  # follow Semantic Versioning. They should reflect the version the application is using.\n  # It is recommended to use it with quotes.\n  appVersion: \"1.16.0\"\n  ```\n\n## HELM Template Structure\n\n```\nlab\n├── api\n│   ├── Chart.yaml\n│   ├── api.yaml\n│   ├── templates\n│   │   ├── _helpers.tpl\n│   │   ├── clusterrole.yaml\n│   │   ├── configmap.yaml\n│   │   ├── deployment.yaml\n│   │   ├── hpa.yaml\n│   │   ├── ingress.yaml\n│   │   ├── secret.yaml\n│   │   ├── service.yaml\n│   │   └── serviceaccount.yaml\n│   └── values.yaml\n├── backend\n│   ├── Chart.yaml\n│   ├── backend.yaml\n│   ├── templates\n│   │   ├── _helpers.tpl\n│   │   ├── clusterrole.yaml\n│   │   ├── configmap.yaml\n│   │   ├── deployment.yaml\n│   │   ├── hpa.yaml\n│   │   ├── ingress.yaml\n│   │   ├── secret.yaml\n│   │   ├── service.yaml\n│   │   └── serviceaccount.yaml\n│   └── values.yaml\n├── configmap\n│   ├── Chart.yaml\n│   ├── configmap.yaml\n│   ├── templates\n│   │   ├── _helpers.tpl\n│   │   └── configmap.yaml\n│   └── values.yaml\n├── frontend\n│   ├── Chart.yaml\n│   ├── frontend.yaml\n│   ├── templates\n│   │   ├── _helpers.tpl\n│   │   ├── clusterrole.yaml\n│   │   ├── configmap.yaml\n│   │   ├── deployment.yaml\n│   │   ├── hpa.yaml\n│   │   ├── ingress.yaml\n│   │   ├── secret.yaml\n│   │   ├── service.yaml\n│   │   └── serviceaccount.yaml\n│   └── values.yaml\n├── helm-pack-lab.sh\n├── helm-push-lab.sh\n├── secretref\n│   ├── Chart.yaml\n│   ├── secretref.yaml\n│   ├── templates\n│   │   ├── _helpers.tpl\n│   │   └── secret.yaml\n│   └── values.yaml\n...\n...\n├── stateful\n│   ├── Chart.yaml\n│   ├── stateful.yaml\n│   ├── templates\n│   │   ├── _helpers.tpl\n│   │   ├── clusterrole.yaml\n│   │   ├── configmap.yaml\n│   │   ├── deployment.yaml\n│   │   ├── hpa.yaml\n│   │   ├── ingress.yaml\n│   │   ├── pv.yaml\n│   │   ├── pvc.yaml\n│   │   ├── secret.yaml\n│   │   ├── service.yaml\n│   │   └── serviceaccount.yaml\n│   └── values.yaml\n└── svcrole\n    ├── Chart.yaml\n    ├── templates\n    │   ├── _helpers.tpl\n    │   ├── clusterrole.yaml\n    │   ├── rolebinding.yaml\n    │   └── serviceaccount.yaml\n    └── values.yaml\n\n26 directories, 140 files\n```\n\n## Service HELM Template\n\n- Structure on services repo\n\n```\n_infra/\n   dev/\n      helmfile.yaml\n      values/\n            api/values.yaml\n            backend/values.yaml\n            frontend/values.yaml\n            svcrole/values.yaml\n```\n\n## ECR Deployment\n\n- ECR Login\n\n  ```\n  aws ecr get-login-password --region [AWS_REGION] | docker login --username AWS --password-stdin [ERC_PATH]\n  ---\n  aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin [AWS_ACCOUNT].dkr.ecr.ap-southeast-1.amazonaws.com\n  ```\n\n- ECR Build\n\n  ```\n  docker build [DOCKERFILE_PATH] -t [DOCKER_IMAGE_NAME]:[TAG]\n  ---\n  docker build . -t zeroc0d3/laravel-kubernetes:latest\n  docker build /home/ubuntu/Dockerfile -t zeroc0d3/laravel-kubernetes:latest\n  ```\n\n- ECR Push\n\n  ```\n  docker tag [DOCKER_IMAGE_NAME]:[TAG] [ECR_PATH]/[DOCKER_IMAGE_NAME]:[TAG]\n  docker push [ECR_PATH]/[DOCKER_IMAGE_NAME]:[TAG]\n  ---\n  docker tag devopscorner/laravel-kubernetes:latest [AWS_ACCOUNT].dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/laravel-kubernetes:latest\n  docker push [AWS_ACCOUNT].dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/laravel-kubernetes:latest\n  ```\n\n- ECR Pull\n\n  ```\n  docker pull [ECR_PATH]/[DOCKER_IMAGE_NAME]:[TAG]\n  ---\n  docker pull [AWS_ACCOUNT].dkr.ecr.ap-southeast-1.amazonaws.com/devopscorner/laravel-kubernetes:latest\n  ```\n\n## Copyright\n\n- Author: **DevOps Corner**\n- License: **Apache v2**\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevopscorner%2Fdevopscorner-helm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevopscorner%2Fdevopscorner-helm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevopscorner%2Fdevopscorner-helm/lists"}