Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
psjolin67 opened this issue Oct 26, 2023 · 5 comments
Open

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

psjolin67 opened this issue Oct 26, 2023 · 5 comments

Comments

@psjolin67
Copy link

psjolin67 commented Oct 26, 2023

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 psjolin67 added the bug label Oct 26, 2023
@psjolin67
Copy link
Author

work if you read it in as a file.

@pgouband
Copy link
Collaborator

pgouband commented Nov 9, 2023

Hi @psjolin67,

So this issue can be closed?

@psjolin67
Copy link
Author

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.

@pgouband
Copy link
Collaborator

pgouband commented Nov 9, 2023

Hi @psjolin67,

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

@pgouband
Copy link
Collaborator

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants