Skip to content

Releases: argoproj/argo-rollouts

v0.8.2

06 May 20:40
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.8.2/manifests/install.yaml

Note: When installing Argo Rollouts on Kubernetes v1.14 or lower, the CRD manifests must be kubectl applied with the --validate=false option. This is caused by use of new CRD fields introduced in v1.15, which are rejected by default in lower API servers.

Changes since v0.8.1

Rollouts

  • fix: Ensure ALB action with weight 0 marshalls correctly (#493)
  • fix: Add missing clusterrole for deleting pods (#490)

v0.8.1

20 Apr 23:55
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.8.1/manifests/install.yaml

Note: When installing Argo Rollouts on Kubernetes v1.14 or lower, the CRD manifests must be kubectl applied with the --validate=false option. This is caused by use of new CRD fields introduced in v1.15, which are rejected by default in lower API servers.

Changes since v0.8.0

General

  • fix: Remove validation for limits and requests (#480)

Rollouts

  • fix: Duplicate StableRS to canary.StableRS (#483)

Kubectl plugin

  • fix: Make kubectl plugin backwards compat with canary.stableRS (#482)

v0.8.0

13 Apr 16:40
Compare
Choose a tag to compare

v0.8.0

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.8.0/manifests/install.yaml

Breaking Changes

  • The metric rollout_created_time is removed.
  • The .status.canary.stableRS is being deprecated for .status.stableRS. This release has the code to handle the migration, and the Rollout spec will updated to remove .status.stableRS in a future release.

Contributors

Thank you to the following contributors for their work in this release!

  • cronik
  • dthomson25
  • duboisf
  • jessesuen
  • khhirani
  • moensch
  • nghialv

Changes since v0.7.2

General

  • feat: Improve Prometheus metrics (#461)
  • feat: Add metrics on queues and go client http calls (#416)
  • feat: Add patchMergeKey and patchStrategy struct tags and comments (#386)
  • feat: Improve removing k8s 1.18 fields (#436)
  • fix: Reduce log from error to warning (#394)
  • chore: Download go deps explicitly in Dockerfile (#464)
  • chore: Standardize controller-gen to v0.2.5 (#431)
  • chore: Migrate from dep to go modules (#331)
  • chore: Add auto generated sites/ to gitignore (#398)
  • docs: Add remote name to 'make release-docs' (#435)
  • docs: Documentation cleanup (#437)
  • docs: Add Go mod download command to contributor docs (#425)
  • docs: Corrected HPA doc (#396)
  • docs: Remove extra comma in docs
  • docs: Update README.md (#411)

Rollouts

  • feat: Introduce Anti-Affinity option to rollout strategies (#445)
  • feat: Add ability to restart Pods (#453)
  • feat: Add ALB Ingress controller support (#444)
  • feat: Add Nginx canary traffic management (#426)
  • feat: Add BlueGreen Pre Promotion Analysis (#415)
  • feat: Add BlueGreen Post Promotion Analysis (#442)
  • feat: Allow Rollout to specify multiples templates (#409)
  • feat: Make pause duration as string with time unit (#423)
  • feat: Use managed-by annotation (#448)
  • refactor: Refactor BlueGreen Strategy (#388)
  • fix: Update Role/ClusterRole for Ingress access (#439)
  • fix: rollout transformer for pod affinity. add new v0.7 name references and testing (#399)
  • chore: Add StableRS to rollout status (#441)
  • chore: Fix wrong comment about the formula of calculating the replica number (#447)

Analysis

  • feat: Improve wavefront provider (#465)
  • feat: Allow AnalysisTemplates to reference secrets (#420)
  • improvement: Surface failure reasons for Rollouts/AnalysisRuns (#434)
  • refactor: Perform arg substitution in Analysis controller (#407)
  • docs: Use correct podTemplateHashValue attribute for valueFrom (#417)
  • docs: Update web metrics section (#381)
  • docs: Use correct magic value in Analysis docs (#378)

Experiments

  • feat: Experiments passed duration succeed with running analysis (#392)
  • feat: Allow ex to use availableAt and finishedAt as args (#400)
  • refactor: Refactor Experiment handling of pod hashes (#385)

Kubectl plugin

  • feat: Show scale down time for Blue Green ReplicaSets (#370) (#382)
  • feat: Add more command aliases in kubectl plugin (#414)
  • chore: Set kubectl flags on root command (#456)
  • docs: Generate kubectl plugin docs (#422)
  • docs: Plugin command enhancements (#454)

0.7.2

25 Feb 19:46
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.7.2/manifests/install.yaml

Changes since v0.7.1

Rollouts

  • Update RS if RS's annotations need to be changed #413

v0.7.1

10 Feb 18:01
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.7.1/manifests/install.yaml

Changes since v0.7.0

General

  • Adding ca-certificates to docker image (#393)
  • Add patchMergeKey and patchStrategy struct tags and comments (#386)
  • Reduce log from error to warning (#394)

Experiments

  • Allow ex to use availableAt and finishedAt as args (#400)
  • Experiments passed duration succeed with running analysis (#392)
  • Refactor Experiment handling of pod hashes (#385)

v0.7.0

22 Jan 05:09
Compare
Choose a tag to compare

v0.7.0

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.7.0/manifests/install.yaml

Important Notices

  • Please upgrade to v0.6.x before upgrading to v0.7. Pre v0.6.0 has a different pausing logic, and v0.7.0 removes the depreciated PauseStartTime field. The v0.6.x versions have a migration script that is removed in v0.7.0.
  • This release introduces an alpha implementation of Rollouts leveraging Istio resources for traffic shaping. Check out traffic management for more info.

Changes since v0.6.3

General

  • Support instance ids for rollout controller segregation #342
  • Remove PauseStartTime #349
  • Vendor mockery utility #347
  • Remove loud log message #333

Rollouts

General

  • Add stableService field #337

Traffic Routing

  • Initial Istio implementation #341
  • Implement watch for Istio resources #354
  • Add validation to istio virtual services #355

Kubectl Plugin

  • Introduce 'kubectl argo rollouts terminate' command #297

Analysis

Genernal

  • Allow controller to delay analysis #350
  • Create one background analysis per revision #309
  • Allow AnalysisRun to complete an experiment #345

Providers

  • Wavefront metric provider #338
  • Web metric provider #318
  • Refactor common logic in providers to library #368
  • Allow web provider to be parameterized #368

v0.6.3

22 Jan 04:40
Compare
Choose a tag to compare

v0.6.3

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.6.3/manifests/install.yaml

Changes since v0.6.2

Bug Fixes

  • Fix premature scaledown (#365)
  • Add namespace restriction to job informer (#362)
  • Fix honoring autoPromotionSeconds (#360)
  • Ensure podHash stays on stable-svc selector (#340)

v0.6.2

16 Dec 17:14
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.6.2/manifests/install.yaml

Bug Fixes

  • omitted revisionHistoryLimit was not defaulting to 10 (#330)
  • Fix panic if rollout cannot create a new RS (#328)
  • Enable controller to handle panics with crashing (#328)

v0.6.1

06 Dec 00:25
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.6.1/manifests/install.yaml

Changes since v0.6.0

Bug Fixes

  • Create one background analysis per revision (#309)
  • Fix Infinite loop with PreviewReplicaCount set (#308)
  • Fix a delete by zero in get command (#310)
  • Set StableRS hash to current if replicaset does not actually exist (#320)
  • Bluegreen: allow preview service/replica sets to be replaced and fix sg fault in syncReplicasOnly (#314)

v0.6.0

17 Nov 21:16
Compare
Choose a tag to compare

Quick Start

kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://raw.githubusercontent.com/argoproj/argo-rollouts/v0.6.0/manifests/install.yaml

Important Notices

  • The pause functionality was reworked in the v0.6 release. Previously, the .spec.paused field was used by the controller to pause rollouts. However, this was an issue for users who wanted to manually pause the rollout since the controller assumed it was the only entity that set the field. In v0.6, the controller will add a pause condition to the .status.pauseCondition to pause a controller instead of setting spec.paused. The pause condition has a start time and a reason explaining why it paused. This allows users to set the spec.paused field manually and let the controller respect that pause. The v0.6 controller has a migration function to convert pre v0.6 rollouts to the new pause condition. The migration function will be removed in a future release.
  • In pre-v0.6 versions, the BlueGreen strategy would have the preview service point at no ReplicaSets if the new ReplicaSet was receiving traffic from the active service. V0.6 changes that behavior to make the preview service always point at the latest ReplicaSet

Changes since v0.5.0

General

  • Update k8s library dependencies to v1.16 (##192)

Rollouts

Enhancements

  • Add Rollout Context to reconciliation loop (##205)
  • Refactor pausing (##211)
  • Allow User pause (##216)
  • Stop progress while paused (##193)
  • Add pause condition migration (##229)
  • Add abort functionality (##224)
  • Rollout analysis plumbing (##183)
  • Add AnalysisStep for Rollouts (##188)
  • Add background analysis runs for rollouts (##196)
  • Clean up old Background AnalysisRuns (##246)
  • Clean up Experiments and AnalysisRuns (##197)
  • Add initial Experiment Step (##165)
  • Make specifying replicas/duration optional in the experiment step (##241)
  • Terminate experiments from previous steps (##280)
  • Add Analysis to RolloutExperimentStep (##238)
  • Fix TimeOut check to consider experiment/analysis steps (##278)
  • Pause a rollout upon inconclusive experiment (##256)
  • Abort a rollout upon a failed experiment (##256)
  • Add create AnalysisRun action in clusterrole (##231)

Bug Fixes

  • Fix nil ptr for newRS (##233)
  • Fix Rollout transformer config (##247)
  • Always point preview service at the newRS (##217)
  • Make active service required (##235)
  • Reset ProgressDeadline on retry (##282)
  • Ignore old running rs for RolloutCompleted status (##218)
  • Remove scale down annot after scaling down (##187)
  • Renames golang field names for blueGreen/canary to eliminate two API violations (##206)

Experiments

Check out the Experiment Docs for more information.

Enhancements

  • Refactor experiments to use a context object (##208)
  • Allow selectors to be overwritten when starting experiments (##249)
  • Simplify experiment replicaset names (##274)
  • Integrate Experiments with Analysis (##210)

Bug Fixes

  • Fix experiment enqueue logic (##239)
  • Annotate instead of label experiment names in replicasets (##262)
  • Fix issue where a replicaset name collision could cause hot loop (##236)

Analysis

Check out the Analysis Docs for more information.

Enhancements

  • AnalysisRun AnalysisTemplate Spec (##166)
  • Initial analysis controller implementation (##168)
  • Integrate analysis controller with provider interfaces (##171)
  • Add metric knob for maxInconclusive (##181)
  • Simplify provider interfaces to set error messages (##189)
  • Implement ResumeAt logic (##232)
  • Define explict args in AnalysisTemplates and simplify AnalysisRun spec (##283)
  • Use a duration string instead of int to represent duration (##286)
  • Truncate measurements when greater than default (10) (##191)
  • Add counter for consecutiveError (##191)

Prometheus Provider

  • Add initial provider and Prometheus implementation (##170)
  • Rename prometheus.server to address to better reflect API client interface (##207)
  • Treat NaN as inconclusive on Prometheus provider (##275)

Job Provider

  • Implement job-based metric provider (##186)
  • Job metric argument substitution. Simplify metric provider interface (##268)

Kayenta Provider

  • Initialize check in for kayenta metric provider ##284

Kubectl Plugin

Check out the kubectl plugin docs for more information.

Enhancements

  • Implement argo rollouts kubectl plugin (##195)
  • Introduce kubectl argo rollout list rollouts command (##204)
  • Introduce kubectl argo rollout list experiments command (##267)
  • Introduce kubectl argo rollout set image command (##251)
  • Introduce kubectl argo rollout get command (##230)
  • Introduce kubectl argo rollout promote command (##277)
  • Add ability to kubectl argo rollouts set image *=myrepo/myimage (##290)
  • Add get/retry experiment commands. Support experiment retries (##263)
  • Show running jobs as part of analysis runs (##278)
  • Surface experiment images to CLI (##274)