Skip to content

Conversation

@rwcrowe
Copy link
Collaborator

@rwcrowe rwcrowe commented Jan 4, 2026

Overview

Provider version 0.7.0.

🎯 Highlights

  • 95+ new resources added enabling use cases such as EVPN, SR-MPLS, SRv6, MPLS-LDP, Timing and more
  • Better resource structure through decomposition and consolidation
  • 55%+ test coverage across 4 platform types
  • 22 breaking changes - details below

Definitions

➕ Added

  • 92 new resources and datasources added. Details in terraform-provider-iosxr/CHANGELOG.md
  • Add sensitive and write_only to appropriate password/crypto attributes
  • Addition of many new attributes across all resources and data sources

🔄 Modified

  • Decomposed multiple resources for better configuration structure
    • iosxr_segment_routing_te on-demand-colors into iosxr_segment_routing_te_on_demand_color resource and data source
    • iosxr_mpls_ldp into iosxr_mpls_ldp, iosxr_mpls_ldp_address_family, iosxr_mpls_ldp_interface, iosxr_mpls_ldp_mldp, iosxr_mpls_ldp_vrf resource and data source

➖ Removed

  • Consolidated multiple resources for better configuration structure
    • iosxr_logging_source_interface into iosxr_logging resource and data source
    • iosxr_evpn_group into iosxr_evpn resource and data source
    • iosxr_segment_routing_te_policy_candidate_path into iosxr_segment_routing_te_policy resource and data source
    • iosxr_snmp_server_view into iosxr_snmp_server resource and data source
    • iosxr_l2vpn_xconnect_group_p2p into iosxr_l2vpn_xconnect_group resource and data source
    • iosxr_l2vpn_bridge_group into iosxr_l2vpn_bridge_group_bridge_domain resource and data source

Testing Environment

  • IOS XR Version: 24.4.2
  • Platforms: Cisco 8000, NCS-5500, XRd, XRv9K

🧪 Test Results

All tests pass for relevant attributes per-platform.

# Cisco 8000
✅ PASS
coverage: 55.4% of statements
ok    github.com/CiscoDevNet/terraform-provider-iosxr/internal/provider       1702.649s

# NCS-5500
✅ PASS
coverage: 56.9% of statements
ok    github.com/CiscoDevNet/terraform-provider-iosxr/internal/provider       2905.401s

# XRd
✅ PASS
coverage: 53.7%  of statements
ok    github.com/CiscoDevNet/terraform-provider-iosxr/internal/provider       2331.608s

# XRv9K
✅ PASS
coverage: 53.9% of statements
ok      github.com/CiscoDevNet/terraform-provider-iosxr/internal/provider       3392.518s

Additional Changes (schema/generator/templates)

  • Add sensitive attribute to schema
  • Add include_example to schema to support examples with test_tags
  • Add signed integer support
  • Add 3-level nested list support
  • Add 4-level nested list support
  • Fix Boolean empty attribute

⚠️ Breaking Changes

  • Rename fast_reroute_per_prefix_tiebreaker_srlg_disjoint to fast_reroute_per_prefix_tiebreaker_srlg_disjoint_index in iosxr_router_ospf_area_interface resource and data source
  • Rename fast_reroute_per_prefix_tiebreaker_node_protecting to fast_reroute_per_prefix_tiebreaker_node_protecting_index in iosxr_router_ospf_area_interface resource and data source
  • Rename fast_reroute_per_prefix_ti_lfa to fast_reroute_per_prefix_ti_lfa_enable in iosxr_router_ospf_area_interface resource and data source
  • Rename dampening_decay_half_life_value to dampening_decay_half_life in iosxr_interface resource and data source
  • Rename local_as_replace_as to local_as_no_prepend_replace_as in iosxr_router_bgp_neighbor_group resource and data source
  • Rename local_as_dual_as to local_as_no_prepend_replace_as_dual_as in iosxr_router_bgp_neighbor_group resource and data source
  • Rename buffered_logging_buffer_size to buffered_size in iosxr_logging resource and data source
  • Rename encapsulation_mpls_load_balancing_flow_label_code_one7 to encapsulation_mpls_load_balancing_flow_label_code_17 in iosxr_l2vpn_pw_class resource and data source
  • Rename encapsulation_mpls_load_balancing_flow_label_code_one7_disable to encapsulation_mpls_load_balancing_flow_label_code_17_disable in iosxr_l2vpn_pw_class resource and data source
  • Rename encapsulation_mpls_transport_mode_passthrough to encapsulation_mpls_transport_mode_vlan_passthrough in iosxr_l2vpn_pw_class resource and data source
  • Rename bgp_rd attributes for consistency with other definitions in iosxr_evpn_evi resource and data source
  • Rename pcc_source_address to pcc_source_address_ipv4 in iosxr_segment_routing_te resource and data source
  • Rename pce_peers to pce_peers_ipv4 in iosxr_segment_routing_te resource and data source
  • Rename unencrypted_strings to traps_unencrypted_strings in iosxr_snmp_server_vrf_host resource and data source
  • Rename hello_keychain_send_only to keychain_send_only in iosxr_router_isis_interface resource and data source
  • Rename hello_keychain_name to keychain_name in iosxr_router_isis_interface resource and data source
  • Rename hello_password_hmac_md5_send_only to hmac_md5_send_only in iosxr_router_isis_interface resource and data source
  • Rename hello_password_hmac_md5_encrypted to hmac_md5_encrypted in iosxr_router_isis_interface resource and data source
  • Rename hello_password_text_send_only to text_send_only in iosxr_router_isis_interface resource and data source
  • Rename hello_password_text_encrypted to text_encrypted in iosxr_router_isis_interface resource and data source
  • Rename rpl-tag-set to rpl in iosxr_tag_set resource and data source
  • Rename lsp_password_levels to lsp_password_accept_levels in iosxr_router_isis resource and data source

