Skip to content

Deploys

A deploy is one immutable build + rollout. Each git push paas main produces a new deploy with its own image SHA, its own SBOM, and its own canary rollout.

Anatomy of a deploy

[git push] → Tekton pipeline → Paketo buildpack → image → Argo Rollouts → ready
              (build)            (compile)        (push    (canary)
                                                  Harbor)
Stage Tool Output
Build Tekton + Paketo OCI image, SBOM, CVE report
Push Harbor (private registry) registry.di2amp.com/<org>/<app>:<sha>
Rollout Argo Rollouts Canary 10% → 25% → 50% → 100% with health gate
Verify nginx + readiness probe HTTP 200 on / (configurable)

Rollout strategies

The default is rolling canary (10% → 100% over 5 min). You can switch:

# paas.toml
[deploy]
strategy = "blue-green"   # or "canary", "rolling"
canary_steps = [10, 25, 50, 75, 100]
flowchart TD
  A[git push] --> B{strategy}
  B -->|rolling| C[replace pods gradually]
  B -->|canary| D[10% → 25% → 50% → 100%]
  B -->|blue_green| E[clone → switch traffic → teardown]
  C --> F[live]
  D --> F
  E --> F

Rollback

Every deploy keeps the last 10 images. Roll back to any of them:

$ paas releases
ID    SHA       AT          STATUS
v12   abc1234   2 min ago   active
v11   def5678   1h ago      stable
v10   789abcd   3h ago      stable

$ paas releases:rollback v11
 Rolled back to v11 (def5678) in 18s

Preview environments

Push to a non-main branch to create a preview env automatically:

git push paas feature/new-ui
→ https://feature-new-ui.<app>.runtime.di2amp.com (auto-created)

Preview envs are deleted 7 days after the branch is deleted.

See also