[IS-IS] Add IS-IS Protocol Support in Terraform Module #128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related Issue
Fixes #384
Dependencies
Provider Dependency: github.com/CiscoDevNet/terraform-provider-iosxe/pull/405 (Epic #385) - MUST be merged and released
Schema Dependency: wwwin-github.cisco.com/netascode/nac-iosxe/pull/638 (Epic #385) - MUST be merged
Expected CI Behavior: Integration tests will fail until both dependencies are resolved because:
network_point_to_pointattribute in production releaseRecommendation: Keep as DRAFT until both provider and schema PRs are merged.
Proposed Changes
Updates the Terraform NAC module to map the
network_point_to_pointattribute from NAC YAML to theiosxe_interface_isisprovider resource, enabling full IS-IS point-to-point network configuration support.Module Changes
File:
iosxe_interfaces.tf1. Updated Loopbacks Locals Block
Added
network_point_to_pointmapping:2. Updated
iosxe_interface_isisResourceAdded
network_point_to_pointattribute:CLI Commands Supported
This module, combined with provider and schema, provides complete NAC workflow support for Issue #382's requirements:
router isis <tag>- Global IS-IS process configurationrouting.isis_processesiosxe_isisip router isis <tag>- Interface-level IS-IS enablementip_router_isis(implicitly via isis area_tag)ip_router_isis(on interface resources)isis network point-to-point- Interface-level IS-IS network typeinterfaces.<type>.isis.network_point_to_pointiosxe_interface_isis.network_point_to_pointYAML to Device Configuration Flow
1. User Writes NAC YAML
2. Module Generates Terraform
3. Device Receives Configuration
Note:
isis network point-to-pointwould not appear on Loopback because it's only supported on physical Ethernet interfaces. The attribute is passed to the provider, which correctly validates and rejects it per RESTCONF/YANG rules.Implementation Details
Try() Pattern
Follows NAC module best practices:
Benefits:
nullif attribute not set in YAMLnullcorrectly (attribute not configured on device)Resource Dependencies
Proper
depends_onensures correct resource creation order:Integration with Epic #506
This module PR integrates with Epic #506's existing IS-IS implementation:
routing.isis_processesiosxe_isis.tfipv4_metric_levelsiosxe_interfaces.tfnetwork_point_to_pointiosxe_interfaces.tf(NEW)Both Epics' features coexist in the same
iosxe_interface_isisresource without conflict.Testing Results
Phase 6: E2E NAC Workflow Testing
Test Environment:
Test Summary:
Device Verification:
Configuration matched YAML intent 100%.
Important Note: Interface Type Restriction
network_point_to_pointis only supported on physical Ethernet interfaces (e.g., GigabitEthernet), NOT on Loopback interfaces.Module Behavior:
try()patternUser Guidance: Documentation should clarify that
network_point_to_pointshould only be set on physical Ethernet interfaces.Version Compatibility
IOS-XE 17.12.1: Supported
IOS-XE 17.15.1: Supported (tested)
No version-specific restrictions required
Expected CI Failure
This PR depends on:
Until both dependencies are resolved:
This is expected behavior. Keep PR as DRAFT until dependencies resolved.
Checklist
try()pattern for optional attributes with defaultsdepends_onfor resource dependenciesterraform fmtapplied