Deploy Django: GitOps & Kubernetes Made Easy

Calvin Hendryx-Parker, CTO

Six Feet Up

PyOhio 2025

Talk Slides

https://github.com/sixfeetup/2025_PyOhio_DeployDjango

GitOps: The Operating Model

  • Single Source of Truth
  • Declarative
  • Automated Reconciliation
  • Pull-based Deployments
  • Bonus: Documentation of Infrastructure and Application

Why GitOps for Django?

  • Rollback = Git Revert: Instant, auditable rollbacks
  • Environment Drift Prevention: Dev/Staging/Prod stay in sync
  • Security: No CI/CD needs cluster credentials
  • Compliance: Complete audit trail of who changed what, when

Why Kubernetes for Django?

  • Resource Efficiency: Auto-scaling based on actual load
  • Zero-downtime Deployments: Rolling updates by default
  • Self-healing: Automatic container restarts
  • Service Discovery: No more hardcoded URLs
  • Secrets Management: Built-in, encrypted at rest
  • Control Plane: Automate releases and orchestration
  • Deploy Story: Matches Developer Environment
  • Cloud Agnostic: No vendor lock-in

Enter Argo CD

  • Kubernetes-native continuous delivery
  • Watches Git repos for changes
  • Syncs automatically or on-demand
  • Beautiful UI for visibility
  • Supports Helm, Kustomize, plain YAML

Enabled by Scaf

  • Day Zero GitOps: No retrofitting required
  • Battle-tested: Years of production experience baked in
  • Cognitive Load Reduction: Focus on your app, not infrastructure
  • Immutable Infrastructure: Talos Linux for secure, minimal K8s nodes

GitOps Flow

Nix Solves the Cross-Platform Issues

This could be a talk on its own…

  • Apple’s BSD sed vs Gnu sed
  • Apple’s BSD base64 vs Gnu base64
  • Apple’s BSD tr vs Gnu tr

 

Superpowers

  • Install common tools
  • Make sure the tools versions match

Hot Off the Presses

  • Decoupled from 1Password
  • “Dangerous Mode”
  • Sealed Secrets Automated
  • Teardown works cleanly
  • Github Automation for Variables and Keys
  • Updated ArgoCD to latest

Life Before GitOps vs After

Traditional Deployment 😰

  • SSH into servers
  • Manual docker-compose up
  • “Works on my machine”
  • Deployment = Anxiety
  • Who deployed what?
  • How do we rollback?

GitOps Deployment 🚀

  • Git push = Deploy
  • Automated & consistent
  • Works everywhere
  • Deployment = Confidence
  • Full audit trail
  • Rollback = Git revert

Start Your GitOps Journey Today

15-Minute Quick Wins:

  1. Install Scaf: One line installer
  2. Create a Project: scaf myproject
  3. Deploy to AWS: Login via CLI and deploy
  4. Make a Change: Edit YAML, commit, watch magic

You Don’t Need:

  • Perfect Kubernetes knowledge
  • Complex CI/CD pipelines
  • A huge team

Resources

Talk To Me

📩
🤝 https://linkedin.com/in/calvinhp
✖️ @calvinhp
🐘 @calvinhp@fosstodon.org
🦋 @calvinhp.com