Skip to content

Constant reconciliation due to changing error message on CRD validation #1456

@m1kola

Description

@m1kola

Steps to reproduce

  1. Create pre-requisites such as RBAC and service account. This can be used as a reference.
  2. Deploy argocd-operator of version 0.5.0 from operatorhubio catalog.
    apiVersion: olm.operatorframework.io/v1
    kind: ClusterExtension
    metadata:
      name: argocd
    spec:
      namespace: argocd
      serviceAccount:
        name: argocd-installer
      source:
        sourceType: Catalog
        catalog:
          packageName: argocd-operator
          version: 0.5.0
  3. Upgrade to 0.6.0
    kubectl patch clusterextension argocd --type='merge' -p '{"spec": {"source": {"catalog": {"version": "0.6.0"}}}}'
  4. Watch for changes:
    kubectl get clusterextension argocd -o yaml -w

Result

Error message seems to be ordered differently on each reconciliation which probably results in useless reconciliation runs.

E.g. I see the condition alternating few variations such as:

  - lastTransitionTime: "2024-11-13T15:48:14Z"
    message: |-
      validating upgrade for CRD "argocds.argoproj.io" failed: CustomResourceDefinition argocds.argoproj.io failed upgrade safety validation. "ChangeValidator" validation failed: version "v1alpha1", field "^.status.dex" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.redis" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.phase" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.notificationsController" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.server" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.repo" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.ssoConfig" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.applicationController" has unknown change, refusing to determine that change is safe
      validating upgrade for CRD "applications.argoproj.io" failed: CustomResourceDefinition applications.argoproj.io failed upgrade safety validation. "ChangeValidator" validation failed: version "v1alpha1", field "^.status.history" has unknown change, refusing to determine that change is safe
      validating upgrade for CRD "applicationsets.argoproj.io" failed: CustomResourceDefinition applicationsets.argoproj.io failed upgrade safety validation. "ChangeValidator" validation failed: version "v1alpha1", field "^.spec.generators" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.spec.generators[*].merge.generators" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.spec.generators[*].matrix.generators" has unknown change, refusing to determine that change is safe for resolved bundle "argocd-operator.v0.6.0" with version "0.6.0"
    observedGeneration: 4
    reason: Retrying
    status: "True"
    type: Progressing
  - lastTransitionTime: "2024-11-13T15:48:14Z"
    message: |-
      validating upgrade for CRD "argocds.argoproj.io" failed: CustomResourceDefinition argocds.argoproj.io failed upgrade safety validation. "ChangeValidator" validation failed: version "v1alpha1", field "^.status.dex" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.ssoConfig" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.applicationController" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.server" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.repo" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.phase" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.notificationsController" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.status.redis" has unknown change, refusing to determine that change is safe
      validating upgrade for CRD "applications.argoproj.io" failed: CustomResourceDefinition applications.argoproj.io failed upgrade safety validation. "ChangeValidator" validation failed: version "v1alpha1", field "^.status.history" has unknown change, refusing to determine that change is safe
      validating upgrade for CRD "applicationsets.argoproj.io" failed: CustomResourceDefinition applicationsets.argoproj.io failed upgrade safety validation. "ChangeValidator" validation failed: version "v1alpha1", field "^.spec.generators[*].matrix.generators" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.spec.generators" has unknown change, refusing to determine that change is safe
      version "v1alpha1", field "^.spec.generators[*].merge.generators" has unknown change, refusing to determine that change is safe for resolved bundle "argocd-operator.v0.6.0" with version "0.6.0"
    observedGeneration: 4
    reason: Retrying
    status: "True"
    type: Progressing

Expected result

Metadata

Metadata

Assignees

Labels

kind/bugCategorizes issue or PR as related to a bug.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions