How balachmir-cp-2077/cloud-native-devops-platform works
This repository delivers a Flask service through a documented CI, image-publishing, and GitOps workflow. A developer change triggers GitHub Actions to test, build, scan, and publish an immutable image to ECR, then update the Helm image tag. Argo CD watches that desired state and synchronizes it to Kubernetes, where the service is exposed through ingress. Helm also defines configuration, secrets, probes, and scaling. Terraform provisions AWS registry resources. Workflow and deployment links follow the README; application behavior is grounded in the sampled Flask source, while unsampled deployment wiring is represented only where documented.
Main entry points: ci.yml CI Workflow · kind-config.yaml kind Cluster · application.yaml Argo CD · app.py Flask Application
Components 21
Application
- Flask Application
app/src/app.py
CI and Publishing
- CI Workflow
.github/workflows/ci.yml - Python Tests
app/tests - Image Build
app/Dockerfile - Vulnerability Scan
.github/workflows/ci.yml - AWS OIDC Auth
.github/workflows/ci.yml - Helm Tag Update
.github/workflows/ci.yml
GitOps Deployment
- Helm Chart
helm/cloud-native-app - Argo CD
argocd/application.yaml - kind Cluster
kubernetes/cluster/kind-config.yaml - App Deployment
helm/cloud-native-app/templates/deployment.yaml - Kubernetes Service
helm/cloud-native-app/templates/service.yaml - NGINX Ingress
helm/cloud-native-app/templates/ingress.yaml - App Configuration
helm/cloud-native-app/templates/configmap.yaml - App Secrets
helm/cloud-native-app/templates/secret.yaml
AWS Infrastructure
- Amazon ECR
- AWS IAM
infrastructure/aws/iam - ECR Provisioning
infrastructure/modules/ecr
Other components
- Developer
- GitHub Repository
- HTTP Client
Connections 21
- Developer → GitHub Repository: pushes changes
- GitHub Repository → CI Workflow: triggers
- CI Workflow → Python Tests: runs tests
- CI Workflow → Image Build: builds image
- CI Workflow → Vulnerability Scan: scans image
- CI Workflow → AWS OIDC Auth: authenticates via
- AWS OIDC Auth → AWS IAM: assumes role
- CI Workflow → Amazon ECR: publishes image
- ECR Provisioning → Amazon ECR: provisions registry
- CI Workflow → Helm Tag Update: updates tag
- Helm Tag Update → GitHub Repository: commits change
- Argo CD → GitHub Repository: watches chart
- Argo CD → kind Cluster: synchronizes desired state
- kind Cluster → App Deployment: runs workload
- kind Cluster → Kubernetes Service: creates service
- kind Cluster → App Configuration: applies configuration
- kind Cluster → App Secrets: applies secrets
- App Deployment → Amazon ECR: pulls image
- NGINX Ingress → Flask Application: routes requests
- HTTP Client → NGINX Ingress: sends HTTP request
- Flask Application → HTTP Client: returns JSON