This repository is dedicated to demonstrating the process of establishing a robust application architecture on a Minikube cluster using Istio. The focus is on configuring and deploying infrastructure components to ensure secure communication, namespace isolation, and effective traffic routing with Istio's advanced capabilities like path-based routing.
- Establish secure namespaces for application components.
- Deploy and configure core services with a focus on architecture rather than application logic.
- Utilize Istio for:
- Path-based routing for service traffic.
- Enabling observability and secure communication.
- Showcase foundational setups that can scale with additional features like circuit-breaking and mTLS enforcement.
This repository is for developers and architects who:
- Want to learn how to implement Kubernetes and Istio for application deployment.
- Need a starting point for designing secure and scalable service architectures.
- Are looking for examples of Istio configurations on a local Minikube setup.
- Contains individual application files for four apps:
- Python source files (
.py
): (Dummy)Application logic for each app. requirements.txt
: Dependencies for each app.- Dockerfile: Used to containerize each app.
- Python source files (
- Apps included:
- Control Plane
- Guardrails
- Summariser
- Mock LLM
- Houses the core infrastructure setup for deploying the application architecture on Minikube, including:
- Istio installation and configuration.
- Namespace creation with Istio injection enabled.
- Ingress gateway setup for path-based routing.
This repository does not focus on the development of application business logic. Instead, it serves as a guide to:
- Set up a Kubernetes environment with Istio.
- Manage secure and scalable application deployment.
- Configure essential Istio features for traffic management and security.
For detailed application logic, users are encouraged to integrate their own business requirements into the provided deployment architecture.
This repository is public for reference purposes only. Contributions in the form of issues, pull requests, or feature requests are not accepted. If you'd like to use or modify this project, please fork it.
This project is licensed under the MIT License - see the LICENSE file for details.