argoproj / argo-rollouts

Progressive Delivery for Kubernetes
https://argo-rollouts.readthedocs.io/
Apache License 2.0
2.8k stars 877 forks source link

analysisRunMetadata gets removed by controller during rollout reconciliation process #2778

Closed shaoye closed 1 year ago

shaoye commented 1 year ago

Checklist:

Describe the bug

strategy.canary.analysis.analysisRunMetadata gets removed by controller during rollout reconciliation process.

To Reproduce

  1. Create a Rollout with analysisRunMetadata and refer it to an existing Deployment
    apiVersion: argoproj.io/v1alpha1
    kind: Rollout
    spec:
    replicas: 2 
    ...
    strategy:
    canary:
      analysis:
        analysisRunMetadata:
          labels:
            somelabel: xxxx
          annotations:
            someannotation: xxx
        templates:
          - templateName: general-template
            clusterScope: true
        dryRun:
          - metricName: .*
        ...
    workloadRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-deployment
  2. Modify any filed in my-deployment to trigger a rollout update
  3. Rollout starts successfully but analysisRunMetadata field in Rollout is missing

We also noticed there is an error log from the controller says:

time="2023-05-14T03:31:57Z" level=error msg="roCtx.reconcile err Operation cannot be fulfilled on replicasets.apps \"my-deployment-5dc8d7d5b7\": the object has been modified; please apply your changes to the latest version and try again" generation=36 namespace=default resourceVersion=534994713 rollout=my-rollout

time="2023-05-14T03:31:57Z" level=info msg="Reconciliation completed" generation=36 namespace=default resourceVersion=534994713 rollout=my-rollout time_ms=456.309674

Version

1.5.0

Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

shaoye commented 1 year ago

sorry this feature has not been released yet