Open krzysztofmaciejewskiit opened 1 month ago
There is no need to manage the "sys/lldp/inst" and "sys/cdp/inst" objects using Terraform. These are system level objects that already exist and therefore there is no need to manage them using Terraform. What happens here is, TF attempts to delete those system objects (which would implicitly also delete the child objects), but it fails as those types of objects cannot be deleted and therefore the child objects remain in place as well. The "nxos_rest" resource silently suppresses this error, because it is a generic resource and in some cases this is expected. The resources should therefore be defined like this:
resource "nxos_rest" "lldpIf" {
depends_on = [nxos_feature_lldp.lldp]
dn = "sys/lldp/inst/if-[eth1/5]"
class_name = "lldpIf"
content = {
adminRxSt = "disabled"
adminTxSt = "disabled"
id = "eth1/5"
}
}
resource "nxos_rest" "cdpIf" {
depends_on = [nxos_rest.cdpEntity]
dn = "sys/cdp/inst/if-[eth1/5]"
class_name = "cdpIf"
content = {
adminSt = "disabled"
id = "eth1/5"
}
}
When I delete a part of the code in e.g. part two, responsible for cdp or lldp it says it is destroyed, but it stays on the Nexus configuration and I don't know why all other things get deleted and those 3 lines of code (seen on the switch) stay, even though the terraform logs clearly say "destroyed". My removal is to simply remove the part of the code responsible for adding cdp and lldp to the second interface, that is, everything from that tag down: //============================================== part-2 ==============================================
Code from terraform: main.tf
Link to Cisco Community discussion: https://community.cisco.com/t5/devnet-general-discussions/terraform-after-removing-resource-cdp-lldp-config-left-on/td-p/5157851