Skip to content

explicit-logic/kubernetes-module-10.7

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Module 10 - Container Orchestration with Kubernetes

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

Prerequisites

  • A running Kubernetes cluster (e.g., DigitalOcean)
  • kubectl configured and connected to your cluster
  • Helm installed (v3+)
  • Helmfile installed (for Option 2)

Previous Steps

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

Project Structure

.
├── 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

Option 1: Deploy Microservices with Helm

This approach uses shell scripts that run individual helm install commands for each service.

Install

chmod u+x install.sh
./install.sh

Install script output

Uninstall

chmod u+x uninstall.sh
./uninstall.sh

Uninstall script output


Option 2: Deploy Microservices with Helmfile

Helmfile provides a declarative way to manage multiple Helm releases in a single file. See helmfile.yaml for the full configuration.

1. Install Helmfile

macOS:

brew install helmfile

Linux:

# Download the latest release from https://github.com/helmfile/helmfile/releases

2. Deploy all releases

helmfile sync

Helmfile sync output

3. Verify deployment

helmfile list
kubectl get pod

Deployment status

4. Access the application

Get the external IP of the frontend service:

kubectl get svc

Service list

Then navigate to http://<EXTERNAL-IP> in your browser.

Application running

5. Clean up

helmfile destroy

Helmfile destroy output

About

Deploy Microservices with Helmfile

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages