terraform-provider-bigip icon indicating copy to clipboard operation
terraform-provider-bigip copied to clipboard

bigip_ltm_irule missing \r\n when plan/apply. change everytime

Open psjolin67 opened this issue 2 years ago • 5 comments
trafficstars

Environment

  • TMOS/Bigip Version: BIG-IP 16.1.3.2 Build 0.0.4 Point Release 2
  • Terraform Version: 1.6.2 and 1.5.7
  • Terraform bigip provider Version: 1.20 or 1.18.1

Summary

Please also include information about the reproducibility and the severity/impact of the issue.

Every time a plan or apply it finds something to change. Tried EOF / EOT and -EOT (as is saids when it display changes) after irule = Running in debug it seams as it have \r\n on the last row in state and are missing that in the new plan/apply.

Steps To Reproduce

Create a irule throug Terraform and apply twice (terraform apply)

Steps to reproduce the behavior:

resource "bigip_ltm_irule" "rule1" { name = "/Common/a01_hsl-http" irule = <<-EOF #test EOF }

  1. Provide terraform resource config which you are facing trouble along with the output of it.

  2. To get to know more about the issue, provide terraform debug logs

  3. To capture debug logs, export TF_LOG variable with debug ( export TF_LOG= DEBUG ) before runnning terraform apply/plan:

----- debug ----- 023-10-26T16:49:42.536+0200 [WARN] Provider "registry.terraform.io/f5networks/bigip" produced an invalid plan for bigip_ltm_irule.rule1, but we are tolerating it because it is using the legacy plugin SDK. The following problems may be the cause of any confusing errors from downstream operations: - .irule: planned value cty.StringVal("#test") does not match config value cty.StringVal("#test\r\n") nor prior value cty.StringVal("") 2023-10-26T16:49:42.543+0200 [WARN] Provider "registry.terraform.io/f5networks/bigip" produced an invalid plan for bigip_ltm_virtual_server.httptohttps, but we are tolerating it because it is using the legacy plugin SDK. The following problems may be the cause of any confusing errors from downstream operations: - .irules: planned value cty.ListValEmpty(cty.String) for a non-computed attribute - .vlans: planned value cty.SetValEmpty(cty.String) for a non-computed attribute - .vlans_enabled: planned value cty.False for a non-computed attribute - .ip_protocol: planned value cty.StringVal("tcp") for a non-computed attribute - .policies: planned value cty.SetValEmpty(cty.String) for a non-computed attribute - .state: planned value cty.StringVal("enabled") for a non-computed attribute - .pool: planned value cty.StringVal("") for a non-computed attribute - .security_log_profiles: planned value cty.ListValEmpty(cty.String) for a non-computed attribute ------- end debug ------

  1. As3/DO json along with the resource config( for AS3/DO resource issues )

Expected Behavior

No change on irule everytime a plan or apply when nothing is updatede/changed on that irule / resorce

Actual Behavior

Please include any applicable error output.

It makes a change even if nothing is changed on the irule/resorce .

psjolin67 avatar Oct 26 '23 15:10 psjolin67

work if you read it in as a file.

psjolin67 avatar Nov 04 '23 07:11 psjolin67

Hi @psjolin67,

So this issue can be closed?

pgouband avatar Nov 09 '23 14:11 pgouband

You could think that this is a workaround for all things, but sometimes you want to replace the text in the code depending on different conditions. I think it would be good if there was a solution for this problem so you can use the function to create irules without having to use a file. This time I solved it by loading a file, but next time it might not be the best way.

psjolin67 avatar Nov 09 '23 15:11 psjolin67

Hi @psjolin67,

Ok I'll test it and review it to decide if we good forward or not.

pgouband avatar Nov 09 '23 16:11 pgouband

Hi @psjolin67,

I did some test with the following main.tf. Multiple plan and apply without changing anything on the resource and I didn't get any error.

resource "bigip_ltm_irule" "irule1" {
  name = "/Common/irule1"
  irule = <<EOF
when CLIENT_ACCEPTED {
     log local0. "test"
   }
EOF
}

Could you redo the test with version 1.20.1 of the provider?

pgouband avatar Dec 14 '23 09:12 pgouband

Sorry for late response. Missed the notification and used file options.. But this work now!

psjolin67 avatar Apr 11 '25 13:04 psjolin67