{"id":50815359,"url":"https://github.com/justsaumit/astroshop-gitops","last_synced_at":"2026-06-13T09:01:58.137Z","repository":{"id":325049521,"uuid":"1099621194","full_name":"justsaumit/astroshop-gitops","owner":"justsaumit","description":"GitOps implementation of OpenTelemetry Demo astronomy e-commerce app on AWS EKS.  Features 19 microservices, Terraform IaC, ArgoCD for deployments, multi-environment  setup, and full observability with distributed tracing.","archived":false,"fork":false,"pushed_at":"2025-11-19T08:33:56.000Z","size":3896,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-19T10:19:10.334Z","etag":null,"topics":["argocd","gitops","opentelemetry-demo","terraform"],"latest_commit_sha":null,"homepage":"","language":"Mustache","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/justsaumit.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-11-19T08:23:56.000Z","updated_at":"2025-11-19T08:36:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/justsaumit/astroshop-gitops","commit_stats":null,"previous_names":["justsaumit/astroshop-gitops"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/justsaumit/astroshop-gitops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justsaumit%2Fastroshop-gitops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justsaumit%2Fastroshop-gitops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justsaumit%2Fastroshop-gitops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justsaumit%2Fastroshop-gitops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justsaumit","download_url":"https://codeload.github.com/justsaumit/astroshop-gitops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justsaumit%2Fastroshop-gitops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34278154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["argocd","gitops","opentelemetry-demo","terraform"],"created_at":"2026-06-13T09:01:57.453Z","updated_at":"2026-06-13T09:01:58.128Z","avatar_url":"https://github.com/justsaumit.png","language":"Mustache","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Astroshop GitOps\n\nA GitOps implementation of the OpenTelemetry Demo microservices application deployed on AWS EKS using Terraform and ArgoCD.\n\n[![OpenTelemetry](https://img.shields.io/badge/OpenTelemetry-2.1.3-blueviolet?style=flat-square)](https://github.com/open-telemetry/opentelemetry-demo)\n[![Kubernetes](https://img.shields.io/badge/Kubernetes-1.32+-326CE5?style=flat-square\u0026logo=kubernetes)](https://kubernetes.io/)\n[![ArgoCD](https://img.shields.io/badge/ArgoCD-GitOps-orange?style=flat-square)](https://argo-cd.readthedocs.io/)\n[![Terraform](https://img.shields.io/badge/Terraform-IaC-7B42BC?style=flat-square\u0026logo=terraform)](https://terraform.io/)\n\n\u003e **Note**: This is my attempt to deploy the [OpenTelemetry Demo](https://github.com/open-telemetry/opentelemetry-demo) (v2.1.3) on AWS using Terraform for infrastructure and ArgoCD for GitOps-based application management. Thanks to all the OpenTelemetry contributors for the amazing demo application!\n\n## 📋 What's Inside\n\n- **Infrastructure**: Terraform modules for AWS VPC and EKS cluster\n- **Applications**: Helm charts for 19 microservices\n- **GitOps**: ArgoCD ApplicationSet for multi-environment deployments\n- **CI/CD**: GitHub Actions workflow for automated deployments\n- **Observability**: OpenTelemetry instrumentation across all services\n\n## 🏗️ Architecture\n\n```\nAWS Cloud\n├── VPC (Terraform)\n│   ├── Public Subnets\n│   └── Private Subnets\n│\n└── EKS Cluster (Terraform)\n    ├── Dev Environment (astroshop-dev)\n    ├── QA Environment (astroshop-qa)\n    └── Prod Environment (astroshop-prod)\n        │\n        └── 19 Microservices\n            ├── Frontend (React + Envoy)\n            ├── Backend Services (Go, .NET, Python, Java, etc.)\n            └── Supporting Services (Kafka, Redis, Flagd)\n```\n\n## 📦 Repository Structure\n\n```\n.\n├── astroshop-helm/              # Helm charts for all services\n│   ├── accounting/\n│   ├── cart/\n│   ├── checkout/\n│   ├── productcatalog/\n│   └── ... (15 more services)\n│\n├── astroshop-terraform/         # Infrastructure as Code\n│   ├── modules/\n│   │   ├── eks/                 # EKS cluster module\n│   │   └── vpc/                 # VPC networking module\n│   └── main.tf\n│\n├── argocd/                      # ArgoCD configurations\n│   └── argocd-applicationset.yaml\n│\n└── .github/workflows/           # CI/CD pipelines\n    └── build-and-deploy.yaml\n```\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- AWS CLI configured with appropriate credentials\n- kubectl, helm, terraform, and argocd CLI installed\n- Docker for building images\n\n### 1. Deploy Infrastructure\n\n```bash\ncd astroshop-terraform\nterraform init\nterraform apply -var-file=terraform.tfvars\n\n# Configure kubectl\naws eks update-kubeconfig --region \u003cregion\u003e --name \u003ccluster-name\u003e\n```\n\n### 2. Install ArgoCD\n\n```bash\nkubectl create namespace argocd\nkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml\n\n# Get admin password\nkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 -d\n```\n\n### 3. Deploy Applications\n\n```bash\n# Apply ApplicationSet\nkubectl apply -f argocd/argocd-applicationset.yaml\n\n# Verify applications\nkubectl get applications -n argocd -l app.kubernetes.io/part-of=astroshop\n```\n\n### 4. Access the Application\n\n```bash\nkubectl port-forward -n astroshop-dev svc/opentelemetry-demo-frontendproxy 8080:8080\n# Open http://localhost:8080\n```\n\n## 📸 Screenshots\n\n### Homepage - Astronomy Shop\n![Homepage](media/pic-sel-25-10-04--01-20-17.png)\n*Landing page: \"The best telescopes to see the world closer\"*\n\n### Product Catalog\n![Hot Products](media/pic-sel-25-10-04--01-20-29.png)\n*Browse telescopes, binoculars, and astronomy equipment*\n\n### Product Details\n![Product Page](media/pic-sel-25-10-04--01-20-50.png)\n*Solar System Color Imager - $175.00 with recommendations*\n\n### Shopping Cart\n![Shopping Cart](media/pic-sel-25-10-04--01-21-14.png)\n*Cart with currency conversion (USD to INR) and shipping calculation*\n\n### Checkout - Address\n![Checkout Address](media/pic-sel-25-10-04--01-21-42.png)\n*Shipping address form during checkout process*\n\n### Checkout - Payment\n![Payment Method](media/pic-sel-25-10-04--01-21-51.png)\n*Payment details with credit card form*\n\n### Order Confirmation\n![Order Complete](media/pic-sel-25-10-04--01-21-59.png)\n*Order confirmation with shipping details*\n\n## 🌍 Multi-Environment Setup\n\n| Environment | Namespace | Sync | Values File |\n|------------|-----------|------|-------------|\n| **Dev** | `astroshop-dev` | Auto | `values.yaml` |\n| **QA** | `astroshop-qa` | Auto | `values-qa.yaml` |\n| **Prod** | `astroshop-prod` | Manual | `values-prod.yaml` |\n\n## 🎯 Services\n\n**Frontend**: frontend, frontendproxy  \n**Backend**: productcatalog, cart, checkout, payment, shipping, currency, email, recommendation, ad  \n**Supporting**: kafka, valkey, flagd, accounting, fraud-detection, imageprovider, quote, loadgenerator\n\n## 🔄 CI/CD Pipeline\n\nGitHub Actions workflow automatically:\n1. Builds Docker images on push to main\n2. Tags with commit SHA\n3. Updates image tags in GitOps repo using `yq`\n4. Triggers ArgoCD sync for dev/qa environments\n\n**Required Secrets**: `DOCKERHUB_USERNAME`, `DOCKERHUB_TOKEN`, `GITOPS_PAT`\n\n## 🔧 Useful Commands\n\n```bash\n# View all applications\nkubectl get applications -n argocd\n\n# Sync specific app\nargocd app sync astroshop-productcatalog-dev\n\n# Check application status\nargocd app get astroshop-productcatalog-prod\n\n# View pod logs\nkubectl logs -n astroshop-dev -l app=productcatalog -f\n\n# Port forward to services\nkubectl port-forward -n astroshop-dev svc/\u003cservice-name\u003e 8080:8080\n```\n\n## 📝 License\n\nMIT License - This is an educational project based on the OpenTelemetry Demo.\n\n## 🙏 Acknowledgments\n\n- [OpenTelemetry Demo](https://github.com/open-telemetry/opentelemetry-demo) team for the excellent microservices demo\n- OpenTelemetry, ArgoCD, Kubernetes, and Terraform communities\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustsaumit%2Fastroshop-gitops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustsaumit%2Fastroshop-gitops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustsaumit%2Fastroshop-gitops/lists"}