Skip to content

Update to Null Value Shows Deployed ConfigMap as Modified #4150

@manno

Description

@manno

When I update a deployed configmap to a null value, like in manno/fleet-experiments@fc3aeda, the bundle is shown as modified. (.Values.extra is not set)

The bundle was ready before, but now shows up as modified. The fleet-agent detects drift and logs:

2025-09-18T12:59:08Z    DEBUG    bundledeployment.update-status    DesiredSet - Updated plan with patch    {"controller": "bundledeployment", "controllerGroup": "fleet.cattle.io", "controllerKind": "BundleDeployment", "BundleDeployment": {"name":"scale-50-single-scale-50-bundles-twenty-eighteen","namespace":"cluster-fleet-local-local-1a3d67d0a899"}, "namespace": "cluster-fleet-local-local-1a3d67d0a899", "name": "scale-50-single-scale-50-bundles-twenty-eighteen", "reconcileID": "170e7f11-de31-4218-b4cb-c362574182ff", "setID": "default-scale-50-single-scale-50-bundles-twenty-eighteen-4d5710", "gvk": "/v1, Kind=ConfigMap", "name": "test-config-eighteen", "namespace": "scale-50-single", "patch": "{\"data\":{\"extra\":null}}"}
2025-09-18T12:59:08Z    INFO    bundledeployment.update-status    Status not ready according to nonModified and nonReady    {"controller": "bundledeployment", "controllerGroup": "fleet.cattle.io", "controllerKind": "BundleDeployment", "BundleDeployment": {"name":"scale-50-single-scale-50-bundles-twenty-eighteen","namespace":"cluster-fleet-local-local-1a3d67d0a899"}, "namespace": "cluster-fleet-local-local-1a3d67d0a899", "name": "scale-50-single-scale-50-bundles-twenty-eighteen", "reconcileID": "170e7f11-de31-4218-b4cb-c362574182ff", "nonModified": false, "nonReady": null}

This only happens on updates. If a new GitRepo is pointed at that commit, it is ready.

Example repo:

---
kind: GitRepo
apiVersion: fleet.cattle.io/v1alpha1
metadata:
  name: scale-50-single
spec:
  repo: https://github.com/manno/fleet-experiments
  branch: main
  paths:
    - scale-50-bundles/twenty/eighteen
  targetNamespace: scale-50-single
  targets:
    - clusterSelector: {}

Additionally, if I have more clusters, the partition is considered non ready (?) and the rollout stops:

scale-50-single-scale-50-bundles-twenty-eighteen       295/500   Modified(205) [Cluster fleet-default/d0-k3k-downstream001-downstream0001]; configmap.v1 scale-50-single/test-config-eighteen modified {"data":{"extra":""}}

Bundle.status:

  partitions:
  - count: 125
    maxUnavailable: 125
    name: Partition 0 - 125
    summary:
      desiredReady: 125
      modified: 125
      nonReadyResources: [...]
  - count: 125
    maxUnavailable: 125
    name: Partition 125 - 250
    summary:
      desiredReady: 125
      modified: 80
      nonReadyResources: [...]

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    🆕 New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions