Roadmap
Planned features
Promotion strategy and pipelines
- DAG-style promotion strategies — Model promotion flows beyond a linear environment chain, including environment dependencies and parallel branch targets within a step (#1364).
Commit status and gating
- Deployment window gates — Gate promotions on allowed time-of-day or calendar windows.
- Self-registering commit status controllers — Register commit status keys with Promoter without listing them on every PromotionStrategy.
SCM providers and integrations
- Additional SCM providers — Integrate providers beyond those supported today.
- Bitbucket Server and Data Center — Support on-prem Bitbucket for repositories, pull requests, and commit statuses.
- SCM webhooks for pull request changes — Reconcile promotion state when the SCM signals PR updates; extend to multiple provider types (#222).
- Verified GitHub webhook signatures — Validate
X-Hub-Signature-256using constant-time comparison.
Operations, scaling, and observability
- Multiple instances per cluster — Run separate Promoter deployments for scale, blast-radius isolation, or tenancy.
- Namespaced operation mode — Restrict watches and permissions to configured namespaces.
- DORA metrics — Export deployment frequency, lead time, and related delivery metrics.
- SLSA release provenance — Publish SLSA attestations for release binaries and images.
v1.0 expected breaking changes
The project is still experimental; v1.0 will mark a stabilized API. The items below are expected or possible before then.
spec.key may become required (planned for v1.0)
Today, ArgoCDCommitStatus and TimedCommitStatus expose an optional spec.key with CRD defaults (argocd-health and timer). WebRequestCommitStatus and GitCommitStatus already require spec.key.
For v1.0, we may make spec.key required on ArgoCDCommitStatus and TimedCommitStatus so all built-in gate CRs share the same API shape. The deprecated CommitStatusKey() helpers on those spec types (empty-key fallback for pre-upgrade CRDs) will be removed; controllers will use spec.Key directly (#1465).
We recommend setting spec.key explicitly on ArgoCDCommitStatus and TimedCommitStatus now (use argocd-health or timer when those are your gate names). That keeps manifests aligned with PromotionStrategy keys and avoids churn if the field becomes required in v1.0:
apiVersion: promoter.argoproj.io/v1alpha1
kind: ArgoCDCommitStatus
metadata:
name: webservice-tier-1
spec:
key: argocd-health
promotionStrategyRef:
name: webservice-tier-1
applicationSelector:
matchLabels:
app: webservice-tier-1
apiVersion: promoter.argoproj.io/v1alpha1
kind: TimedCommitStatus
metadata:
name: webservice-tier-1
spec:
key: timer
promotionStrategyRef:
name: webservice-tier-1
environments:
- branch: environment/development
duration: 1h
Use the same key in PromotionStrategy activeCommitStatuses for ArgoCDCommitStatus, or in activeCommitStatuses / proposedCommitStatuses for TimedCommitStatus as appropriate.
See also: Argo CD Commit Status, Timed Commit Status, and Development Best Practices.
ArgoCDCommitStatus legacy CommitStatus cleanup (planned for v1.0)
Remove cleanupLegacyOrphanedCommitStatusesWithoutParentLabel once clusters are past the Argo CD CommitStatus naming and parent-gate label migration (#1460).