Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Atlantis on Cloud Run

Atlantis on Cloud Run

Avatar for Bruno Schaatsbergen

Bruno Schaatsbergen

September 09, 2025
Tweet

More Decks by Bruno Schaatsbergen

Other Decks in Technology

Transcript

  1. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Atlantis on Cloud Run August, 2025
  2. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited @bschaatsbergen Bruno Schaatsbergen
  3. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited CI/CD: our most powerful team member
  4. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited One lock to block them all
  5. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited One lock to block them all
  6. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited BoltDB Great, if you only have one writer …
  7. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited BoltDB Great, if you only have one writer Atlantis lock Volume with BoltDB on it
  8. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Challenges • Single, over-privileged IAM identity • Global locking stored locally • Single point of failure • No horizontal scaling • No built-in high availability or multi-region support • Throughput bottleneck • Slow recovery after crash or redeploy
  9. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Redis to the rescue
  10. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Redis doesnʼt care where you run Atlantis X Redis Atlantis Y
  11. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Shared components 1. Memorystore for Redis instance 2. …
  12. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited The goal Atlantis X Atlantis Y Atlantis Z Repo 1, 2 Repo 3, 4 Repo 5, 6
  13. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Deploying to Cloud Run
  14. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Deploying to Cloud Run
  15. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Deploying to Cloud Run
  16. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited ATLANTIS_DATA_DIR
  17. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited The illusion of a disk Atlantis data Google Storage Bucket
  18. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Mounting a bucket in Cloud Run
  19. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Wanted simple. Got complicated.
  20. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Atlantis storage bucket
  21. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited GCSFuse: Latency as a feature “Writes will fall back to staged writesˮ
  22. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Digging into ATLANTIS_DATA_DIR
  23. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Digging into ATLANTIS_DATA_DIR • Checked out Git refs for pull requests • Terraform binaries • Terraform providers
  24. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Digging into ATLANTIS_DATA_DIR • Checked out Git refs for pull requests EPHEMERAL STORAGE • Terraform binaries • Terraform providers
  25. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Digging into ATLANTIS_DATA_DIR • Checked out Git refs for pull requests EPHEMERAL STORAGE • Terraform binaries INCLUDED IN CONTAINER • Terraform providers
  26. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Digging into ATLANTIS_DATA_DIR • Checked out Git refs for pull requests EPHEMERAL STORAGE • Terraform binaries INCLUDED IN CONTAINER • Terraform providers TERRAFORM PLUGIN CACHE
  27. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Provider caching on ephemeral storage
  28. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Provider caching on ephemeral storage
  29. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Keeping an instance around
  30. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Providing ingress to Atlantis
  31. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Providing ingress to Atlantis Atlantis X Atlantis Y Atlantis Z Global Load Balancer
  32. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Providing ingress to Atlantis
  33. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Shared components 1. Memorystore for Redis instance 2. Global Load Balancer
  34. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Just Enough YAML
  35. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Reference code
  36. CONFIDENTIAL AND PROPRIETARY Any use of this material without specific

    permission is strictly prohibited Weʼre looking for contributors! github.com/runatlantis/atlantis #atlantis on the CNCF Slack