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

Add advanced routing/redirect support for application gateway #685

Merged
merged 8 commits into from
Dec 7, 2021

Conversation

l3ender
Copy link
Contributor

@l3ender l3ender commented Nov 13, 2021

SUMMARY

This PR adds support for advanced/complex routing and redirect configuration for an application gateway. For example, instead of having a gateway route traffic to a backend address, it can instead perform a redirect to a different location.

ISSUE TYPE
  • Feature Pull Request
COMPONENT NAME

azure_rm_appgateway

ADDITIONAL INFORMATION

The following playbook can be used at the root of this repo to test:

---
- name: "Playbook for testing."
  hosts: "localhost"
  connection: "local"
  gather_facts: false
  vars:
    resource_group: "automated-testing"
    resource_group_secondary: "automated-testing-secondary"
  collections:
    - azure.azcollection

  tasks:
    - name: "Include tests"
      include_tasks: "tests/integration/targets/azure_rm_appgateway/tasks/main.yml"
      vars:
        cert1_file: "tests/integration/targets/azure_rm_appgateway/files/cert1.txt"
        cert2_file: "tests/integration/targets/azure_rm_appgateway/files/cert2.txt"
Click to view playbook output
-> ansible-playbook sandbox.yml -v
No config file found; using defaults
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

PLAY [Playbook for testing.] ************************************************************************************************************************************************************

TASK [Include tests] ********************************************************************************************************************************************************************
included: /Users/ross/repos/azure/tests/integration/targets/azure_rm_appgateway/tasks/main.yml for localhost

TASK [Prepare random number] ************************************************************************************************************************************************************
ok: [localhost] => {"ansible_facts": {"cert1_file": "cert1.txt", "cert2_file": "cert2.txt", "rpfx": "ef45326500"}, "changed": false}

TASK [Create a virtual network] *********************************************************************************************************************************************************
changed: [localhost] => {"changed": true, "check_mode": false, "state": {"address_prefixes": ["10.1.0.0/16", "172.100.0.0/16"], "dns_servers": ["127.0.0.1", "127.0.0.2"], "etag": "W/\"9e527d1e-1fa9-4b54-b777-57db83e95016\"", "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/virtualNetworks/vnetef45326500", "location": "southcentralus", "name": "vnetef45326500", "provisioning_state": "Succeeded", "tags": null, "type": "Microsoft.Network/virtualNetworks"}}

