Skip to content

CF-TERRAFORMING for CLOUPDFLARE_RULESET resource not terraforming the RULES within ruleset #801

Open
@kaincosta

Description

@kaincosta

Confirmation

  • My issue isn't already found on the issue tracker.
  • I have replicated my issue using the latest version of the library and it is still present.

cf-terraforming version

cf-terraforming 0.23.3

Expected outcome

When using cf-terraforming to terraform the CLOudFLARE_RULESET it should not only bring the basic setting of the ruleset but also the RULES within it, as it did before.

Actual outcome

The output shows the RULESETS basic config within the ZONE, but their RULES

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Created by the Cloudflare security team, this ruleset provides normalization on the URL path"
  kind        = "managed"
  name        = "Cloudflare Normalization Ruleset"
  phase       = "http_request_sanitize"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  kind    = "managed"
  name    = "Bot Fight Mode for Likely Bots"
  phase   = "http_request_sbfm"
  zone_id = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  kind    = "managed"
  name    = "Bot Fight Mode for Definite Bots"
  phase   = "http_request_sbfm"
  zone_id = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Created by the Cloudflare security team, this ruleset is designed to provide fast and effective protection for all your applications. It is frequently updated to cover new vulnerabilities and reduce false positives."
  kind        = "managed"
  name        = "Cloudflare Managed Ruleset"
  phase       = "http_request_firewall_managed"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official code repository"
  kind        = "managed"
  name        = "Cloudflare OWASP Core Ruleset"
  phase       = "http_request_firewall_managed"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Exposed credentials check rules"
  kind        = "managed"
  name        = "Cloudflare Exposed Credentials Check Ruleset"
  phase       = "http_request_firewall_managed"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Automatic mitigation of HTTP-based DDoS attacks. Cloudflare routinely adds signatures to address new attack vectors. Additional configuration allows you to customize the sensitivity of each rule and the performed mitigation action."
  kind        = "managed"
  name        = "DDoS L7 ruleset"
  phase       = "ddos_l7"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Created by the Cloudflare security team, this ruleset is designed to provide protection for free zones"
  kind        = "managed"
  name        = "Cloudflare Managed Free Ruleset"
  phase       = "http_request_firewall_managed"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  kind    = "zone"
  name    = "default"
  phase   = "http_request_firewall_managed"
  zone_id = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  description = "Rules maintained by bots team that can run for all plans"
  kind        = "managed"
  name        = "Cloudflare Bot Management rules for all plans"
  phase       = "http_request_sbfm"
  zone_id     = "<redacted>"
}

resource "cloudflare_ruleset" "terraform_managed_resource_<id_redacted>" {
  kind    = "zone"
  name    = "default"
  phase   = "http_request_firewall_custom"
  zone_id = "<redacted>"
}

Steps to reproduce

#Execute the following
cf-terraforming generate --email [email protected] --token <my-CF-token-here> -z <ZONE-ID for which I want the rulesets> --resource-type cloudflare_ruleset > importing-example1.tf

References

I'm checking directly on the cf-terraforming repo >> https://github.com/cloudflare/cf-terraforming
And for the supported resources I'm checking the list on your repo: https://github.com/cloudflare/cf-terraforming#:~:text=provider%20%22cloudflare/cloudflare%22-,Supported%20Resources,-v5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions