This repository contains the solutions for the ONPK-Final Assignment of the course "Orchestration Tools for Containers". The work demonstrates the deployment of a microservices-based application with a frontend, backend, and MongoDB, leveraging modern DevOps practices.
The repository is organized into the following directories:
- Contains Docker configurations and Dockerfiles for both the backend and frontend applications.
- Subdirectories:
- BackEnd: Dockerfile and related resources for the backend service.
- FrontEnd: Dockerfile and related resources for the frontend service.
- Contains Helm charts for deploying the frontend and backend services, along with MongoDB.
- Supports environment customization via
values-onpkapp.yaml
.
- Tekton pipelines for automating the build and deployment processes.
- Includes secrets and RBAC configurations necessary for pipelines.
- Demonstrates CI/CD best practices using Tekton and FluxCD.
- Infrastructure as Code (IaC) using Terraform to provision resources in Microsoft Azure.
- Modules include Azure Kubernetes Service (AKS), Azure Container Registry (ACR), and Virtual Network.
The main objectives of the assignment are:
- Dockerization: Containerizing frontend and backend applications.
- Helm Deployment: Using Helm charts to automate Kubernetes deployments.
- CI/CD Pipelines: Automating build and deployment using Tekton pipelines.
- Cloud Infrastructure: Provisioning Azure infrastructure using Terraform.
- Docker: Efficient containerization of applications.
- Helm Charts: Modular, reusable configurations for Kubernetes deployments.
- Tekton Pipelines: CI/CD pipelines that automate Docker builds and Kubernetes deployments.
- Terraform: Scalable and reproducible cloud infrastructure.
- DevOps Principles: Emphasis on automation, high availability, and security.
- Docker
- Kubernetes (Minikube or Azure AKS)
- Helm 3+
- Tekton Pipelines
- Terraform
- Docker: Navigate to the
Docker
directory, build the images for both backend and frontend, and push them to Docker Hub. - Helm: Use the Helm charts in the
Helm
directory to deploy the services. - CI/CD: Set up the Tekton pipelines for building and deploying your images.
- Terraform: Deploy Azure infrastructure by running the Terraform scripts in the
Terraform
directory.
- Make sure to configure
values.yaml
files for Helm deployments. - Update credentials in the secrets files for Tekton pipelines.
- Verify the MongoDB initialization scripts before deployment.
- Document your changes and configurations in the relevant directories.
For any questions or clarifications, please reach out via the course communication channels.