Skip to content

Conversation

@shrsr
Copy link
Collaborator

@shrsr shrsr commented Oct 8, 2025

No description provided.

@shrsr shrsr self-assigned this Oct 8, 2025
@shrsr shrsr linked an issue Oct 8, 2025 that may be closed by this pull request
@github-actions github-actions bot changed the title Addition of resource and data source for service chaining under contract in template Addition of resource and data source for service chaining under contract in template (DCNE-312) Oct 8, 2025

## GUI Information ##

* `Location` - Manage -> Manage -> Tenant Template -> Applications -> Schemas -> <Schema Name> -> <Template Name> -> Contracts -> <Contract Name> -> Service Chaining
Copy link
Collaborator

Choose a reason for hiding this comment

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

why the double manage?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Removed

"node_filter": {
Type: schema.TypeString,
Optional: true,
Default: "allow-all",
Copy link
Collaborator

Choose a reason for hiding this comment

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

just for understanding this default is needed for testing, or does NDO allow creation when the value is unset?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

NDO sets it allow-all during creation when unset..

Copy link
Collaborator

Choose a reason for hiding this comment

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

but is computed not supposed to handle this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I also want to avoid any unforeseen challenges with the testing framework of sdkv1.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Ok I do not not think we should adjust code logic because a old legacy testing framework is not working as expected. Can we ignore the failing tests and rely on our standard not provide and let API handle defaults?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok modified it!

serviceNodesPayload := make([]interface{}, 0, len(serviceNodes))
for i, sn := range serviceNodes {
node := sn.(map[string]interface{})
idx := i + 1
Copy link
Collaborator

Choose a reason for hiding this comment

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

why assign as variable when only used single time in nodePayload?

@shrsr shrsr requested a review from akinross October 9, 2025 14:29
anvitha-jain
anvitha-jain previously approved these changes Oct 10, 2025
Copy link
Collaborator

@anvitha-jain anvitha-jain left a comment

Choose a reason for hiding this comment

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

LGTM

gmicol
gmicol previously approved these changes Oct 13, 2025
Copy link
Collaborator

@gmicol gmicol left a comment

Choose a reason for hiding this comment

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

LGTM

* `id` - (Read-Only) The unique Terraform identifier of the service chain.
* `name` - (Read-Only) The name of the service chain, derived from the contract name.
* `node_filter` - (Read-Only) The node filter configured for the service chain.
* `service_nodes` - (Read-Only) A list of service nodes that form the service chain. Each element has the following attributes:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can this be rephrased to say what service_nodes parameter does?

* `uuid` - (Read-Only) The NDO UUID of the service node instance within the chain.
* `consumer_connector` - (Read-Only) A list containing the consumer-side connection block.
* `interface_name` - (Read-Only) The name of the consumer connector interface.
* `is_redirect` - (Read-Only) Whether the consumer connector is a redirect.
Copy link
Collaborator

Choose a reason for hiding this comment

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

rephase the sentence:
(when is_redirect parameter is set to true then what does consumer_connector do?)

* `is_redirect` - (Read-Only) Whether the consumer connector is a redirect.
* `provider_connector` - (Read-Only) A list containing the provider-side connection block.
* `interface_name` - (Read-Only) The name of the provider connector interface.
* `is_redirect` - (Read-Only) Whether the provider connector is a redirect.
Copy link
Collaborator

Choose a reason for hiding this comment

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

rephase the sentence:
(when is_redirect parameter is set to true then what does provider_connector do?)

* `schema_id` - (Required) The ID of the schema where the contract resides.
* `template_name` - (Required) The name of the template where the contract resides.
* `contract_name` - (Required) The name of the contract to which this service chain will be applied.
* `node_filter` - (Optional) The node filter for the service chain. Defaults to allow-all.
Copy link
Collaborator

Choose a reason for hiding this comment

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

same as above

* `device_ref` - (Required) The NDO UUID of the mso_service_device_cluster to be used for this node.
* `consumer_connector` - (Required) A block that defines the consumer-side connection for the service node.
* `interface_name` - (Required) The name of the interface on the service device cluster that will act as the consumer connector.
* `is_redirect` - (Optional) Specifies if the connector is a redirect. Defaults to false.
Copy link
Collaborator

Choose a reason for hiding this comment

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

same as above

* `is_redirect` - (Optional) Specifies if the connector is a redirect. Defaults to false.
* `provider_connector` - (Required) A block that defines the provider-side connection for the service node.
* `interface_name` - (Required) The name of the interface on the service device cluster that will act as the provider connector.
* `is_redirect` - (Optional) Specifies if the connector is a redirect. Defaults to false.
Copy link
Collaborator

Choose a reason for hiding this comment

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

same as above

anvitha-jain
anvitha-jain previously approved these changes Oct 17, 2025
Copy link
Collaborator

@anvitha-jain anvitha-jain left a comment

Choose a reason for hiding this comment

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

LGTM

gmicol
gmicol previously approved these changes Oct 17, 2025
Copy link
Collaborator

@gmicol gmicol left a comment

Choose a reason for hiding this comment

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

LGTM


# mso_schema_template_contract_service_chaining #

Manages Schema Template Contract Service Chaining on Cisco Nexus Dashboard Orchestrator (NDO).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you mention the NDO version?

* `contract_name` - (Required) The name of the contract to which this service chain will be applied.
* `node_filter` - (Optional) Specifies the name of a filter used to selectively redirect a subset of the contract-permitted traffic through the service chain. Allowed values are allow-all and filters-from-contract.
* `service_nodes` - (Required) A list of the service nodes that constitute the service chain, presented in their processing order. Each element details the configuration of a single service node.
* `name` - (Required) A unique name for the service node within the chain.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The service node name is managed by the NDO when we create/delete the service chain. Can we make it as read only attribute?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The name can be changed via API. Are you referring to the service chaining name?

@shrsr shrsr dismissed stale reviews from gmicol and anvitha-jain via e2f01e1 October 21, 2025 14:06
gmicol
gmicol previously approved these changes Oct 21, 2025
Copy link
Collaborator

@gmicol gmicol left a comment

Choose a reason for hiding this comment

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

LGTM

anvitha-jain
anvitha-jain previously approved these changes Oct 21, 2025
Copy link
Collaborator

@anvitha-jain anvitha-jain left a comment

Choose a reason for hiding this comment

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

LGTM

@shrsr shrsr requested review from anvitha-jain and gmicol October 27, 2025 16:54
samiib
samiib previously approved these changes Oct 27, 2025
Copy link
Collaborator

@samiib samiib left a comment

Choose a reason for hiding this comment

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

LGTM

akinross
akinross previously approved these changes Oct 28, 2025
Copy link
Collaborator

@akinross akinross left a comment

Choose a reason for hiding this comment

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

LGTM

gmicol
gmicol previously approved these changes Oct 28, 2025
Copy link
Collaborator

@gmicol gmicol left a comment

Choose a reason for hiding this comment

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

LGTM

sajagana
sajagana previously approved these changes Oct 29, 2025
Copy link
Collaborator

@sajagana sajagana left a comment

Choose a reason for hiding this comment

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

LGTM!

Copy link
Collaborator

@sajagana sajagana left a comment

Choose a reason for hiding this comment

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

LGTM!

Copy link
Collaborator

@anvitha-jain anvitha-jain left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Collaborator

@gmicol gmicol left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Collaborator

@samiib samiib left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Collaborator

@akinross akinross left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@lhercot lhercot left a comment

Choose a reason for hiding this comment

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

LGTM

@lhercot lhercot merged commit 67646e1 into CiscoDevNet:master Nov 17, 2025
9 checks passed
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.

Service Device and Service Chaining Support Required (DCNE-312)

7 participants