This repository contains a pattern for the configuration of management of a collection of Kubernetes clusters, using ArgoCD as the deployment framework.
You can find the documentation for the platform in the https://appvia.github.io/kubernetes-platform
Managing multiple Kubernetes clusters across different environments presents challenges in consistency, scalability, and automation. This solution provides:
- Standardized provisioning – Automate cluster creation with Infrastructure as Code (IaC).
- Gitops-based management – Declarative, version-controlled deployments using ArgoCD.
- Flexible architectures – Support for both distributed and hub-and-spoke models.
- Secure multi-cluster operations – Enforce policies, RBAC, and secrets management at scale.
- Tenants Applications - Provides tenants consumers an easy way to onboard their workloads.
The following depicts the operating model for the platform.
- A platform is made of up a minimum of two repositories, acting as the source of truth
EKS Platform: (this repository) provides a baseline configuration and collection of tested components.Tenant Repository: both a consumer of this package, and the source of truth for the applications deployed to the platform.
- The platform team has ownership of the EKS Platform repository, this responsibility includes:
- Keep the platform up to date with the latest version of the Kubernetes, and the components deployed to it.
- Provide a tested and approved collection of components, to produce an outcome.
- Provide a mechanism for development teams to deploy their applications to the platform.
- Provide a security baseline for workloads running on the platform.
- Work with the development teams to improve the platform, and the applications running on it.
- The
Tenant Repositoryis owned by the development teams, and is used to deploy their applications to the platform.- The consumer the platform repository as a software dependency.
- They are responsible iterating the platform repository the revisions through the software development life cycle i.e promoting the revisions though dev, test, and production to ensure the application stack is aligned.