Skip to content

Add ApplyResultEntry type to BMCSettings status for persisting ETag metadata #915

@atd9876

Description

@atd9876

Description

Add the ApplyResultEntry type to BMCSettingsStatus so the controller can persist ETag metadata from successful apply operations. This enables ETag-based drift detection in subsequent reconcile loops without re-reading every attribute value.

Changes

  1. Add AppliedETags map[string]ApplyResultEntry field to BMCSettingsStatus

  2. Define the ApplyResultEntry struct:

    ```go
    type ApplyResultEntry struct {
    URI string json:"uri,omitempty"
    ETag string json:"etag,omitempty"
    ValueHash string json:"valueHash,omitempty"
    }
    ```

    • URI: the Redfish resource URI from the apply response
    • ETag: the ETag captured after successful apply
    • ValueHash: SHA-256 hash of the effective value at apply time (detects desired-state changes from ConfigMap/Secret rotation)
  3. Regenerate CRD manifests and deepcopy code (make manifests generate)

Files

  • api/v1alpha1/bmcsettings_types.go
  • api/v1alpha1/zz_generated.deepcopy.go (generated)
  • api/v1alpha1/applyconfiguration/api/v1alpha1/applyresultentry.go (generated)
  • api/v1alpha1/applyconfiguration/api/v1alpha1/bmcsettingsstatus.go (generated)
  • api/v1alpha1/applyconfiguration/internal/internal.go (generated)
  • api/v1alpha1/applyconfiguration/utils.go (generated)
  • config/crd/bases/metal.ironcore.dev_bmcsettings.yaml (generated)

Acceptance Criteria

  • make manifests generate produces clean output
  • make test green
  • CRD validates with kubectl apply --dry-run=server
  • No controller logic changes — this is purely the API type addition

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Backlog
    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions