Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resource.customizations.ignoreDifferences doesn't save configuration #634

Open
IvanovOleg opened this issue Dec 19, 2023 · 0 comments
Open

Comments

@IvanovOleg
Copy link

Describe the bug
I have an argocd application that contains a following configmap:

kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: >
      {"apiVersion":"v1","data":{},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"app.kubernetes.io/instance":"kubecost","config.openshift.io/inject-trusted-cabundle":"true"},"name":"ca-inject","namespace":"kubecost"}}
  creationTimestamp: '2023-12-16T02:24:01Z'
  labels:
    app.kubernetes.io/instance: kubecost
    config.openshift.io/inject-trusted-cabundle: 'true'
  managedFields:
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        'f:data':
          'f:ca-bundle.crt': {}
      manager: cluster-network-operator/configmap_ca
      operation: Apply
      time: '2023-12-16T02:24:01Z'
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            .: {}
            'f:kubectl.kubernetes.io/last-applied-configuration': {}
          'f:labels':
            .: {}
            'f:app.kubernetes.io/instance': {}
            'f:config.openshift.io/inject-trusted-cabundle': {}
      manager: argocd-controller
      operation: Update
      time: '2023-12-16T02:24:01Z'
  name: ca-inject
  namespace: kubecost
  resourceVersion: '351766'
  uid: 0955b2d6-daf1-4544-b392-926fc14b960b

As you can see cluster-network-operator/configmap_ca is managing that data field and inject openshift ca-bundle content there. Since that field is different from desired it is always out of sync. I tried to add a configuration to my ArgoCD CDR instance in these ways, but that configmap still out of sync. Also I've spotted that ArgoCD doesn't save a piece of the configuration:

# input:
resourceIgnoreDifferences:
  all:
    managedFieldsManagers:
      - cluster-network-operator/configmap_ca
      - cluster-network-operator
      - configmap_ca

# saved 
resourceIgnoreDifferences:
  all:
    managedFieldsManagers:
      - cluster-network-operator/configmap_ca
      - cluster-network-operator
      - configmap_ca

# in configmap
resource.customizations.ignoreDifferences.all: |
  jqpathexpressions: []
  jsonpointers: []
  managedfieldsmanagers:
  - cluster-network-operator/configmap_ca
  - cluster-network-operator
  - configmap_ca
# input
resourceIgnoreDifferences:
  resourceIdentifiers:
    - group: ''
      kind: configmaps
      customization:
        managedFieldManagers:
          - cluster-network-operator/configmap_ca
          - cluster-network-operator
          - configmap_ca

# saved
resourceIgnoreDifferences:
  resourceIdentifiers:
    - customization: {}
      group: ''
      kind: configmaps

# configmap
resource.customizations.ignoreDifferences.configmaps: |
    jqpathexpressions: []
    jsonpointers: []
    managedfieldsmanagers: []
# input
resourceIgnoreDifferences:
  resourceIdentifiers:
    - group: ''
      kind: configmaps
      customization:
        jsonpointers:
          - /data
        managedFieldManagers:
          - cluster-network-operator/configmap_ca
          - cluster-network-operator
          - configmap_ca

# saved
resourceIgnoreDifferences:
  resourceIdentifiers:
    - customization:
        jsonPointers:
          - /data
      group: ''
      kind: configmaps

# configmap
resource.customizations.ignoreDifferences.configmaps: |
  jqpathexpressions: []
  jsonpointers:
  - /data
  managedfieldsmanagers: []
# input
resourceIgnoreDifferences:
  resourceIdentifiers:
    - group: ''
      kind: configmaps
      customization:
        jqPathExpressions:
          - .data
        managedFieldManagers:
          - cluster-network-operator/configmap_ca
          - cluster-network-operator
          - configmap_ca
# saved
resourceIgnoreDifferences:
  resourceIdentifiers:
    - customization:
        jqPathExpressions:
          - .data
      group: ''
      kind: configmaps

# configmap
resource.customizations.ignoreDifferences.configmaps: |
    jqpathexpressions:
    - .data
    jsonpointers: []
    managedfieldsmanagers: []

Expected behavior
Configmap is in sync

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant