Demo repository for the talk showcasing GitOps promotion tools and patterns.
This repository contains the demo code, examples, and practical implementations used in the talk "GitOps Promotion Tools: Why You Need to Add Them to Your GitOps Toolkit in 2025!"
Each directory contains working examples and demonstrations of how to implement GitOps promotion workflows using different tools, moving beyond traditional CI/CD approaches to embrace true GitOps principles for environment promotion.
GitOps agents like Argo CD or Flux excel at maintaining desired state within a single environment, but they don't provide clear patterns for promoting changes between environments. This often leads to:
- Bloated CI pipelines handling promotion logic
- Drift from GitOps principles
- Complex, error-prone promotion processes
This repository demonstrates how GitOps Promotion Tools solve these challenges by bringing promotion back into the GitOps paradigm.
This repository includes hands-on demonstrations of three GitOps promotion tools:
Complete setup and demo scenarios showing multi-environment GitOps promotion workflows.
Working examples of Argo CD-native promotion patterns and configurations.
Practical implementations of automated GitOps promotion workflows.
├── infra/ # Pulumi infrastructure code for DigitalOcean Kubernetes cluster
├── base-tools/ # Pulumi code for installing base tools using GitOps bridge pattern
├── gitops/ # GitOps configurations and applications
│ ├── base-tools/ # Base tool configurations (ArgoCD, cert-manager, etc.)
│ ├── promote-app/ # Application promotion configurations
│ └── promote-tools/ # GitOps promotion tool configurations
├── app/ # Sample application (Podtato Head) Helm chart
└── docs/ # Talk slides and additional documentation
This repository uses Pulumi for Infrastructure as Code to provision:
- DigitalOcean Kubernetes Cluster: Complete K8s infrastructure setup
- Base Tools Installation: Leveraging the GitOps Bridge Pattern to seamlessly connect IaC-provisioned resources with GitOps-managed deployments
The GitOps Bridge Pattern bridges the gap between Infrastructure as Code (IaC) and GitOps by enabling Kubernetes administrators to:
- Use IaC tools (Pulumi) for cluster provisioning and cloud resource creation
- Automatically configure GitOps tools with metadata from IaC-provisioned resources
- Install and configure base tools (ArgoCD, cert-manager, metrics-server) through GitOps
- Maintain separation of concerns while ensuring seamless integration
-
Provision Infrastructure: Deploy DigitalOcean Kubernetes cluster
cd infra/ pulumi up
-
Install Base Tools: Deploy foundational tools using GitOps bridge
cd base-tools/ pulumi up
-
Access ArgoCD: The GitOps engine will be available for managing applications and promotion workflows
Each tool directory contains:
- Complete setup instructions
- Working demo scenarios
- Configuration examples
- Step-by-step guides
Start with any tool directory to explore different approaches to GitOps promotion.
- Argo CD - Declarative GitOps CD for Kubernetes
- Flux - GitOps toolkit for Kubernetes
- Kargo - GitOps promotion tool
- GitOps Promoter - Argo CD promotion tool
- Telefonistka - GitOps promotion automation
This repository is part of an educational initiative to improve GitOps practices. Contributions, issues, and feature requests are welcome!
This project is licensed under the Mozilla Public License Version 2.0 - see the LICENSE file for details.