{"id":35183665,"url":"https://github.com/sameedshoaibb/care-banking-platform","last_synced_at":"2026-01-13T21:33:02.941Z","repository":{"id":330632545,"uuid":"1123422955","full_name":"sameedshoaibb/care-banking-platform","owner":"sameedshoaibb","description":"Production-grade Platform for Care-Banking-app","archived":false,"fork":false,"pushed_at":"2025-12-31T13:11:48.000Z","size":873,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-31T20:40:15.695Z","etag":null,"topics":["ansible","argocd","docker","jenkins","kubernetes","sonarqube","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sameedshoaibb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-26T20:57:21.000Z","updated_at":"2025-12-31T13:11:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sameedshoaibb/care-banking-platform","commit_stats":null,"previous_names":["sameedshoaibb/care-banking-platform"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sameedshoaibb/care-banking-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameedshoaibb%2Fcare-banking-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameedshoaibb%2Fcare-banking-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameedshoaibb%2Fcare-banking-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameedshoaibb%2Fcare-banking-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sameedshoaibb","download_url":"https://codeload.github.com/sameedshoaibb/care-banking-platform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameedshoaibb%2Fcare-banking-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","argocd","docker","jenkins","kubernetes","sonarqube","terraform"],"created_at":"2025-12-29T04:20:02.389Z","updated_at":"2026-01-13T21:33:02.929Z","avatar_url":"https://github.com/sameedshoaibb.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Care Banking Platform\n\n## Purpose\n\nAn end-to-end DevOps platform where CI pipeline build and test the banking application, and **GitOps** approach ensures secure, auditable, pull-based deployments to Kubernetes by synchronizing cluster state from Git.\n\n## What's Inside\n\n### Platform Folder\nInfrastructure setup for Kubernetes on a single node.\n\n- **Terraform** - Sets up cloud infrastructure on Azure (VM, networking, security)\n- **Ansible** - Installs Docker, Kubernetes, Jenkins, and ArgoCD on the node\n\n### Care-Banking-App Folder\nThe application and its deployment config.\n\n- **Source code** - Node.js/TypeScript app with 6 endpoints for account management\n- **Helm charts** - Kubernetes manifests for dev, staging, and prod environments\n- **Dockerfile** - Multi stage build with security hardening\n- **Jenkinsfile** - 13 stage CI/CD pipeline with security scans\n\n## Project Workflow\n\n**Prerequisites (One-time Setup):**\n- Set up Docker Hub account and create access token\n- Create Jenkins pipeline and configure secrets\n- Add Docker Hub credentials in Jenkins\n- Set up GitHub webhook to trigger Jenkins pipeline\n- Connect ArgoCD to your Git repo\n- Link ArgoCD to Kubernetes cluster\n\n**Once setup is completed, the automated flow will look like:**\n\n- **Developer pushes code to GitHub** \n- **GitHub triggers Jenkins pipeline via webhook** \n- **DevSecOps pipeline executes** - Builds Docker image, runs security tests, pushes to Docker Hub, updates deployment config\n- **ArgoCD detects configuration changes** - Automatically syncs to Kubernetes cluster\n- **App is live in ~5 minutes** \n\n**For detailed pipeline setup and configuration**, see the README files in `platform/` and `care-banking-app/` folders.\n\n## Key Technologies\n\n- **Terraform** - Azure infrastructure (VM, network, security)\n- **Ansible** - Server setup and tool installation\n- **Kubernetes** - Container orchestration (single node)\n- **Docker** - Containerization\n- **Helm** - Kubernetes deployment management\n- **Jenkins** - CI/CD pipeline automation\n- **ArgoCD** - GitOps deployment\n\n## Getting Started\n\n### Step 1: Terraform\nDeploy infrastructure with Terraform:\n- Ubuntu VM running in Azure \n- Virtual network with security rules configured\n- Static public IP assigned to the VM\n\n**For detailed instructions:** See `platform/terraform/README.md`\n\n### Step 2: Ansible\nEdit `platform/ansible/inventory.ini` with your Terraform VM Public IP:\n- VM public IP address (from terraform output)\n- SSH key path\n\n### Step 3: Run Ansible Playbook\nFrom the `platform/ansible` folder, run:\n```bash\nansible-playbook -i inventory.ini setup.yml\n```\n\nThis will install and configure the VM:\n- Harden VM with non-root user with sudo privileges\n- Docker container runtime\n- Kubernetes single-node cluster via kubeadm\n- Jenkins CI/CD server\n- Helm package manager\n- ArgoCD GitOps platform\n- UFW firewall \n\nTakes about 10-15 minutes to complete.\n\n**For detailed instructions:** See `platform/ansible/README.md`\n\n### Step 4: Deploy the Banking App\nEnsure all Prerequisites (One-time Setup) from the \"Project Workflow\" section are configured.\nThen push code changes to GitHub and it will automatically build and deploy via the CI/CD pipeline.\n\n**For detailed instructions:** See `care-banking-app/README.md`\n\n## Detailed Documentation\n\nEach folder contains its own README with complete details:\n\n- **platform/terraform/README.md** - Infrastructure setup\n- **platform/ansible/README.md** - What gets installed\n- **care-banking-app/README.md** - Application deployment guide\n\nStart with these README files for in-depth information about each component.\n\n## CI/CD \u0026 Deployment Tools\n\n**Jenkins** - Builds the app, runs security scans, pushes Docker image to Docker Hub, updates deployment config.\n\n![Jenkins Pipeline](assets/images/jenkins-pipeline.png)_\n\n\n\n**SonarCloud** - Code quality and security analysis.\n\n![SonarQube](assets/images/sonarqube.png)\n_\n\n\n**ArgoCD** - Automatically syncs Git changes to Kubernetes.\n\n![ArgoCD](assets/images/argocd.png)\n\n## Project Structure\n\nRead in this order: Terraform → Ansible → Care-Banking-App\n\n```\ncare-banking-platform/\n├── README.md\n├── assets/\n│   └── images/\n│       ├── jenkins-pipeline.png\n│       ├── sonarqube.png\n│       └── argocd.png\n│\n├── platform/\n│   ├── terraform/                    ← Start here: Creates cloud infrastructure\n│   │   ├── README.md\n│   │   ├── main.tf\n│   │   ├── providers.tf\n│   │   ├── variables.tf\n│   │   ├── outputs.tf\n│   │   └── modules/\n│   │       ├── azure-resource-group/\n│   │       ├── azure-vnet/\n│   │       └── azure-vm/\n│   │\n│   └── ansible/                      ← Then here: Configures the VM\n│       ├── README.md\n│       ├── ansible.cfg\n│       ├── inventory.ini\n│       ├── setup.yml\n│       ├── requirements.yml\n│       ├── group_vars/\n│       │   └── all.yml\n│       └── scripts/\n│\n└── care-banking-app/                 ← Finally: Deploy your application\n    ├── README.md\n    ├── Jenkinsfile\n    ├── Dockerfile\n    ├── config.json\n    ├── package.json\n    ├── pnpm-lock.yaml\n    ├── tsconfig.json\n    ├── deploy.sh\n    ├── start.sh\n    │\n    ├── src/                          (Node.js/TypeScript source code)\n    │   ├── index.ts\n    │   ├── app.ts\n    │   ├── config.ts\n    │   ├── state.ts\n    │   ├── adminRoutes.ts\n    │   └── userRoutes.ts\n    │\n    └── helm/                         (Kubernetes deployment configs)\n        ├── Chart.yaml\n        ├── README.md\n        ├── values.yaml\n        ├── values.dev.yaml\n        ├── values.staging.yaml\n        ├── values.prod.yaml\n        └── templates/\n            ├── _helpers.tpl\n            ├── configmap.yaml\n            ├── deployment.yaml\n            ├── ingress.yaml\n            ├── secret.yaml\n            ├── service.yaml\n            ├── rbac/\n            │   ├── role.yaml\n            │   ├── rolebinding.yaml\n            │   └── serviceaccount.yaml\n            ├── storage/\n            │   ├── pv.yaml\n            │   └── pvc.yaml\n            ├── policies/\n            │   ├── networkpolicy.yaml\n            │   ├── poddisruptionbudget.yaml\n            │   └── resourcequota.yaml\n            ├── advanced/\n            │   ├── cronjob.yaml\n            │   ├── hpa.yaml\n            │   └── priorityclass.yaml\n            ├── nginx/\n            │   └── configmap-nginx.yaml\n            └── tests/\n                └── test-connection.yaml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameedshoaibb%2Fcare-banking-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsameedshoaibb%2Fcare-banking-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameedshoaibb%2Fcare-banking-platform/lists"}