Skip to content

Create AKS Automatic and EKS Auto Mode pipeline with AKS Store demo #753

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 69 commits into
base: main
Choose a base branch
from

Conversation

rafael-mendes-pereira
Copy link
Contributor

@rafael-mendes-pereira rafael-mendes-pereira commented Jul 22, 2025

This pull request introduces a set of changes to support a new performance evaluation scenario (cluster-automatic) for benchmarking Kubernetes deployments across Azure and AWS clouds. The updates include pipeline configurations, Kubernetes manifests, Terraform inputs, and reusable pipeline steps. Below is a breakdown of the most important changes grouped by theme:

Pipeline Configuration Updates:

  • New Pipeline for Automatic Benchmarking: Added cluster-automatic-single-cluster.yml to define weekly benchmarking triggers, variables, and stages for Azure (eastus2) and AWS (us-east-2) regions. This includes job parameters for topology, engine, and timeout settings.
  • Updated Test Pipeline: Modified new-pipeline-test.yml to align with the cluster-automatic scenario, replacing placeholders with specific values for cloud, regions, topology, and engine.

Kubernetes Manifest Additions:

  • Virtual Customer Deployment: Added aks-store-virtual-customer.yaml to define a Kubernetes deployment for the virtual customer component, including environment variables and resource limits.
  • Virtual Worker Deployment: Added aks-store-virtual-worker.yaml to define a Kubernetes deployment for the virtual worker component with similar configurations.

Terraform Input Enhancements:

  • AWS Architecture Documentation: Expanded aws.tfvars with detailed architecture comments for VPC, subnets, security groups, and EKS configurations. Temporarily disabled NAT gateways and Elastic IPs for testing purposes. [1] [2]
  • Azure Configuration Update: Adjusted azure.tfvars to rename roles and resources for consistency with the cluster-automatic scenario.

Reusable Pipeline Steps:

  • Kubectl Manifest Handling: Added kubectl-manifest.yml to standardize Kubernetes manifest application and deletion, with support for waiting on resource readiness.
  • Cluster Configuration: Added configure-demo.yml to apply manifests for aks-store-all-in-one, virtual-worker, and virtual-customer deployments.
  • Cluster Cleanup: Introduced collect-aks-store-demo.yml for deleting resources post-benchmarking.
  • Cluster Validation: Added validate-resources.yml to refresh credentials, grant RBAC permissions, and apply configurations for the cluster-automatic topology.

Execution and Wait Logic:

  • Execution Step: Added execute-aks-store-demo.yml to introduce a wait mechanism for ensuring readiness before proceeding with benchmarking tasks.

Rafael Mendes Pereira added 30 commits July 21, 2025 19:39
Rafael Mendes Pereira added 16 commits July 22, 2025 19:23
…gion from the regions array"

This reverts commit 7b1d5f3.
…rm inputs for EKS automatic mode"

This reverts commit 00419f3.
…orm inputs for EKS automatic mode"

This reverts commit 1f79cba.
@rafael-mendes-pereira rafael-mendes-pereira changed the title Add Automatic pipleine with AKS Store demo Add AKS Automatic and EKS Auto Mode pipeline with AKS Store demo Jul 22, 2025
@rafael-mendes-pereira rafael-mendes-pereira changed the title Add AKS Automatic and EKS Auto Mode pipeline with AKS Store demo Create AKS Automatic and EKS Auto Mode pipeline with AKS Store demo Jul 22, 2025
Rafael Mendes Pereira added 4 commits July 22, 2025 22:30
@rafael-mendes-pereira rafael-mendes-pereira marked this pull request as ready for review July 22, 2025 21:48
@Copilot Copilot AI review requested due to automatic review settings July 22, 2025 21:48
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a new performance evaluation scenario (cluster-automatic) for benchmarking AKS Automatic and EKS Auto Mode clusters using the AKS Store demo application. The implementation includes complete pipeline orchestration, infrastructure configuration, and Kubernetes manifests for deploying a multi-service demo application.

Key changes include:

  • New weekly scheduled pipeline for automated benchmarking across Azure (eastus2) and AWS (us-east-2) regions
  • Complete AKS Store demo deployment with MongoDB, RabbitMQ, and multiple microservices
  • Enhanced AWS Terraform configuration with detailed network architecture and NAT gateway setup
  • Reusable pipeline steps for kubectl operations, cluster validation, and demo lifecycle management

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
cluster-automatic-single-cluster.yml Weekly scheduled pipeline definition for Azure and AWS benchmarking
validate-resources.yml Azure-specific cluster validation with RBAC setup and kubeconfig conversion
execute-aks-store-demo.yml Simple 60-minute wait step for demo execution
collect-aks-store-demo.yml Demo cleanup orchestration using shared configure-demo template
configure-demo.yml Orchestrates deployment of all three AKS Store manifest components
kubectl-manifest.yml Reusable template for kubectl operations with wait conditions and error handling
azure.tfvars Updates role names from "client" to "automatic" for consistency
aws.tfvars Comprehensive network architecture with private/public subnets and NAT gateways
aks-store-virtual-worker.yaml Virtual worker deployment for load generation (3 replicas, minimal resources)
aks-store-virtual-customer.yaml Virtual customer deployment for load generation (3 replicas, minimal resources)
aks-store-all-in-one.yaml Complete demo application stack with StatefulSets and Services

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.

1 participant