Skip to content

Conversation

@arndt-netapp
Copy link
Contributor

The ONTAP volume setting -is-preserve-unlink-enabled is required
for Kafka over NFS use cases. This feature implements a Trident
PVC setting to enable this ONTAP volume setting with the ontap-nas
driver.

To enable this setting with an ontap-nas backend, use the following
in the backend definition defaults:

"defaults": {
    "preserveUnlink": "true",
}

Alternatively, this setting can also be enabled on a per PVC basis
with the following PVC annotation:

annotations:
trident.netapp.io/preserveUnlink: "true"

If no value is given for preserveUnlink in the backend or PVC
definition, it will default to "false".

While the is-preserve-unlink-enabled volume setting was first
introduced with ONTAP 9.12.1, this feature in Trident requires the
use of ONTAP 9.15.1 or higher where Trident uses the ONTAP REST API
by default. The is-preserve-unlink-enabled volume setting in ONTAP
is not currently exposed by the ONTAP REST API, so we use the

The ONTAP volume setting -is-preserve-unlink-enabled is required
for Kafka over NFS use cases.  This feature implements a Trident
PVC setting to enable this ONTAP volume setting with the ontap-nas
driver.

To enable this setting with an ontap-nas backend, use the following
in the backend definition defaults:

    "defaults": {
        "preserveUnlink": "true",
    }

Alternatively, this setting can also be enabled on a per PVC basis
with the following PVC annotation:

  annotations:
    trident.netapp.io/preserveUnlink: "true"

If no value is given for preserveUnlink in the backend or PVC
definition, it will default to "false".

While the is-preserve-unlink-enabled volume setting was first
introduced with ONTAP 9.12.1, this feature in Trident requires the
use of ONTAP 9.15.1 or higher where Trident uses the ONTAP REST API
by default.  The is-preserve-unlink-enabled volume setting in ONTAP
is not currently exposed by the ONTAP REST API, so we use the
api/private/cli/volume REST endpoint to implement this feature.
@arndt-netapp
Copy link
Contributor Author

This pull request satisfied #808

@ddeshdee
Copy link

ddeshdee commented Dec 3, 2025

Thanks Mike , this has been a long time waiting feature for us , would help further stabilize our Kafka platforms

return err
}

response, err := c.sendPassThroughCliCommand(ctx, request)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, @arndt-netapp. Trident aggressively avoids using the CLI passthrough because we need to address SVMs by UUID instead of by name. Is there another way we can accomplish this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, the is-preserve-unlink-enabled volume parameter is not exposed via the standard ONTAP REST API, which is why I implemented this with the private CLI passthrough.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood, and we need to lobby for that, or we need the CLI passthough to accept SVM UUIDs. Every other REST API accepts SVM UUIDs, so it seems reasonable for the CLI to do so as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I filed CONTAP-595771 to request REST API support for the is-preserve-unlink-enabled volume parameter. If we can deliver this now via the CLI passthrough, and move to using the standard /storage/volumes endpoint down the road, that would be ideal given how long this customer request has been waiting already!

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

Successfully merging this pull request may close these issues.

3 participants