f5devcentral / f5-automation-config-converter

Convert BIG-IP configs to AS3 and DO declarations
https://clouddocs.f5.com/products/extensions/f5-automation-config-converter/latest/
Apache License 2.0
35 stars 13 forks source link

The HTTPs redirect should not showing in the rendered AS3 declaration #12

Closed rjouhann closed 3 years ago

rjouhann commented 3 years ago

Environment

Summary

When converting an HTTPS with it's redirect (80->443), we should not create the redirect AS3 app service but use the redirect80 attribute in the Service_HTTPS class.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Convert following config:

    ltm virtual /tenant/app/serviceMain {
    creation-time 2021-02-11:02:56:34
    description demo2
    destination /demo2/10.2.32.3%10:443
    ip-protocol tcp
    last-modified-time 2021-02-11:03:23:07
    mask 255.255.255.255
    persist {
        /Common/cookie {
            default yes
        }
    }
    pool /demo2/demo2/Pool
    profiles {
        /Common/clientssl {
            context clientside
        }
        /Common/f5-tcp-progressive { }
        /Common/http { }
        /Common/serverssl {
            context serverside
        }
    }
    source 0.0.0.0%10/0
    source-address-translation {
        type automap
    }
    translate-address enabled
    translate-port enabled
    }
    ltm pool /tenant/app/Pool {
    members {
        /Common/1.2.3.42:80 {
            address 1.2.3.42
            metadata {
                source {
                    value declaration
                }
            }
        }
    }
    min-active-members 1
    }
    #############################################
    ltm virtual /demo2/demo2/serviceMain-Redirect- {
    creation-time 2021-02-11:02:56:34
    description demo2
    destination /demo2/10.2.32.3:80
    ip-protocol tcp
    last-modified-time 2021-02-11:02:56:34
    mask 255.255.255.255
    profiles {
        /Common/f5-tcp-progressive { }
        /Common/http { }
    }
    rules {
        /Common/_sys_https_redirect
    }
    source 0.0.0.0/0
    source-address-translation {
        type automap
    }
    translate-address enabled
    translate-port enabled
    }
    #############################################
  2. Observe the following error message:

    {
    "class": "ADC",
    "schemaVersion": "3.24.0",
    "id": "urn:uuid:f6ac7df8-3970-41b3-afad-4a1799e81d67",
    "label": "Converted Declaration",
    "remark": "Auto-generated by Project Charon",
    "tenant": {
        "class": "Tenant",
        "app": {
            "class": "Application",
            "template": "https",
            "serviceMain": {
                "remark": "demo2",
                "layer4": "tcp",
                "persistenceMethods": [
                    "cookie"
                ],
                "pool": "Pool",
                "translateServerAddress": true,
                "translateServerPort": true,
                "class": "Service_HTTPS",
                "serverTLS": {
                    "bigip": "/Common/clientssl"
                },
                "profileTCP": {
                    "bigip": "/Common/f5-tcp-progressive"
                },
                "profileHTTP": {
                    "bigip": "/Common/http"
                },
                "clientTLS": {
                    "bigip": "/Common/serverssl"
                },
                "redirect80": true,
                "virtualAddresses": [
                    [
                        "10.2.32.3%10",
                        "0.0.0.0%10/0"
                    ]
                ],
                "virtualPort": 443,
                "snat": "auto"
            },
            "Pool": {
                "members": [
                    {
                        "addressDiscovery": "static",
                        "servicePort": 80,
                        "serverAddresses": [
                            "1.2.3.42"
                        ],
                        "shareNodes": true
                    }
                ],
                "minimumMembersActive": 1,
                "class": "Pool"
            },
            "serviceMain-Redirect-": {
                "remark": "demo2",
                "layer4": "tcp",
                "iRules": [
                    {
                        "bigip": "/Common/_sys_https_redirect"
                    }
                ],
                "translateServerAddress": true,
                "translateServerPort": true,
                "class": "Service_HTTP",
                "profileTCP": {
                    "bigip": "/Common/f5-tcp-progressive"
                },
                "profileHTTP": {
                    "bigip": "/Common/http"
                },
                "virtualAddresses": [
                    "10.2.32.3"
                ],
                "virtualPort": 80,
                "persistenceMethods": [],
                "snat": "auto"
            }
        }
    }
    }
mdditt2000 commented 3 years ago

@rjouhann completely agree. Created Jira CHARON-176 for PM tracking.

p-semenov-f5 commented 3 years ago

Jira issue is done: https://jira.pdsea.f5net.com/browse/CHARON-176