# ibnuzamra/end-to-end-devops-pipeline architecture

> Architecture diagram of the GitHub repository ibnuzamra/end-to-end-devops-pipeline, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ibnuzamra/end-to-end-devops-pipeline
- Repository: https://github.com/ibnuzamra/end-to-end-devops-pipeline

## Overview

This repository describes an end-to-end AWS infrastructure and application delivery system: Terraform provisions the platform, GitLab CI validates and scans container images, and Kargo and Argo CD promote and deploy them across environments. The README documents these workflows and the tree identifies their configuration locations; the only sampled source excerpt is the Go container Dockerfile, so most runtime connections shown here reflect documented behavior rather than inspected implementation.

Main entry points: [`gitlab-ci/.gitlab-ci.yml`](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml) (GitLab CI), [`terraform/env`](https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/terraform/env) (Environment Roots), [`gitops/kargo/stages.yaml`](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitops/kargo/stages.yaml) (Kargo Promotion), [`gitops/argocd`](https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/gitops/argocd) (Argo CD Applications)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_infrastructure["Infrastructure"]
  node_atlantis["Atlantis<br/>[atlantis.yaml]"]
  node_terraform_env["Environment Roots"]
  node_terraform_modules["Terraform Modules"]
end

subgraph group_ci["CI and Security"]
  node_gitlab["GitLab CI<br/>[.gitlab-ci.yml]"]
  node_validation["Tests and SAST<br/>[.gitlab-ci.yml]"]
  node_container["Container Build"]
  node_trivy["Trivy Scan<br/>[.gitlab-ci.yml]"]
  node_inspector["Inspector Scan<br/>[.gitlab-ci.yml]"]
end

subgraph group_gitops["GitOps Delivery"]
  node_kargo["Kargo Promotion<br/>[stages.yaml]"]
  node_warehouse["Image Tracking<br/>[warehouses.yaml]"]
  node_values["Environment Values"]
  node_argocd["Argo CD Applications"]
end

subgraph group_platform["Cloud Platform"]
  node_ecr[("Amazon ECR")]
  node_state[("Terraform State")]
  node_aws["AWS Infrastructure"]
  node_helm[("Helm Chart Registry")]
  node_cluster["Kubernetes Platform"]
end

node_developer(("Developer"))

node_developer -->|"pushes changes"| node_gitlab
node_gitlab -->|"runs checks"| node_validation
node_gitlab -->|"builds image"| node_container
node_gitlab -->|"scans image"| node_trivy
node_gitlab -->|"publishes image"| node_ecr
node_inspector -->|"queries findings"| node_ecr
node_gitlab -->|"requests scan"| node_inspector
node_gitlab -.->|"invokes MR workflow"| node_atlantis
node_atlantis -->|"plans and applies"| node_terraform_env
node_terraform_env -->|"uses modules"| node_terraform_modules
node_terraform_env -->|"stores state"| node_state
node_terraform_env -->|"provisions resources"| node_aws
node_warehouse -->|"tracks images"| node_ecr
node_kargo -->|"uses tracking"| node_warehouse
node_kargo -->|"commits promotions"| node_values
node_argocd -->|"reads configuration"| node_values
node_argocd -->|"pulls chart"| node_helm
node_argocd -->|"synchronizes workloads"| node_cluster
node_kargo -->|"promotes releases"| node_ecr

click node_gitlab "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml"
click node_validation "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml"
click node_container "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/Dockerfile"
click node_trivy "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml"
click node_inspector "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml"
click node_atlantis "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/terraform/atlantis.yaml"
click node_terraform_env "https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/terraform/env"
click node_terraform_modules "https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/terraform/modules"
click node_kargo "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitops/kargo/stages.yaml"
click node_warehouse "https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitops/kargo/warehouses.yaml"
click node_values "https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/gitops/values"
click node_argocd "https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/gitops/argocd"

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_atlantis,node_terraform_env,node_terraform_modules toneBlue
class node_gitlab,node_validation,node_container,node_trivy,node_inspector toneAmber
class node_kargo,node_warehouse,node_values,node_argocd toneMint
class node_ecr,node_state,node_aws,node_helm,node_cluster toneRose
class node_developer toneIndigo
```

## Components

### Infrastructure

- [Atlantis](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/terraform/atlantis.yaml): `terraform/atlantis.yaml`
- [Environment Roots](https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/terraform/env): `terraform/env`
- [Terraform Modules](https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/terraform/modules): `terraform/modules`

### CI and Security

- [GitLab CI](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml): `gitlab-ci/.gitlab-ci.yml`
- [Tests and SAST](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml): `gitlab-ci/.gitlab-ci.yml`
- [Container Build](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/Dockerfile): `gitlab-ci/Dockerfile`
- [Trivy Scan](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml): `gitlab-ci/.gitlab-ci.yml`
- [Inspector Scan](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitlab-ci/.gitlab-ci.yml): `gitlab-ci/.gitlab-ci.yml`

### GitOps Delivery

- [Kargo Promotion](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitops/kargo/stages.yaml): `gitops/kargo/stages.yaml`
- [Image Tracking](https://github.com/ibnuzamra/end-to-end-devops-pipeline/blob/main/gitops/kargo/warehouses.yaml): `gitops/kargo/warehouses.yaml`
- [Environment Values](https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/gitops/values): `gitops/values`
- [Argo CD Applications](https://github.com/ibnuzamra/end-to-end-devops-pipeline/tree/main/gitops/argocd): `gitops/argocd`

### Cloud Platform

- **Amazon ECR**
- **Terraform State**
- **AWS Infrastructure**
- **Helm Chart Registry**
- **Kubernetes Platform**

### Other components

- **Developer**

## Connections

- Developer → GitLab CI: pushes changes
- GitLab CI → Tests and SAST: runs checks
- GitLab CI → Container Build: builds image
- GitLab CI → Trivy Scan: scans image
- GitLab CI → Amazon ECR: publishes image
- Inspector Scan → Amazon ECR: queries findings
- GitLab CI → Inspector Scan: requests scan
- GitLab CI → Atlantis: invokes MR workflow
- Atlantis → Environment Roots: plans and applies
- Environment Roots → Terraform Modules: uses modules
- Environment Roots → Terraform State: stores state
- Environment Roots → AWS Infrastructure: provisions resources
- Image Tracking → Amazon ECR: tracks images
- Kargo Promotion → Image Tracking: uses tracking
- Kargo Promotion → Environment Values: commits promotions
- Argo CD Applications → Environment Values: reads configuration
- Argo CD Applications → Helm Chart Registry: pulls chart
- Argo CD Applications → Kubernetes Platform: synchronizes workloads
- Kargo Promotion → Amazon ECR: promotes releases
