ves-io-schema-views-http_loadbalancer-API-Replace

Examples of replacing http_loadbalancer

Usecase:

Replace "productpage" http_loadbalancer to now support mTLS

  • Trusted CA parameter is added to TLS config

Request using vesctl:

vesctl configuration replace http_loadbalancer -i http_loadbalancer.yaml

where file http_loadbalancer.yaml has following contents (http_loadbalancer.ReplaceRequest):

RequestJSON:

          {
    "metadata": {
        "name": "productpage",
        "namespace": "documentation",
        "labels": {
            "ves.io/app_type": "bookinfo"
        }
    },
    "spec": {
        "domains": [
            "www.bookinfo.com"
        ],
        "https": {
            "tls_cert_params": {
                "tls_config": {
                    "default_security": {}
                },
                "certificates": [
                    {
                        "name": "cert1"
                    }
                ],
                "use_mtls": {
                    "trusted_ca_url": "string:///\u003cBase64\u003e",
                    "crl": {
                        "tenant": "acmecorp",
                        "namespace": "documentation",
                        "name": "crl-1"
                    }
                }
            },
            "enable_path_normalize": {},
            "port_ranges": "80,443"
        },
        "advertise_on_public_default_vip": {},
        "default_route_pools": [
            {
                "pool": {
                    "name": "ppage-route"
                }
            }
        ],
        "disable_waf": {},
        "no_challenge": {},
        "user_id_client_ip": {},
        "disable_rate_limit": {},
        "waf_exclusion_rules": [
            {
                "any_domain": null,
                "path_regex": "",
                "methods": [
                    "ANY"
                ],
                "metadata": {
                    "name": "another-name"
                },
                "app_firewall_detection_control": {
                    "exclude_signature_contexts": [
                        {
                            "signature_id": 10000000
                        }
                    ],
                    "exclude_violation_contexts": [
                        {
                            "exclude_violation": "VIOL_ASM_COOKIE_MODIFIED"
                        }
                    ],
                    "exclude_attack_type_contexts": [
                        {
                            "exclude_attack_type": "ATTACK_TYPE_ABUSE_OF_FUNCTIONALITY"
                        }
                    ]
                }
            }
        ],
        "service_policies_from_namespace": {},
        "round_robin": {},
        "multi_lb_app": {}
    }
}
        

vesctl yaml response: None

Request using curl:

          curl -X 'PUT' -d '{"metadata":{"name":"productpage","namespace":"documentation","labels":{"ves.io/app_type":"bookinfo"}},"spec":{"domains":["www.bookinfo.com"],"https":{"tls_cert_params":{"tls_config":{"default_security":{}},"certificates":[{"name":"cert1"}],"use_mtls":{"trusted_ca_url":"string:///\u003cBase64\u003e","crl":{"tenant":"acmecorp","namespace":"documentation","name":"crl-1"}}},"enable_path_normalize":{},"port_ranges":"80,443"},"advertise_on_public_default_vip":{},"default_route_pools":[{"pool":{"name":"ppage-route"}}],"disable_waf":{},"no_challenge":{},"user_id_client_ip":{},"disable_rate_limit":{},"waf_exclusion_rules":[{"any_domain":null,"path_regex":"","methods":["ANY"],"metadata":{"name":"another-name"},"app_firewall_detection_control":{"exclude_signature_contexts":[{"signature_id":10000000}],"exclude_violation_contexts":[{"exclude_violation":"VIOL_ASM_COOKIE_MODIFIED"}],"exclude_attack_type_contexts":[{"exclude_attack_type":"ATTACK_TYPE_ABUSE_OF_FUNCTIONALITY"}]}}],"service_policies_from_namespace":{},"round_robin":{},"multi_lb_app":{}}}' -H 'X-Volterra-Useragent: v1/pgm=_var_folders_2__8qnt6fwd5dvglr1xqq6l8b7w0000gp_T_go-build3109416560_b001_apidocs.test/host=C02FN35BMD6R/svc=S:examplesvc/site=mytestce01' 'https://acmecorp.console.ves.volterra.io/api/config/namespaces/documentation/http_loadbalancers/productpage'
        

curl response:

          HTTP/1.1 200 OK
Content-Length: 4
Content-Type: application/json
Date: Thu, 21 Mar 2024 14:08:43 GMT
Vary: Accept-Encoding

{

}