This repository contains a demo project created as part of my DevOps studies in the TechWorld with Nana – DevOps Bootcamp.
Demo Project: Deploy Microservices with Helmfile
Technologies used: Kubernetes, Helm, Helmfile
Project Description:
- Deploy Microservices with Helm
- Deploy Microservices with Helmfile
- A running Kubernetes cluster (e.g., DigitalOcean)
kubectlconfigured and connected to your cluster- Helm installed (v3+)
- Helmfile installed (for Option 2)
| Step | Description | Repository |
|---|---|---|
| 1 | Deploy a Microservices Application on Kubernetes with Production & Security Best Practices | kubernetes-module-10.5 |
| 2 | Create Helm Chart for Microservices | kubernetes-module-10.6 |
.
├── charts/
│ ├── microservice/ # Reusable Helm chart for all microservices
│ └── redis/ # Helm chart for Redis
├── values/ # Per-service value overrides
│ ├── ad-service-values.yaml
│ ├── cart-service-values.yaml
│ ├── checkout-service-values.yaml
│ ├── currency-service-values.yaml
│ ├── email-service-values.yaml
│ ├── frontend-service-values.yaml
│ ├── payment-service-values.yaml
│ ├── productcatalog-service-values.yaml
│ ├── recommendation-service-values.yaml
│ ├── redis-values.yaml
│ └── shipping-service-values.yaml
├── helmfile.yaml # Declarative Helmfile configuration
├── install.sh # Manual Helm install script
└── uninstall.sh # Manual Helm uninstall script
This approach uses shell scripts that run individual helm install commands for each service.
chmod u+x install.sh
./install.shchmod u+x uninstall.sh
./uninstall.shHelmfile provides a declarative way to manage multiple Helm releases in a single file. See helmfile.yaml for the full configuration.
macOS:
brew install helmfileLinux:
# Download the latest release from https://github.com/helmfile/helmfile/releaseshelmfile synchelmfile list
kubectl get podGet the external IP of the frontend service:
kubectl get svcThen navigate to http://<EXTERNAL-IP> in your browser.
helmfile destroy





