# sandeepsilumula/universal-infra-portfolio architecture

> Architecture diagram of the GitHub repository sandeepsilumula/universal-infra-portfolio, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-20). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sandeepsilumula/universal-infra-portfolio
- Repository: https://github.com/sandeepsilumula/universal-infra-portfolio

## Overview

1. This repository is a Terraform-only, multi-cloud infrastructure layout. It is organized around three independent deployment roots: `aws/`, `azure/`, and `gcp/`.

2. The main architectural choice is the “Multi-Root Pattern”: each cloud has its own Terraform root module and provider configuration, so AWS, Azure, and GCP are deployed as separate execution domains rather than one combined dependency graph.

3. The root directories are the orchestration layer. Each of `aws/main.tf`, `azure/main.tf`, and `gcp/main.tf` is where cloud-specific resources are composed, while `providers.tf` and `variables.tf` define provider setup and input contract for that cloud’s stack.

4. The `modules/` directory contains reusable lower-level infrastructure logic, split by cloud: `modules/aws_network`, `modules/azure_network`, and `modules/gcp_network`. These are the resource-building units consumed by the corresponding root.

5. The primary functional subsystem in the repo is networking. The module names indicate each cloud root is focused on building a network baseline rather than a full application stack.

6. Cross-cloud coupling is intentionally avoided. There is no shared module that spans providers, which matches the README’s claim of “absolute provider isolation” and prevents Terraform from attempting to authenticate against multiple clouds in one graph.

7. The dependency flow is simple: operator or CI enters one cloud root, Terraform loads that root’s provider and variables, then that root calls only the matching cloud module to create resources. There is no architectural path from AWS resources to Azure or GCP resources.

8. The repository appears designed for independent lifecycle management per cloud. This means each cloud stack can be initialized, planned, and applied separately, with failures or credentials in one provider not affecting the others.

9. The GitHub Actions workflow in `.github/workflows/deploy.yml` likely automates deployment. Given the repo structure, it probably targets one root at a time rather than deploying all clouds from one Terraform invocation.

10. The README describes interactive terminal prompts for environment selection (`dev`, `staging`, `prod`). That suggests environment selection is an input to the root-level Terraform execution, not a separate directory structure in the repo.

11. The key architectural boundary is therefore: root directories = execution and provider boundary; modules = resource implementation boundary; cloud provider = isolation boundary.

12. From an architecture-diagram perspective, the clearest model is three parallel stacks:
   AWS root → AWS network module,
   Azure root → Azure network module,
   GCP root → GCP network module,
   with CI/CD as an external trigger feeding those roots.

Main entry points: [`.github/workflows/deploy.yml`](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/.github/workflows/deploy.yml) (Deploy workflow), [`aws/main.tf`](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/aws/main.tf) (AWS root), [`azure/main.tf`](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/azure/main.tf) (Azure root), [`gcp/main.tf`](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/gcp/main.tf) (GCP root)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_automation["Automation"]
  node_github_actions_deploy["Deploy workflow<br/>ci workflow<br/>[deploy.yml]"]
end

subgraph group_aws_stack["AWS Stack"]
  node_aws_root["AWS root<br/>terraform root<br/>[main.tf]"]
end

subgraph group_azure_stack["Azure Stack"]
  node_azure_root["Azure root<br/>terraform root<br/>[main.tf]"]
end

subgraph group_gcp_stack["GCP Stack"]
  node_gcp_root["GCP root<br/>terraform root<br/>[main.tf]"]
end

subgraph group_modules["Reusable Modules"]
  node_aws_network["AWS network<br/>network module<br/>[main.tf]"]
  node_azure_network["Azure network<br/>network module<br/>[main.tf]"]
  node_gcp_network["GCP network<br/>network module<br/>[main.tf]"]
end

node_github_actions_deploy -.->|"triggers"| node_aws_root
node_github_actions_deploy -.->|"triggers"| node_azure_root
node_github_actions_deploy -.->|"triggers"| node_gcp_root
node_aws_root -->|"uses"| node_aws_network
node_azure_root -->|"uses"| node_azure_network
node_gcp_root -->|"uses"| node_gcp_network

click node_github_actions_deploy "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/.github/workflows/deploy.yml"
click node_aws_root "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/aws/main.tf"
click node_azure_root "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/azure/main.tf"
click node_gcp_root "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/gcp/main.tf"
click node_aws_network "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/modules/aws_network/main.tf"
click node_azure_network "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/modules/azure_network/main.tf"
click node_gcp_network "https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/modules/gcp_network/main.tf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_github_actions_deploy toneBlue
class node_aws_root toneAmber
class node_azure_root toneMint
class node_gcp_root toneRose
class node_aws_network,node_azure_network,node_gcp_network toneIndigo
```

## Components

### Automation

Repository-level deployment orchestration.

- [Deploy workflow](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/.github/workflows/deploy.yml): ci workflow · GitHub Actions entrypoint for deployments. · `.github/workflows/deploy.yml`

### AWS Stack

Independent Terraform root for AWS.

- [AWS root](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/aws/main.tf): terraform root · AWS execution domain with provider and variables. · `aws/main.tf`

### Azure Stack

Independent Terraform root for Azure.

- [Azure root](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/azure/main.tf): terraform root · Azure execution domain with provider and variables. · `azure/main.tf`

### GCP Stack

Independent Terraform root for GCP.

- [GCP root](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/gcp/main.tf): terraform root · GCP execution domain with provider and variables. · `gcp/main.tf`

### Reusable Modules

Cloud-specific Terraform modules reused by each root.

- [AWS network](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/modules/aws_network/main.tf): network module · Reusable AWS networking baseline. · `modules/aws_network/main.tf`
- [Azure network](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/modules/azure_network/main.tf): network module · Reusable Azure networking baseline. · `modules/azure_network/main.tf`
- [GCP network](https://github.com/sandeepsilumula/universal-infra-portfolio/blob/main/modules/gcp_network/main.tf): network module · Reusable GCP networking baseline. · `modules/gcp_network/main.tf`

## Connections

- Deploy workflow → AWS root: triggers · Automation can target the AWS execution root.
- Deploy workflow → Azure root: triggers · Automation can target the Azure execution root.
- Deploy workflow → GCP root: triggers · Automation can target the GCP execution root.
- AWS root → AWS network: uses · AWS root composes the AWS network module.
- Azure root → Azure network: uses · Azure root composes the Azure network module.
- GCP root → GCP network: uses · GCP root composes the GCP network module.