🔗 Related Issues


Checklist:

  • ✅ No linter errors
  • ✅ Go build successful
  • ✅ Acceptance tests passed

Computed: true,
{{- end}}
{{- if or (eq .Type "List") (eq .Type "Set")}}
{{- if or .Id .Reference}}
Copy link
Member

Choose a reason for hiding this comment

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

Can we fix/restore the indentation here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

{{- end}}
Computed: true,
{{- if or (eq .Type "List") (eq .Type "Set")}}
{{- else if or (eq .Type "Int64List") (eq .Type "Int64Set")}}
Copy link
Member

Choose a reason for hiding this comment

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

indentation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

MarkdownDescription: "{{.Description}}",
{{- if or (eq .Type "StringList") (eq .Type "StringSet")}}
ElementType: types.StringType,
{{- else if or (eq .Type "Int64List") (eq .Type "Int64Set")}}
ElementType: types.Int64Type,
{{- else if or (eq .Type "Int64List") (eq .Type "Int64Set")}}
Copy link
Member

Choose a reason for hiding this comment

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

indentation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

@@ -76,6 +76,7 @@ type {{camelCase .Name}}Data struct {
{{- if or (eq .Type "List") (eq .Type "Set")}}
type {{$name}}{{toGoName .TfName}} struct {
{{- range .Attributes}}
{{- if and .TfName .Type}}
Copy link
Member

Choose a reason for hiding this comment

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

Why specifically are we adding this check?

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. It was used when testing very nested lists.

Validators: []validator.String{
stringvalidator.OneOf("all", "attributes"),
},
{{- if and (not .NoDelete) (not .NoDeleteAttributes)}}
Copy link
Member

Choose a reason for hiding this comment

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

indentation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

{{- end}}
{{- if len .EnumValues}}
Validators: []validator.String{
{{- else}}
Copy link
Member

Choose a reason for hiding this comment

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

indentation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

@@ -251,6 +260,130 @@ func (r *{{camelCase .Name}}Resource) Schema(ctx context.Context, req resource.S
{{- else if and (len .DefaultValue) (eq .Type "String")}}
Default: stringdefault.StaticString("{{.DefaultValue}}"),
{{- end}}
{{- if or (eq .Type "List") (eq .Type "Set")}}
Copy link
Member

Choose a reason for hiding this comment

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

indentation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

@@ -259,7 +345,7 @@ func testAccIosxr{{camelCase .Name}}Config_minimum() string {

func testAccIosxr{{camelCase .Name}}Config_all() string {
config := `resource "iosxr_{{snakeCase $name}}" "test" {` + "\n"
{{- if and (not .NoDelete) (not .NoDeleteAttributes) .DefaultDeleteAttributes}}
{{- if and (not .NoDelete) (not .NoDeleteAttributes) (not .DefaultDeleteAttributes)}}
Copy link
Member

Choose a reason for hiding this comment

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

Why are we changing this?

Copy link
Collaborator Author

@rwcrowe rwcrowe Jan 16, 2026

Choose a reason for hiding this comment

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

The idea was to have acceptance tests always test the mode that we set as default for the resource. But if you prefer to always have datasource tests use attributes and resource tests to use all, then I will revert.

Copy link
Collaborator Author

@rwcrowe rwcrowe Jan 16, 2026

Choose a reason for hiding this comment

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

Reverted the change for now.

@danischm danischm merged commit 0a8c923 into CiscoDevNet:main Jan 17, 2026
3 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.

3 participants