Skip to content

Conversation

saad-ali
Copy link
Member

@saad-ali saad-ali commented Nov 16, 2017

  • Make node_id a required field in the GetNodeIDResponse if the plugin has PUBLISH_UNPUBLISH_VOLUME controller capability.
  • Make node_id a required field in the ControllerPublishVolume and ControllerUnpublishVolume calls.
  • Require CO to pass it's node_id in GetNodeIdReqeust so that SP's that don't have their own custom internal naming scheme do not have to implement complicated logic to figure out the node name.

Fixes #121

csi.proto Outdated
// know which node the volume was previously used. The Plugin SHOULD
// return an Error if this is not supported.
// The ID of the node. This field is REQUIRED. The CO SHALL set this
// field to match the node ID returned by `GetNodeID`.
Copy link
Member

Choose a reason for hiding this comment

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

We killed a use case here by making this REQUIRED: a CO may intentionally leave this field blank to indicate to the plugin that the volume should be unpublished from every node in the cluster. Is killing that use case really our intent here?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah. I think we deliberately made this field optional to capture the case where the CO just want to detach the volume from any node. I still believe this is useful in some reconciliation scenarios.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ack. I'll restore this then.

csi.proto Outdated
// The ID of the node as understood by the CO which MAY be returned by
// the SP in the GetNodeIDResponse if the SP does not implement a
// custom node naming scheme and understands (or internally maps) the
// CO's node id.
Copy link
Member

Choose a reason for hiding this comment

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

REQUIRED? OPTIONAL?

Copy link
Member Author

Choose a reason for hiding this comment

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

Will add.

@saad-ali
Copy link
Member Author

@jdef @jieyu feedback addressed, PTAL

spec.md Outdated
// The API version assumed by the CO. This is a REQUIRED field.
Version version = 1;
// The ID of the node as understood by the CO which MAY be returned by
Copy link
Member

Choose a reason for hiding this comment

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

cc @akutz

This is still controversial. Can we make this change a separate PR?

Copy link
Member Author

Choose a reason for hiding this comment

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

Done. Will pull this in to a separate PR.

@saad-ali
Copy link
Member Author

PTAL

Copy link
Member

@jieyu jieyu left a comment

Choose a reason for hiding this comment

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

LGTM

@saad-ali saad-ali merged commit 42f92fc into container-storage-interface:master Nov 17, 2017
Copy link
Member

@jdef jdef left a comment

Choose a reason for hiding this comment

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

minor comment, otherwise lgtm

// `ControllerPublishVolume`.
// The ID of the node as understood by the SP which SHALL be used by
// CO in subsequent `ControllerPublishVolume`.
// This is a REQUIRED field.
Copy link
Member

Choose a reason for hiding this comment

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

suggestion: This is an OPTIONAL field that is REQUIRED only if the controller advertises the PUBLISH_UNPUBLISH_VOLUME capability.

because not implementing the call means that GetNodeIDResponse is empty, and that violates the REQUIRED semantics as currently documented.

Copy link
Member Author

Choose a reason for hiding this comment

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

@saad-ali saad-ali mentioned this pull request Nov 17, 2017
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