Azure / terraform-azurerm-avm-res-network-applicationgateway

Azure Application Gateway serves as a web traffic load balancer, allowing you to efficiently handle traffic for your web applications. This Terraform module is designed for the rapid creation of an Application Gateway that includes various customizable features.
MIT License
7 stars 3 forks source link

[AVM Module Issue]: Missing rewrite_rule_set block for creating rules #66

Open vicrem opened 6 days ago

vicrem commented 6 days ago

Check for previous/existing GitHub issues

Issue Type?

Feature Request

(Optional) Module Version

v0.1.1

(Optional) Correlation Id

No response

Description

@mofaizal

Would also like to see a rewrite_rule_set block for creating rules.

Ex.

## Rewrite rules
dynamic "rewrite_rule_set" {
  for_each = var.rewrite_rule_set

  content {
    name = rewrite_rule_set.value.name

    dynamic "rewrite_rule" {
      for_each = rewrite_rule_set.value.rewrite_rules != null ? rewrite_rule_set.value.rewrite_rules : {}

      content {
        name          = rewrite_rule.value.name
        rule_sequence = rewrite_rule.value.rule_sequence

        dynamic "condition" {
          for_each = lookup(rewrite_rule_set.value, "condition", [])
          content {
            variable    = condition.value.variable
            pattern     = condition.value.pattern
            ignore_case = condition.value.ignore_case
            negate      = condition.value.negate
          }
        }

        dynamic "request_header_configuration" {
          for_each = lookup(rewrite_rule.value, "request_header_configuration", [])
          content {
            header_name  = request_header_configuration.value.header_name
            header_value = request_header_configuration.value.header_value
          }
        }

        dynamic "response_header_configuration" {
          for_each = lookup(rewrite_rule.value, "response_header_configuration", [])
          content {
            header_name  = response_header_configuration.value.header_name
            header_value = response_header_configuration.value.header_value
          }
        }

        dynamic "url" {
          for_each = lookup(rewrite_rule.value, "url", [])
          content {
            path         = url.value.path
            query_string = url.value.query_string
            reroute      = url.value.reroute
          }
        }
      }
    }
  }
}

Variable

variable "rewrite_rule_set" {
  description = "List of rewrite rule set"
  type        = any
  default     = []
}

Input

rewrite_rule_set = [
  {
    name = "XFF-Headers"

    rewrite_rules = {
      rule_1 = {
        name          = "x-forwarded-for"
        rule_sequence = 102
        request_header_configuration = [
          {
            header_name  = "X-Forwarded-For"
            header_value = "{var_client_ip}"
          }
        ]
      }
    }
  }
]
microsoft-github-policy-service[bot] commented 21 hours ago

[!WARNING] Tagging the AVM Core Team (@Azure/avm-core-team-technical-terraform) due to a module owner or contributor having not responded to this issue within 3 business days. The AVM Core Team will attempt to contact the module owners/contributors directly.

[!TIP]

  • To prevent further actions to take effect, the "Status: Response Overdue 🚩" label must be removed, once this issue has been responded to.
  • To avoid this rule being (re)triggered, the ""Needs: Triage :mag:" label must be removed as part of the triage process (when the issue is first responded to)!