Amazon Elastic Kubernetes Service (EKS) has become the go-to managed Kubernetes solution for enterprises running containerized applications at scale. However, as organizations expand their Kubernetes footprint across multiple clusters, managing governance, security, and compliance across an EKS fleet becomes increasingly complex. Policy as Code is essential for maintaining consistent governance and automation at scale.
In this blog, we will explore how Policy as Code and Infrastructure as Code can be leveraged to enforce security, compliance, and operational best practices across an AWS EKS fleet.
The Challenges of Managing an EKS Fleet
Managing a fleet of EKS clusters presents several challenges:
-
- Inconsistent Configurations: Without standardization, different teams may configure clusters inconsistently, leading to security gaps.
-
- Security & Compliance: Organizations need to enforce policies that comply with security frameworks like CIS benchmarks, PCI DSS, and HIPAA.
-
- Operational Complexity: Handling cluster lifecycle management (creation, scaling, upgrades, addons) can be cumbersome without automation.
-
- RBAC & Access Control: Defining and enforcing role-based access control (RBAC) across multiple clusters is complex.
-
- Cost Optimization: Without governance, resource allocation can be inefficient, leading to unnecessary costs.
By integrating Policy as Code and Infrastructure as Code, organizations can standardize governance and automate compliance across their EKS fleet.
Simplifying Cluster Management
This solution is an extension to the existing EKS workshop on AWS EKS Fleet Management and how we can provide Kubernetes security and governance at scale.
-
- Reduced Developer Friction: Self-service capabilities for resource provisioning and application deployment streamline developer workflows, minimizing friction and increasing efficiency.
- Comprehensive Monitoring: Centralized visibility into cluster health, Compliance, versions, application deployment status, and addon health provides a unified view for monitoring and troubleshooting.
Security and Governance: Ensures security, compliance, and governance requirements are met across all clusters, maintaining a consistent security posture and compliance with industry standards.
How it works
This solution uses a popular approach of the Hub-and-spoke model where the central hub is responsible for deploying ArgoCD on each member (spoke) cluster. The fleet control plane on the Hub cluster includes applications like Hub Secret Store, Fleet Hub Secrets, and Fleet Member Init which automates the cluster registration process and orchestration.

Fleet Bootstrap Deployment steps
-
- The initial setup involves configuring the hub cluster, Cluster registration with Nirmata Control Hub, and external secrets services.
- EKS cluster creation is automated through IaC followed by secret setup and fleet member registration.
- The hub cluster awaits secrets from the spoke clusters, and the fleet control plane manages external secrets and bootstraps the spoke clusters.
- Once registered, ArgoCD and the External Secrets Operator are deployed to the spoke cluster.
- The External Secrets Operator establishes a connection to secrets, deploys add-ons, Nirmata cluster registration, and ArgoCD manages subsequent application deployments.

Resources
The implementation code for the same can be found on GitHub.
Key Takeaways and Next Steps
This Hub-and-Spoke GitOps solution provides a scalable, secure, and efficient way to manage a large number of Kubernetes clusters. It simplifies operations, enhances developer experience, and ensures consistent security and compliance.
Next steps include:
-
- Implement the solution in a production environment.
- Explore additional features and integrations.
If you’re a platform engineer, reach out to learn more about what we are building at Nirmata. And if you’re a creator, passionate about shaping the future of cloud-native, we’re always hiring! Check out our open positions – we’d love to hear from you.
Sorry, the comment form is closed at this time.