# jfrog-argo-rollouts

A Helm chart that provisions [Argo Rollouts](https://argoproj.github.io/argo-rollouts/) resources for
JFrog SaaS microservices. It gives a service a **canary `Rollout` strategy** with:

- **Account-weighted traffic shifting** via the canary-request-job (`setAccountWeight` steps).
- **Built-in analysis gates** that roll back automatically on trouble — CPU/memory regression checks
  and a Coralogix **open-alerts** gate.
- **Rollout extras** — HPA, Slack notifications, header-based canary routing, and stable/canary pod
  metadata.

Everything is **opt-in** (disabled by default); enable features under `rolloutStrategy` and
`rolloutAnalysisTemplates` in your values.

> **Note:** the Canary Manager values — `canaryServiceName`, `canaryRegion`, `canaryManagerEndpoint`,
> `canaryManagerUsername`, `canaryManagerPassword`, `canaryRequestJobImage`, and
> `canaryByHeader.canaryByHeaderValue` — are **injected automatically by `saas-deployer`** at upgrade
> time. Don't set them manually in your values files.

## Documentation

| Topic | What it covers |
|-------|----------------|
| [Analysis templates](docs/analysis-templates.md) | The default CPU, memory, and **Coralogix open-alerts** analysis gates — params, the `basicTemplates` structure, and the `enabled`/`promServerAddress` inherit-or-override model. |
| [Steps & background analysis](docs/steps-and-background-analysis.md) | Composing canary `steps` (`setCanaryScale`, `pause`, `setAccountWeight`) and running the analysis templates via `backgroundAnalysis`. |
| [Canary request job](docs/canary-request-job.md) | Account-weighted traffic shifting: `setAccountWeight` mechanics, pod behavior, and the saas-deployer-injected Canary Manager keys. |
| [Rollout features](docs/rollout-features.md) | The rest of `rolloutStrategy`: notifications, pod metadata, HPA, rollback window, and canary traffic/routing settings. |