TASK [Create a subnet] ******************************************************************************************************************************************************************
changed: [localhost] => {"changed": true, "state": {"address_prefix": "10.1.0.0/24", "address_prefixes": null, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/virtualNetworks/vnetef45326500/subnets/subnetef45326500", "name": "subnetef45326500", "network_security_group": {}, "private_endpoint_network_policies": "Enabled", "private_link_service_network_policies": "Enabled", "provisioning_state": "Succeeded", "route_table": {}}}

TASK [Create instance of Application Gateway -- check mode] *****************************************************************************************************************************
changed: [localhost] => {"changed": true, "parameters": {"authentication_certificates": [{"data": "MIIMAjCCCeqgAwIBAgITLQAAMpnXBx230XCKQgAAAAAymTANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEVMBMGA1UECxMMTWljcm9zb2Z0IElUMR4wHAYDVQQDExVNaWNyb3NvZnQgSVQgVExTIENBIDUwHhcNMTcwNzIwMTc0NzA4WhcNMTkwNzEwMTc0NzA4WjAXMRUwEwYDVQQDEwx3d3cuYmluZy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6jsg+/7DlIrdgFOcaDlK3RQ9sIgkJsgpj+ZxAbIe3ziyimIxjVlHX87pqgXcNhaYNbCFD0iPm+aUfbv4GDTLR+AIr8eSegqxZ+CBToYM67NhpVYra1KAvY4XgqxorO4FB9IWYJRqhI3SZeZ3lLK5t9XuUMicG8l52nJfpPdXXvBca2wUCq8FHEObG81vJzESA0htLLPTjdUWBQnXPiW5bqzlGHzzv8ISV6jtDLNNa5JRlhSlXho+6pCedhNF7MP4yTaantPvAELLRWX13VhjgoCcRCCu0s8rxW5DuVWl2Pb2iw35MFnNWlcoVwq0AjAfGA+xEba/WLid6qfkQctYjAgMBAAGjggfQMIIHzDAdBgNVHQ4EFgQUCYflhSl4MCAls91+3GztpSmoA3AwCwYDVR0PBAQDAgSwMB8GA1UdIwQYMBaAFAj+JZ906ocEwry7jqg4XzPG0WxlMIGsBgNVHR8EgaQwgaEwgZ6ggZuggZiGS2h0dHA6Ly9tc2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29mdCUyMElUJTIwVExTJTIwQ0ElMjA1LmNybIZJaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29mdCUyMElUJTIwVExTJTIwQ0ElMjA1LmNybDCBhQYIKwYBBQUHAQEEeTB3MFEGCCsGAQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9NaWNyb3NvZnQlMjBJVCUyMFRMUyUyMENBJTIwNS5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLm1zb2NzcC5jb20wPgYJKwYBBAGCNxUHBDEwLwYnKwYBBAGCNxUIh9qGdYPu2QGCyYUbgbWeYYX062CBXYTS30KC55N6AgFkAgEQMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATBNBgNVHSAERjBEMEIGCSsGAQQBgjcqATA1MDMGCCsGAQUFBwIBFidodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcHMwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDAjAKBggrBgEFBQcDATCCBW0GA1UdEQSCBWQwggVgggx3d3cuYmluZy5jb22CEGRpY3QuYmluZy5jb20uY26CEyoucGxhdGZvcm0uYmluZy5jb22CCiouYmluZy5jb22CCGJpbmcuY29tghZpZW9ubGluZS5taWNyb3NvZnQuY29tghMqLndpbmRvd3NzZWFyY2guY29tghljbi5pZW9ubGluZS5taWNyb3NvZnQuY29tghEqLm9yaWdpbi5iaW5nLmNvbYINKi5tbS5iaW5nLm5ldIIOKi5hcGkuYmluZy5jb22CGGVjbi5kZXYudmlydHVhbGVhcnRoLm5ldIINKi5jbi5iaW5nLm5ldIINKi5jbi5iaW5nLmNvbYIQc3NsLWFwaS5iaW5nLmNvbYIQc3NsLWFwaS5iaW5nLm5ldIIOKi5hcGkuYmluZy5uZXSCDiouYmluZ2FwaXMuY29tgg9iaW5nc2FuZGJveC5jb22CFmZlZWRiYWNrLm1pY3Jvc29mdC5jb22CG2luc2VydG1lZGlhLmJpbmcub2ZmaWNlLm5ldIIOci5iYXQuYmluZy5jb22CECouci5iYXQuYmluZy5jb22CEiouZGljdC5iaW5nLmNvbS5jboIPKi5kaWN0LmJpbmcuY29tgg4qLnNzbC5iaW5nLmNvbYIQKi5hcHBleC5iaW5nLmNvbYIWKi5wbGF0Zm9ybS5jbi5iaW5nLmNvbYINd3AubS5iaW5nLmNvbYIMKi5tLmJpbmcuY29tgg9nbG9iYWwuYmluZy5jb22CEXdpbmRvd3NzZWFyY2guY29tgg5zZWFyY2gubXNuLmNvbYIRKi5iaW5nc2FuZGJveC5jb22CGSouYXBpLnRpbGVzLmRpdHUubGl2ZS5jb22CDyouZGl0dS5saXZlLmNvbYIYKi50MC50aWxlcy5kaXR1LmxpdmUuY29tghgqLnQxLnRpbGVzLmRpdHUubGl2ZS5jb22CGCoudDIudGlsZXMuZGl0dS5saXZlLmNvbYIYKi50My50aWxlcy5kaXR1LmxpdmUuY29tghUqLnRpbGVzLmRpdHUubGl2ZS5jb22CCzNkLmxpdmUuY29tghNhcGkuc2VhcmNoLmxpdmUuY29tghRiZXRhLnNlYXJjaC5saXZlLmNvbYIVY253ZWIuc2VhcmNoLmxpdmUuY29tggxkZXYubGl2ZS5jb22CDWRpdHUubGl2ZS5jb22CEWZhcmVjYXN0LmxpdmUuY29tgg5pbWFnZS5saXZlLmNvbYIPaW1hZ2VzLmxpdmUuY29tghFsb2NhbC5saXZlLmNvbS5hdYIUbG9jYWxzZWFyY2gubGl2ZS5jb22CFGxzNGQuc2VhcmNoLmxpdmUuY29tgg1tYWlsLmxpdmUuY29tghFtYXBpbmRpYS5saXZlLmNvbYIObG9jYWwubGl2ZS5jb22CDW1hcHMubGl2ZS5jb22CEG1hcHMubGl2ZS5jb20uYXWCD21pbmRpYS5saXZlLmNvbYINbmV3cy5saXZlLmNvbYIcb3JpZ2luLmNud2ViLnNlYXJjaC5saXZlLmNvbYIWcHJldmlldy5sb2NhbC5saXZlLmNvbYIPc2VhcmNoLmxpdmUuY29tghJ0ZXN0Lm1hcHMubGl2ZS5jb22CDnZpZGVvLmxpdmUuY29tgg92aWRlb3MubGl2ZS5jb22CFXZpcnR1YWxlYXJ0aC5saXZlLmNvbYIMd2FwLmxpdmUuY29tghJ3ZWJtYXN0ZXIubGl2ZS5jb22CE3dlYm1hc3RlcnMubGl2ZS5jb22CFXd3dy5sb2NhbC5saXZlLmNvbS5hdYIUd3d3Lm1hcHMubGl2ZS5jb20uYXUwDQYJKoZIhvcNAQELBQADggIBADTpW/UWeupk40OP6k4yxihKStswxwqPAfMRmx4XyqmTAawAKRNM+6EZth1BQdPdOplwRTvs69kkmUHJH+ZjYXBezEACWkzEiNUQnzkRWajdSQIz08Ubj/mBD6U8xLYD+NXgiB0xNWabd8aiPsqPaj6I3qkNw4JvtgtHZQG1zlwC5/Lu6yV3DM3sKpQMyBmOnX6nVUiS0MTOzLgZOQzRk07nO7EXWGcKTmDBjE8cqv5IA/jQ6gtaxCI5pDxfXK4ct7oQyoChfxOXcEDKMmMndFmg9ch5c4an/FRM2cgzDfjR01A71LNUpLUdOjNV0T+ZEStqEpdyDFfjrHGDtzLyqEz3iyvvQFyjmlGh6OtZXwjCPpnVSrKCmfJKio0kUxyq+6t5tZAQbPVgFKiMrVnU+sgvmNVip1toijyz8vMVCkwJ2G++7xjJukoELMxZ50W4/SAMZLy1Asx02NBwYCu9+CTQPVnmPe7rmxhlQRBOfDNa1+5jwRHY64YudEzKhWR1uqS3ABd/fk+TL86yuNYGAgxnOm1FtOGieRgViV3+NzC+bDbuUOtmbD/GvDGmRwJRcCTHL7jBmkHePh2ABY93NE/IbkaDP6l1Kw98AfqkzSUxhqHXuThe7KIoX9/0zv4AA1WZFis1QvAG7dpl9eio6vCdC/73HvBAlqRL+7Mb1uu0", "name": "cert1"}], "backend_address_pools": [{"backend_addresses": [{"ip_address": "10.0.0.4"}], "name": "test_backend_address_pool"}], "backend_http_settings_collection": [{"cookie_based_affinity": "Enabled", "name": "sample_appgateway_http_settings", "port": 80, "probe": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/probes/custom_probe"}, "protocol": "Http"}], "frontend_ip_configurations": [{"subnet": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/virtualNetworks/vnetef45326500/subnets/subnetef45326500", "name": "sample_gateway_frontend_ip_config"}}], "frontend_ports": [{"name": "ag_frontend_port", "port": 90}, {"name": "http_frontend_port", "port": 80}], "gateway_ip_configurations": [{"name": "app_gateway_ip_config", "subnet": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/virtualNetworks/vnetef45326500/subnets/subnetef45326500"}}], "http_listeners": [{"frontend_ip_configuration": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendIPConfigurations/sample_gateway_frontend_ip_config"}, "frontend_port": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendPorts/ag_frontend_port"}, "name": "sample_http_listener", "protocol": "Https", "ssl_certificate": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/sslCertificates/cert2"}}, {"frontend_ip_configuration": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendIPConfigurations/sample_gateway_frontend_ip_config"}, "frontend_port": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendPorts/http_frontend_port"}, "name": "http_listener", "protocol": "Http"}], "location": "southcentralus", "probes": [{"host": "10.0.0.4", "interval": 30, "name": "custom_probe", "path": "/healthz", "pick_host_name_from_backend_http_settings": false, "protocol": "Http", "timeout": 30, "unhealthy_threshold": 3}], "redirect_configurations": [{"include_path": true, "include_query_string": true, "name": "redirect_site_to_https", "redirect_type": "Permanent", "target_listener": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/httpListeners/sample_http_listener"}}], "request_routing_rules": [{"backend_address_pool": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/backendAddressPools/test_backend_address_pool"}, "backend_http_settings": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/backendHttpSettingsCollection/sample_appgateway_http_settings"}, "http_listener": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/httpListeners/sample_http_listener"}, "name": "rule1", "rule_type": "Basic"}, {"http_listener": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/httpListeners/http_listener"}, "name": "http_redirect_rule", "redirect_configuration": {"id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/redirectConfigurations/redirect_site_to_https"}, "rule_type": "Basic"}], "sku": {"capacity": 2, "name": "Standard_Small", "tier": "Standard"}, "ssl_certificates": [{"data": "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", "name": "cert2", "password": "your-password"}]}}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [dump] *****************************************************************************************************************************************************************************
ok: [localhost] => {
    "output": {
        "changed": true,
        "failed": false,
        "parameters": {
            "authentication_certificates": [
                {
                    "data": "MIIMAjCCCeqgAwIBAgITLQAAMpnXBx230XCKQgAAAAAymTANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEVMBMGA1UECxMMTWljcm9zb2Z0IElUMR4wHAYDVQQDExVNaWNyb3NvZnQgSVQgVExTIENBIDUwHhcNMTcwNzIwMTc0NzA4WhcNMTkwNzEwMTc0NzA4WjAXMRUwEwYDVQQDEwx3d3cuYmluZy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6jsg+/7DlIrdgFOcaDlK3RQ9sIgkJsgpj+ZxAbIe3ziyimIxjVlHX87pqgXcNhaYNbCFD0iPm+aUfbv4GDTLR+AIr8eSegqxZ+CBToYM67NhpVYra1KAvY4XgqxorO4FB9IWYJRqhI3SZeZ3lLK5t9XuUMicG8l52nJfpPdXXvBca2wUCq8FHEObG81vJzESA0htLLPTjdUWBQnXPiW5bqzlGHzzv8ISV6jtDLNNa5JRlhSlXho+6pCedhNF7MP4yTaantPvAELLRWX13VhjgoCcRCCu0s8rxW5DuVWl2Pb2iw35MFnNWlcoVwq0AjAfGA+xEba/WLid6qfkQctYjAgMBAAGjggfQMIIHzDAdBgNVHQ4EFgQUCYflhSl4MCAls91+3GztpSmoA3AwCwYDVR0PBAQDAgSwMB8GA1UdIwQYMBaAFAj+JZ906ocEwry7jqg4XzPG0WxlMIGsBgNVHR8EgaQwgaEwgZ6ggZuggZiGS2h0dHA6Ly9tc2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29mdCUyMElUJTIwVExTJTIwQ0ElMjA1LmNybIZJaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9tc2NvcnAvY3JsL01pY3Jvc29mdCUyMElUJTIwVExTJTIwQ0ElMjA1LmNybDCBhQYIKwYBBQUHAQEEeTB3MFEGCCsGAQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9NaWNyb3NvZnQlMjBJVCUyMFRMUyUyMENBJTIwNS5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLm1zb2NzcC5jb20wPgYJKwYBBAGCNxUHBDEwLwYnKwYBBAGCNxUIh9qGdYPu2QGCyYUbgbWeYYX062CBXYTS30KC55N6AgFkAgEQMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATBNBgNVHSAERjBEMEIGCSsGAQQBgjcqATA1MDMGCCsGAQUFBwIBFidodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL21zY29ycC9jcHMwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDAjAKBggrBgEFBQcDATCCBW0GA1UdEQSCBWQwggVgggx3d3cuYmluZy5jb22CEGRpY3QuYmluZy5jb20uY26CEyoucGxhdGZvcm0uYmluZy5jb22CCiouYmluZy5jb22CCGJpbmcuY29tghZpZW9ubGluZS5taWNyb3NvZnQuY29tghMqLndpbmRvd3NzZWFyY2guY29tghljbi5pZW9ubGluZS5taWNyb3NvZnQuY29tghEqLm9yaWdpbi5iaW5nLmNvbYINKi5tbS5iaW5nLm5ldIIOKi5hcGkuYmluZy5jb22CGGVjbi5kZXYudmlydHVhbGVhcnRoLm5ldIINKi5jbi5iaW5nLm5ldIINKi5jbi5iaW5nLmNvbYIQc3NsLWFwaS5iaW5nLmNvbYIQc3NsLWFwaS5iaW5nLm5ldIIOKi5hcGkuYmluZy5uZXSCDiouYmluZ2FwaXMuY29tgg9iaW5nc2FuZGJveC5jb22CFmZlZWRiYWNrLm1pY3Jvc29mdC5jb22CG2luc2VydG1lZGlhLmJpbmcub2ZmaWNlLm5ldIIOci5iYXQuYmluZy5jb22CECouci5iYXQuYmluZy5jb22CEiouZGljdC5iaW5nLmNvbS5jboIPKi5kaWN0LmJpbmcuY29tgg4qLnNzbC5iaW5nLmNvbYIQKi5hcHBleC5iaW5nLmNvbYIWKi5wbGF0Zm9ybS5jbi5iaW5nLmNvbYINd3AubS5iaW5nLmNvbYIMKi5tLmJpbmcuY29tgg9nbG9iYWwuYmluZy5jb22CEXdpbmRvd3NzZWFyY2guY29tgg5zZWFyY2gubXNuLmNvbYIRKi5iaW5nc2FuZGJveC5jb22CGSouYXBpLnRpbGVzLmRpdHUubGl2ZS5jb22CDyouZGl0dS5saXZlLmNvbYIYKi50MC50aWxlcy5kaXR1LmxpdmUuY29tghgqLnQxLnRpbGVzLmRpdHUubGl2ZS5jb22CGCoudDIudGlsZXMuZGl0dS5saXZlLmNvbYIYKi50My50aWxlcy5kaXR1LmxpdmUuY29tghUqLnRpbGVzLmRpdHUubGl2ZS5jb22CCzNkLmxpdmUuY29tghNhcGkuc2VhcmNoLmxpdmUuY29tghRiZXRhLnNlYXJjaC5saXZlLmNvbYIVY253ZWIuc2VhcmNoLmxpdmUuY29tggxkZXYubGl2ZS5jb22CDWRpdHUubGl2ZS5jb22CEWZhcmVjYXN0LmxpdmUuY29tgg5pbWFnZS5saXZlLmNvbYIPaW1hZ2VzLmxpdmUuY29tghFsb2NhbC5saXZlLmNvbS5hdYIUbG9jYWxzZWFyY2gubGl2ZS5jb22CFGxzNGQuc2VhcmNoLmxpdmUuY29tgg1tYWlsLmxpdmUuY29tghFtYXBpbmRpYS5saXZlLmNvbYIObG9jYWwubGl2ZS5jb22CDW1hcHMubGl2ZS5jb22CEG1hcHMubGl2ZS5jb20uYXWCD21pbmRpYS5saXZlLmNvbYINbmV3cy5saXZlLmNvbYIcb3JpZ2luLmNud2ViLnNlYXJjaC5saXZlLmNvbYIWcHJldmlldy5sb2NhbC5saXZlLmNvbYIPc2VhcmNoLmxpdmUuY29tghJ0ZXN0Lm1hcHMubGl2ZS5jb22CDnZpZGVvLmxpdmUuY29tgg92aWRlb3MubGl2ZS5jb22CFXZpcnR1YWxlYXJ0aC5saXZlLmNvbYIMd2FwLmxpdmUuY29tghJ3ZWJtYXN0ZXIubGl2ZS5jb22CE3dlYm1hc3RlcnMubGl2ZS5jb22CFXd3dy5sb2NhbC5saXZlLmNvbS5hdYIUd3d3Lm1hcHMubGl2ZS5jb20uYXUwDQYJKoZIhvcNAQELBQADggIBADTpW/UWeupk40OP6k4yxihKStswxwqPAfMRmx4XyqmTAawAKRNM+6EZth1BQdPdOplwRTvs69kkmUHJH+ZjYXBezEACWkzEiNUQnzkRWajdSQIz08Ubj/mBD6U8xLYD+NXgiB0xNWabd8aiPsqPaj6I3qkNw4JvtgtHZQG1zlwC5/Lu6yV3DM3sKpQMyBmOnX6nVUiS0MTOzLgZOQzRk07nO7EXWGcKTmDBjE8cqv5IA/jQ6gtaxCI5pDxfXK4ct7oQyoChfxOXcEDKMmMndFmg9ch5c4an/FRM2cgzDfjR01A71LNUpLUdOjNV0T+ZEStqEpdyDFfjrHGDtzLyqEz3iyvvQFyjmlGh6OtZXwjCPpnVSrKCmfJKio0kUxyq+6t5tZAQbPVgFKiMrVnU+sgvmNVip1toijyz8vMVCkwJ2G++7xjJukoELMxZ50W4/SAMZLy1Asx02NBwYCu9+CTQPVnmPe7rmxhlQRBOfDNa1+5jwRHY64YudEzKhWR1uqS3ABd/fk+TL86yuNYGAgxnOm1FtOGieRgViV3+NzC+bDbuUOtmbD/GvDGmRwJRcCTHL7jBmkHePh2ABY93NE/IbkaDP6l1Kw98AfqkzSUxhqHXuThe7KIoX9/0zv4AA1WZFis1QvAG7dpl9eio6vCdC/73HvBAlqRL+7Mb1uu0",
                    "name": "cert1"
                }
            ],
            "backend_address_pools": [
                {
                    "backend_addresses": [
                        {
                            "ip_address": "10.0.0.4"
                        }
                    ],
                    "name": "test_backend_address_pool"
                }
            ],
            "backend_http_settings_collection": [
                {
                    "cookie_based_affinity": "Enabled",
                    "name": "sample_appgateway_http_settings",
                    "port": 80,
                    "probe": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/probes/custom_probe"
                    },
                    "protocol": "Http"
                }
            ],
            "frontend_ip_configurations": [
                {
                    "subnet": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/virtualNetworks/vnetef45326500/subnets/subnetef45326500",
                        "name": "sample_gateway_frontend_ip_config"
                    }
                }
            ],
            "frontend_ports": [
                {
                    "name": "ag_frontend_port",
                    "port": 90
                },
                {
                    "name": "http_frontend_port",
                    "port": 80
                }
            ],
            "gateway_ip_configurations": [
                {
                    "name": "app_gateway_ip_config",
                    "subnet": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/virtualNetworks/vnetef45326500/subnets/subnetef45326500"
                    }
                }
            ],
            "http_listeners": [
                {
                    "frontend_ip_configuration": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendIPConfigurations/sample_gateway_frontend_ip_config"
                    },
                    "frontend_port": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendPorts/ag_frontend_port"
                    },
                    "name": "sample_http_listener",
                    "protocol": "Https",
                    "ssl_certificate": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/sslCertificates/cert2"
                    }
                },
                {
                    "frontend_ip_configuration": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendIPConfigurations/sample_gateway_frontend_ip_config"
                    },
                    "frontend_port": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/frontendPorts/http_frontend_port"
                    },
                    "name": "http_listener",
                    "protocol": "Http"
                }
            ],
            "location": "southcentralus",
            "probes": [
                {
                    "host": "10.0.0.4",
                    "interval": 30,
                    "name": "custom_probe",
                    "path": "/healthz",
                    "pick_host_name_from_backend_http_settings": false,
                    "protocol": "Http",
                    "timeout": 30,
                    "unhealthy_threshold": 3
                }
            ],
            "redirect_configurations": [
                {
                    "include_path": true,
                    "include_query_string": true,
                    "name": "redirect_site_to_https",
                    "redirect_type": "Permanent",
                    "target_listener": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/httpListeners/sample_http_listener"
                    }
                }
            ],
            "request_routing_rules": [
                {
                    "backend_address_pool": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/backendAddressPools/test_backend_address_pool"
                    },
                    "backend_http_settings": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/backendHttpSettingsCollection/sample_appgateway_http_settings"
                    },
                    "http_listener": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/httpListeners/sample_http_listener"
                    },
                    "name": "rule1",
                    "rule_type": "Basic"
                },
                {
                    "http_listener": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/httpListeners/http_listener"
                    },
                    "name": "http_redirect_rule",
                    "redirect_configuration": {
                        "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500/redirectConfigurations/redirect_site_to_https"
                    },
                    "rule_type": "Basic"
                }
            ],
            "sku": {
                "capacity": 2,
                "name": "Standard_Small",
                "tier": "Standard"
            },
            "ssl_certificates": [
                {
                    "data": "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",
                    "name": "cert2",
                    "password": "your-password"
                }
            ]
        }
    }
}

