nifi icon indicating copy to clipboard operation
nifi copied to clipboard

NIFI-15243 Improve KubernetesConfigMapStateProvider

Open bbende opened this issue 1 month ago • 0 comments

Summary

NIFI-15243

Improves the KubernetesConfigMapStateProvider....

  1. In setState the original code was calling update with a resource that had no resourceVersion specified and under the covers the k8s client will perform a get in this case to obtain the most recent version before performing the update. Given that, we can call get ourselves every time and simplify the logic to know whether to call create or update, plus simplify the conflict handling logic since we can re-call get on each retry.

  2. In replace we had no way to preserve any changes made to metadata fields, so getState was updated to return the ObjectMetadata from the ConfigMap inside StandardStateMap, then during replace it can use this metadata when constructing the resource to preserve any values.

Tracking

Please complete the following tracking steps prior to pull request creation.

Issue Tracking

Pull Request Tracking

  • [X] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
  • [X] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

  • [X] Pull Request based on current revision of the main branch
  • [X] Pull Request refers to a feature branch with one commit containing changes

Verification

Please indicate the verification steps performed prior to pull request creation.

Build

  • [X] Build completed using ./mvnw clean install -P contrib-check
    • [X] JDK 21
    • [ ] JDK 25

Licensing

  • [ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
  • [ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

  • [ ] Documentation formatting appears as expected in rendered files

bbende avatar Dec 08 '25 21:12 bbende