Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

resource.customizations.ignoreDifferences doesn't save configuration

Offen
#634 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
go, kubernetes

Rechercherichtung

Es wird keine Datei, kein Test und kein Einstiegspunkt in den Code genannt; beginne damit nachzuverfolgen, wie resourceIgnoreDifferences in resource.customizations.ignoreDifferences serialisiert wird und wie die daraus resultierende Argo CD-Anpassung verwendet wird. Als abgeschlossen gilt die Aufgabe, wenn managedFieldManagers erhalten bleiben und die ConfigMap für die gezeigten Konfigurationen den Status „in sync“ meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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

Vorherrschende Sprache
Go
Sterne
188
Forks
359
Ø Merge
4 T. 6 Std.
Gemergte PRs (30 T.)
27

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus redhat-developer/gitops-operator

Alle Issues in redhat-developer/gitops-operator

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.