← Back to all products
$39
GitOps Workflow Templates
ArgoCD and Flux configurations for GitOps deployments with environment promotion and rollback strategies.
YAMLMarkdownJSONShellKubernetes
📁 File Structure 21 files
gitops-workflow-templates/
├── LICENSE
├── README.md
├── argocd/
│ ├── application.yaml
│ ├── applicationset.yaml
│ ├── notifications/
│ │ └── slack-template.yaml
│ ├── project.yaml
│ └── sync-policy.yaml
├── fluxcd/
│ ├── alert.yaml
│ ├── app-helmrelease.yaml
│ ├── app-kustomization.yaml
│ ├── git-repository.yaml
│ └── slack-provider.yaml
├── guides/
│ └── gitops-patterns.md
├── kustomize/
│ ├── base/
│ │ └── kustomization.yaml
│ └── overlays/
│ ├── dev/
│ │ └── kustomization.yaml
│ ├── prod/
│ │ └── kustomization.yaml
│ └── staging/
│ └── kustomization.yaml
└── scripts/
├── bootstrap-argocd.sh
├── bootstrap-fluxcd.sh
└── promote.sh
📖 Documentation Preview README excerpt
GitOps Workflow Templates
Production-ready ArgoCD, FluxCD, and Kustomize configurations for declarative infrastructure delivery.
Part of the DevOps Toolkit by [Datanest Digital](https://datanest.dev)
---
What You Get
- 5 ArgoCD configurations — Application, ApplicationSet, AppProject, sync policies with waves/hooks, Slack notifications
- 5 FluxCD configurations — GitRepository, Kustomization, HelmRelease, notification provider, alerts
- 4 Kustomize environments — Base + dev/staging/prod overlays with progressive resource scaling
- 3 automation scripts — ArgoCD bootstrap, FluxCD bootstrap, environment promotion
- 1 comprehensive guide — GitOps patterns, strategies, and best practices
File Structure
gitops-workflow-templates/
├── argocd/
│ ├── application.yaml # Single application deployment
│ ├── applicationset.yaml # Multi-app generation (git, list, matrix)
│ ├── project.yaml # AppProject with RBAC & restrictions
│ ├── sync-policy.yaml # Sync waves, hooks, pruning
│ └── notifications/
│ └── slack-template.yaml # Slack notification templates
├── fluxcd/
│ ├── git-repository.yaml # Git source definition
│ ├── app-kustomization.yaml # Kustomize reconciliation
│ ├── app-helmrelease.yaml # Helm chart deployment
│ ├── slack-provider.yaml # Notification provider
│ └── alert.yaml # Alert routing rules
├── kustomize/
│ ├── base/
│ │ └── kustomization.yaml # Base resources & labels
│ └── overlays/
│ ├── dev/kustomization.yaml
│ ├── staging/kustomization.yaml
│ └── prod/kustomization.yaml
├── scripts/
│ ├── bootstrap-argocd.sh # Install & configure ArgoCD
│ ├── bootstrap-fluxcd.sh # Install & configure FluxCD
│ └── promote.sh # Promote across environments
├── guides/
│ └── gitops-patterns.md # Patterns & best practices
├── README.md
├── manifest.json
└── LICENSE
Getting Started
ArgoCD Setup
# Bootstrap ArgoCD in your cluster
chmod +x scripts/bootstrap-argocd.sh
./scripts/bootstrap-argocd.sh
*... continues with setup instructions, usage examples, and more.*
📄 Code Sample .yaml preview
argocd/application.yaml
# ArgoCD Application - Single Application Deployment
# Defines a single application tracked by ArgoCD from a Git repository.
# Customize the source repo, path, and destination namespace for your app.
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
namespace: argocd
labels:
app.kubernetes.io/part-of: myapp
app.kubernetes.io/managed-by: argocd
# Finalizer ensures cascade deletion of child resources
finalizers:
- resources-finalizer.argocd.argoproj.io
annotations:
# Notification annotations (requires argocd-notifications)
notifications.argoproj.io/subscribe.on-sync-succeeded.slack: deployments
notifications.argoproj.io/subscribe.on-sync-failed.slack: deployments
spec:
# The AppProject this application belongs to
project: myproject
source:
# Git repository containing the Kubernetes manifests
repoURL: https://github.com/your-org/your-repo.git
targetRevision: main
path: kustomize/overlays/dev
# --- Alternative: Helm chart source ---
# repoURL: https://charts.example.com
# chart: myapp
# targetRevision: 1.2.3
# helm:
# releaseName: myapp
# values: |
# replicaCount: 2
# image:
# repository: your-registry/myapp
# tag: latest
# parameters:
# - name: service.type
# value: ClusterIP
destination:
# Target cluster (use https://kubernetes.default.svc for in-cluster)
server: https://kubernetes.default.svc
namespace: myapp-dev
# Sync policy controls automatic synchronization behavior
# ... 41 more lines ...