f5devcentral / terraform-provider-bigip-old

This Repo is Deprecated please refer to https://github.com/terraform-providers/terraform-provider-bigip Provider is Published !
Mozilla Public License 2.0
32 stars 15 forks source link

Monitor resource defaults are causing unneeded diffs #124

Closed dannyk81 closed 1 year ago

dannyk81 commented 6 years ago

@scshitole

I'm creating a new monitor with parent tcp-half-open, this monitor doesn't have the reverse and send attributes in F5: image

But since these are set as defaults the provider sets them in state, and forces them on each run:

bigip_ltm_monitor.tcp_half_open_443: Modifying... (ID: /Common/tcp_half_open_443)
  reverse: "" => "disabled"
  send:    "" => "GET /\\r\\n"
bigip_ltm_monitor.tcp_half_open_443: Modifications complete after 0s (ID: /Common/tcp_half_open_443)

F5 doesn't seem to mind, but since on next refresh these attributes are not returned, terraform will try to set them again.

scshitole commented 6 years ago

@dannyk81 can you please share the tf tested this one SJC-ML-00028512:terraform-provider-bigip shitole$ vi master.tf SJC-ML-00028512:terraform-provider-bigip shitole$ terraform plan Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage.


An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols:

Terraform will perform the following actions:

Plan: 1 to add, 0 to change, 0 to destroy.


Note: You didn't specify an "-out" parameter to save this plan, so Terraform can't guarantee that exactly these actions will be performed if "terraform apply" is subsequently run.

SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ terraform apply

An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols:

Terraform will perform the following actions:

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.

Enter a value: yes

bigip_ltm_monitor.tcp: Creating... destination: "" => ":" interval: "" => "3" ip_dscp: "" => "0" manual_resume: "" => "disabled" name: "" => "/Common/monitofr-tcp" parent: "" => "/Common/http" reverse: "" => "disabled" send: "" => "GET /\r\n" time_until_up: "" => "0" timeout: "" => "16" transparent: "" => "disabled" bigip_ltm_monitor.tcp: Creation complete after 1s (ID: /Common/monitofr-tcp)

Apply complete! Resources: 1 added, 0 changed, 0 destroyed. SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ vi master.tf SJC-ML-00028512:terraform-provider-bigip shitole$ terraform plan Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage.

bigip_ltm_monitor.tcp: Refreshing state... (ID: /Common/monitofr-tcp)


An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: ~ update in-place

Terraform will perform the following actions:

~ bigip_ltm_monitor.tcp interval: "3" => "4"

Plan: 0 to add, 1 to change, 0 to destroy.


Note: You didn't specify an "-out" parameter to save this plan, so Terraform can't guarantee that exactly these actions will be performed if "terraform apply" is subsequently run.

SJC-ML-00028512:terraform-provider-bigip shitole$ terraform apply bigip_ltm_monitor.tcp: Refreshing state... (ID: /Common/monitofr-tcp)

An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: ~ update in-place

Terraform will perform the following actions:

~ bigip_ltm_monitor.tcp interval: "3" => "4"

Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.

Enter a value: yes

bigip_ltm_monitor.tcp: Modifying... (ID: /Common/monitofr-tcp) interval: "3" => "4" bigip_ltm_monitor.tcp: Modifications complete after 0s (ID: /Common/monitofr-tcp)

Apply complete! Resources: 0 added, 1 changed, 0 destroyed. SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ terraform plan Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage.

bigip_ltm_monitor.tcp: Refreshing state... (ID: /Common/monitofr-tcp)


No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your configuration and real physical resources that exist. As a result, no actions need to be performed. SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ SJC-ML-00028512:terraform-provider-bigip shitole$ terraform plan Refreshing Terraform state in-memory prior to plan... The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage.

bigip_ltm_monitor.tcp: Refreshing state... (ID: /Common/monitofr-tcp)


No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your configuration and real physical resources that exist. As a result, no actions need to be performed. SJC-ML-00028512:terraform-provider-bigip shitole$

dannyk81 commented 6 years ago

@scshitole you are testing the wrong type of monitor, it should be tcp-half-open

Here's the config:

resource "bigip_ltm_monitor" "tcp_half_open_443" {
  name        = "/Common/tcp_half_open_443"
  parent      = "/Common/tcp-half-open"
  interval    = 5
  destination = "*:443"
}
dannyk81 commented 6 years ago

@scshitole were you able to reproduce?

adam-f5 commented 1 year ago

Repository Archived