{"id":30010294,"url":"https://github.com/codewithpraveen/ps-implementing-gitops","last_synced_at":"2026-02-11T01:03:44.310Z","repository":{"id":309503050,"uuid":"1033625131","full_name":"CodeWithPraveen/ps-implementing-gitops","owner":"CodeWithPraveen","description":"Complete GitOps implementation for Kubernetes applications with ArgoCD, FluxCD, and Terraform. Includes multi-environment deployment patterns, infrastructure as code, and GitOps best practices for production-ready Kubernetes workflows.","archived":false,"fork":false,"pushed_at":"2025-08-12T07:35:34.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-12T09:26:29.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","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/CodeWithPraveen.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}},"created_at":"2025-08-07T05:32:19.000Z","updated_at":"2025-08-12T07:35:37.000Z","dependencies_parsed_at":"2025-08-12T09:38:06.424Z","dependency_job_id":null,"html_url":"https://github.com/CodeWithPraveen/ps-implementing-gitops","commit_stats":null,"previous_names":["codewithpraveen/ps-implementing-gitops"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/CodeWithPraveen/ps-implementing-gitops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeWithPraveen%2Fps-implementing-gitops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeWithPraveen%2Fps-implementing-gitops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeWithPraveen%2Fps-implementing-gitops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeWithPraveen%2Fps-implementing-gitops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeWithPraveen","download_url":"https://codeload.github.com/CodeWithPraveen/ps-implementing-gitops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeWithPraveen%2Fps-implementing-gitops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29323969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T00:34:26.354Z","status":"ssl_error","status_checked_at":"2026-02-11T00:34:09.494Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-08-05T11:46:23.876Z","updated_at":"2026-02-11T01:03:44.298Z","avatar_url":"https://github.com/CodeWithPraveen.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Globomantics GitOps Repository Structure\n\nThis repository demonstrates a comprehensive GitOps implementation for Kubernetes applications using multiple tools and environments.\n\n## Repository Overview\n\nThis GitOps repository follows a structured approach with clear separation of concerns:\n- **Applications**: Kubernetes application manifests\n- **Clusters**: Environment-specific GitOps tool configurations\n- **Infrastructure**: Cross-cutting infrastructure concerns\n\n## Directory Structure\n\n```\nps-implementing-gitops/\n├── apps/                    # Application manifests\n│   ├── base/               # Base application configuration\n│   ├── dev/                # Development environment overlays\n│   ├── staging/            # Staging environment overlays\n│   └── prod/               # Production environment overlays\n├── clusters/               # Environment-specific GitOps configurations\n│   ├── dev/                # Development cluster (ArgoCD)\n│   ├── staging/            # Staging cluster (Terraform)\n│   └── prod/               # Production cluster (FluxCD)\n└── infrastructure/         # Cross-cutting infrastructure concerns\n    ├── base/               # Base infrastructure configuration\n    └── overlays/           # Environment-specific infrastructure overlays\n        ├── dev/\n        ├── staging/\n        └── prod/\n```\n\n## Applications (`apps/`)\n\n### Base Configuration (`apps/base/`)\n- **deployment.yaml**: Base deployment manifest\n- **service.yaml**: Base service manifest\n- **kustomization.yaml**: Kustomize configuration for base resources\n\n### Environment Overlays\nEach environment has its own overlay with environment-specific configurations:\n\n#### Development (`apps/dev/`)\n- **namespace.yaml**: Development namespace definition\n- **deployment-patch.yaml**: Development-specific deployment patches\n- **kustomization.yaml**: Kustomize configuration for dev environment\n\n#### Staging (`apps/staging/`)\n- **namespace.yaml**: Staging namespace definition\n- **deployment-patch.yaml**: Staging-specific deployment patches\n- **kustomization.yaml**: Kustomize configuration for staging environment\n\n#### Production (`apps/prod/`)\n- **namespace.yaml**: Production namespace definition\n- **deployment-patch.yaml**: Production-specific deployment patches\n- **kustomization.yaml**: Kustomize configuration for production environment\n\n## Clusters (`clusters/`)\n\n### Development Cluster (`clusters/dev/`)\nUses **ArgoCD** for GitOps:\n- **applications/**: ArgoCD Application resources\n- **applicationsets/**: ArgoCD ApplicationSet resources for multi-environment management\n\n### Staging Cluster (`clusters/staging/`)\nUses **Terraform** for infrastructure management:\n- **main.tf**: Terraform configuration\n- **variables.tf**: Terraform variables\n- **outputs.tf**: Terraform outputs\n\n### Production Cluster (`clusters/prod/`)\nUses **FluxCD** for GitOps:\n- **flux-system/**: FluxCD system components\n- **kustomization.yaml**: FluxCD Kustomization resources\n- **source.yaml**: FluxCD GitRepository sources\n\n## Infrastructure (`infrastructure/`)\n\n### Base Configuration (`infrastructure/base/`)\n- **namespaces/**: Base namespace definitions\n- **network-policies/**: Base network policy configurations\n- **rbac/**: Base RBAC configurations\n- **resource-management/**: Base resource quotas and limits\n- **kustomization.yaml**: Kustomize configuration for base infrastructure\n\n### Environment Overlays (`infrastructure/overlays/`)\nEach environment has specific infrastructure requirements:\n\n#### Development (`infrastructure/overlays/dev/`)\nIt follows Kustomize patching strategy at the folder level:\n- **namespaces/**: Development namespace patches\n- **network-policies/**: Development network policy patches\n- **rbac/**: Development RBAC patches\n- **resource-management/**: Development resource management patches\n\n#### Staging (`infrastructure/overlays/staging/`)\nIt follows Kustomize patching strategy at the folder level:\n- **namespaces/**: Staging namespace patches\n- **network-policies/**: Staging network policy patches\n- **rbac/**: Staging RBAC patches\n- **resource-management/**: Staging resource management patches\n\n#### Production (`infrastructure/overlays/prod/`)\nIt follows Kustomize patching strategy at the root level:\n- All the patches are at the root level with a single kustomization.yaml file.\n\n## GitOps Tools Used\n\n1. **ArgoCD** (Development): Application deployment and sync\n2. **FluxCD** (Production): GitOps automation and reconciliation\n3. **Terraform** (Staging): Infrastructure as Code for cluster setup\n4. **Kustomize**: Configuration management and environment-specific overlays\n\n## Key Features\n\n- **Multi-environment support**: Separate configurations for dev, staging, and production\n- **Tool diversity**: Demonstrates different GitOps tools for different environments\n- **Infrastructure as Code**: Comprehensive infrastructure management\n- **Security**: RBAC and network policies for each environment\n- **Resource management**: Quotas and limits per environment\n- **Base and overlay pattern**: DRY principle with environment-specific customizations\n\n## Usage\n\n1. **Development**: ArgoCD monitors the repository and deploys applications to dev cluster\n2. **Staging**: Terraform manages infrastructure, applications deployed via GitOps\n3. **Production**: FluxCD ensures production deployments follow GitOps principles\n\nThis structure provides a complete GitOps implementation showcasing best practices for managing Kubernetes applications across multiple environments with different tooling strategies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewithpraveen%2Fps-implementing-gitops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodewithpraveen%2Fps-implementing-gitops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewithpraveen%2Fps-implementing-gitops/lists"}