diff --git a/README.md b/README.md index dc25fb3..5807a87 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,51 @@ +# Todo App Kubernetes Deployment + +This repository contains the Kubernetes configuration files to deploy the Todo App. Follow the instructions below to deploy the application on your Kubernetes cluster. + +## Description + +The Todo App is a simple web application that allows users to create, read, update, and delete todo items. It is built using Node.js and is containerized using Docker. + +## Containers Used + +- **elineen/todo-app:latest**: The main application container that runs the Todo App. + +## Kubernetes Objects + +- **Namespace**: `my-namespace` - The namespace in which all other objects are created. +- **Deployment**: Defines the deployment configuration for the Todo App. +- **StatefulSet**: Defines the stateful set configuration for the Todo App, including PersistentVolume and PersistentVolumeClaim objects. +- **Service**: Exposes the Todo App to the network. + +## Virtual Networks and Named Volumes + +- **PersistentVolume**: Defines a persistent volume for storing application data. +- **PersistentVolumeClaim**: Claims the persistent volume for use by the StatefulSet. + +## Container Configuration + +The container configuration includes the following: +- **Image**: `elineen/todo-app:latest` +- **Ports**: The application listens on port 8080. +- **Volume Mounts**: The container mounts the persistent volume at `/data`. + +## Instructions + +### Prerequisites + +- Kubernetes cluster (e.g., Minikube, Docker Desktop, or a cloud provider like GKE, EKS, AKS) +- `kubectl` command-line tool installed and configured to interact with your Kubernetes cluster +- Docker installed and configured to pull images from Docker Hub + +### Prepare the Application + +Run the following script to prepare the application, build the Docker image, and create the persistent volumes: + +```bash +./prepare-app.sh + + + # Web Application Deployment to Kubernetes ## Description