TASK [Create instance of Application Gateway] *******************************************************************************************************************************************
changed: [localhost] => {"changed": true, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500"}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Create instance of Application Gateway by looking up virtual network and subnet] **************************************************************************************************
changed: [localhost] => {"changed": true, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-subnet-lookupef45326500"}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Create instance of Application Gateway with probe using hostname from backend http settings] **************************************************************************************
changed: [localhost] => {"changed": true, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-probe-ef45326500"}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Test no update instance of Application Gateway with probe using hostname from backend http settings] ******************************************************************************
ok: [localhost] => {"changed": false, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-probe-ef45326500"}

TASK [Assert the resource instance is not changed] **************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Try to update instance of Application Gateway - no change] ************************************************************************************************************************
ok: [localhost] => {"changed": false, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500"}

TASK [Assert the resource instance is not changed] **************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Try to update instance of Application Gateway - single change] ********************************************************************************************************************
changed: [localhost] => {"changed": true, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgatewayef45326500"}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Create instance of Application Gateway with path based rules] *********************************************************************************************************************
changed: [localhost] => {"changed": true, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-path-rulesef45326500"}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Try to update instance of Application Gateway with path based rules - no change] **************************************************************************************************
ok: [localhost] => {"changed": false, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-path-rulesef45326500"}

TASK [Assert the resource instance is not changed] **************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Create instance of Application Gateway with complex routing and redirect rules] ***************************************************************************************************
changed: [localhost] => {"changed": true, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-complexef45326500"}

TASK [Assert the resource instance is well created] *************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Try to update instance of Application Gateway with complex routing and redirect rules - no change] ********************************************************************************
ok: [localhost] => {"changed": false, "id": "/subscriptions/bc3b87b4-c684-43f6-b76d-a98c0e1568e8/resourceGroups/automated-testing/providers/Microsoft.Network/applicationGateways/appgateway-complexef45326500"}

TASK [Assert the resource instance is not changed] **************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Delete instance of Application Gateway -- check mode] *****************************************************************************************************************************
changed: [localhost] => {"changed": true}

TASK [Assert the state has changed] *****************************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Delete instance of Application Gateway] *******************************************************************************************************************************************
changed: [localhost] => {"changed": true}

TASK [Assert the state has changed] *****************************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Delete unexisting instance of Application Gateway] ********************************************************************************************************************************
ok: [localhost] => {"changed": false}

TASK [Assert the state has changed] *****************************************************************************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

PLAY RECAP ******************************************************************************************************************************************************************************
localhost                  : ok=33   changed=11   unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

@l3ender
Copy link
Contributor Author

l3ender commented Nov 13, 2021

@Fred-sun Here is another application gateway related PR to make this module much more flexible and comparable with adding an appgw through GUI. Thank you!

@Fred-sun Fred-sun added medium_priority Medium priority work in In trying to solve, or in working with contributors labels Nov 22, 2021
@Fred-sun Fred-sun added ready_for_review The PR has been modified and can be reviewed and merged and removed work in In trying to solve, or in working with contributors labels Nov 26, 2021
@l3ender
Copy link
Contributor Author

l3ender commented Dec 6, 2021

Hello, wondering if there is anything else I can do for this PR? Thank you!

@Fred-sun
Copy link
Collaborator

Fred-sun commented Dec 7, 2021

@l3ender We are reviewing and will push forward the merger as soon as possible. Thank you very much!

@xuzhang3
Copy link
Collaborator

xuzhang3 commented Dec 7, 2021

LGTM

@xuzhang3 xuzhang3 merged commit 036e0b3 into ansible-collections:dev Dec 7, 2021
@xuzhang3 xuzhang3 deleted the appgw-advanced-routing branch December 7, 2021 03:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
medium_priority Medium priority ready_for_review The PR has been modified and can be reviewed and merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants