This is a record of architectural decisions made during the development of the Cloud Platform.
To understand why we are recording decisions and how we are doing it, please see ADR-000
- ✅ 0. Record Architecture Decisions
- ✅ 1. Use AWS hosted Elasticsearch
- ✅ 2. Use GitHub for architecture decision log
- ✅ 3. Use Concourse CI
- ✅ 4. Use kubernetes for running containerised applications
- ✅ 5. Monitoring and Alerting of ECR Image counts
- ✅ 6. Use GitHub as our identity provider
- ✅ 7. Use ECR As Container Registry
- ✅ 8. Support Deployments from Third Party CI
- ✅ 9. Naming convention for clusters
- ✅ 10. live-0 to live-1 Cluster
- ✅ 11. Introduce Open Policy Agent
- ✅ 12. One cluster for dev/staging/prod
- ✅ 13. Use RSpec for cluster tests
- ✅ 14. Why we build our own kubernetes cluster
- ✅ 15. Keeping Terraform modules up to date
- ✅ 16. Kibana is open to all service teams
- 🤔 17. Variable names are in snake-case
- ❌ 18. Dedicated ingress controllers
- 🤔 19. Shared ingress controllers
- 🤔 20. Environments and Pipeline
- ⌛️ 21. Multi-cluster
- ✅ 22. EKS
- ✅ 23. Logging
- 🤔 24. Use SSO for CP Team to access AWS Console
- ✅ 25. Domain names
- 🤔 26. Managed Prometheus
- 🤔 27. AWS Console access for users
- 🤔 28. Repo vulnerability scanning
- 🤔 29. Kubernetes security config auditing
- 🤔 30. AWS Root User Security
- 🤔 31. Image vulnerability scanning
- ✅ 33. Manager cluster
- 🤔 34. EKS Fargate
- ✅ 35. Deprecated TLS Versions
- ✅ 36. Multi-cluster
- ❌ 37. Serverless (Lambda/Functions-as-a-Service)
- Proposed: 🤔
- Accepted: ✅
- Rejected: ❌
- Superseded: ⌛️
- Amended: ♻️