Skip to content

feat/infra: Migrate to AWS EKS Native Architecture with GitHub Actions CI and ArgoCD GitOps#3385

Closed
siddarth-kashyap wants to merge 38 commits into
GoogleCloudPlatform:mainfrom
siddarth-kashyap:main
Closed

feat/infra: Migrate to AWS EKS Native Architecture with GitHub Actions CI and ArgoCD GitOps#3385
siddarth-kashyap wants to merge 38 commits into
GoogleCloudPlatform:mainfrom
siddarth-kashyap:main

Conversation

@siddarth-kashyap

Copy link
Copy Markdown

Overview

This Pull Request introduces a comprehensive architectural overhaul, transitioning the platform from its generic, pre-configured Google Cloud Platform framework into a fully customized, AWS-native, production-grade microservices deployment.

The infrastructure has been completely replatformed to run seamlessly on AWS Elastic Kubernetes Service (EKS), complete with end-to-end CI/CD automation, asset decoupling, and GitOps continuous delivery. Additionally, all unused legacy deployment directories (helm-chart, kustomize, terraform) have been purged to streamline the repository layout.

Changes Made

1. Cloud Replatforming & Infrastructure

  • AWS EKS Integration: Configured and deployed the 11-tier polyglot microservices stack onto an AWS EKS cluster utilizing high-availability managed worker node groups.
  • Asset Decoupling via AWS S3: Decoupled static media (corporate branding assets, product images) from local image context by offloading storage to a public-read AWS S3 bucket with an explicitly defined public bucket policy.

2. Automation & CI/CD Pipeline Engineering

  • GitHub Actions Continuous Integration: Developed a robust nested monorepo CI workflow (ci-main.yaml) that:
    • Executes code compilation and test validations.
    • Securely authenticates with AWS via native workflows.
    • Dynamically builds custom Docker container images for frontend and productcatalogservice.
    • Automatically tags images using unique Git commit SHAs and pushes them to private AWS Elastic Container Registries (ECR).
  • Automated Manifest Upgrades: Programmed the CI runner with elevated repository write permissions (contents: write) to automatically modify Kubernetes manifests with matching runtime tags and commit changes back to the origin, bypassing recursive triggers using the [skip ci] flag.

3. Continuous Delivery & SRE Enhancements

  • GitOps via ArgoCD: Deployed ArgoCD into the EKS control plane to poll manifest states, ensuring fully declarative deployment state synchronization.
  • Go Runtime Schema Alignment: Patched a severe, silent application panic inside the frontend Go runtime (money.Must) caused by rigid JSON currency schema requirements during catalog interactions. Restructured product pricing payloads (currencyCode: "USD", units, nanos) within products.json to guarantee data typing integrity.
  • Worker Node Scaling Optimization: Resolved critical elastic network interface (ENI) IP exhaustion constraints inherent to t3.small nodes by adjusting deployment footprints and programmatically autoscaling the managed node counts.

Why These Changes Were Made

  • Maintainability & Portability: Transitioning to standard Kubernetes YAML manifests managed by a central GitOps controller (ArgoCD) eliminates vendor lock-in and aligns with modern cloud-engineering principles.
  • Resource Cost Optimization: Offloading static media to AWS S3 severely minimizes localized container compute constraints and reduces network overhead inside the cluster.
  • Reliability and Speed: Eliminating manual image manipulation and hardcoded AWS account variables prevents human deployment errors, creating a reliable, zero-touch automated development lifecycle.

Testing & Verification

  • Verified successful automated container compilation across the GitHub Actions engine.
  • Audited live pod log streams (kubectl logs deployment/frontend -f) to ensure successful database updates and zero remaining runtime panics during edge-case actions (such as adding bespoke products to the shopping cart).
  • Validated public accessibility of the platform via the provisioned AWS Elastic Load Balancer endpoint.

Associated Issue

Closes # (If applicable, or leave blank)

@siddarth-kashyap
siddarth-kashyap requested review from a team and yoshi-approver as code owners June 11, 2026 13:12
@google-cla

google-cla Bot commented Jun 11, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@siddarth-kashyap

Copy link
Copy Markdown
Author

@googlebot I signed it!

@olivi-eh

olivi-eh commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Please read the contributing guide before opening a PR, you'll notice that this PR falls way out of it.

https://github.com/GoogleCloudPlatform/microservices-demo/blob/main/.github/CONTRIBUTING.md

@olivi-eh olivi-eh closed this Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants