From 7a5d1d9ac4dcf1033216269639736bfa4a87a075 Mon Sep 17 00:00:00 2001 From: Mohamed Bana <mohamed@bana.io> Date: Fri, 4 Nov 2022 13:38:07 +0000 Subject: [PATCH] Auth: Add new option `custom.path` (#947) Auth: Add new option `custom.host.path` `pkg/options/auth.go` --------------------- Add new option to define `path` in `custom.host` as `path`, i.e., `custom.host.path`. `config/default/kustomization.yaml`, `config/manager/configmap.yaml` and `cmd/kusk/cmd/manifest_data.go` -------------------------------------------------------------------------------------------------------- Change `kubeshop/kusk-gateway` to `v1.3.21`, and run: ``` $ (cd cmd/kusk && VERSION=v1.3.21 make build) ``` Signed-off-by: Mohamed Bana <mohamed@bana.io> --- cmd/kusk/cmd/manifest_data.go | 24 ++++++++++--------- .../bases/gateway.kusk.io_staticroutes.yaml | 6 +++++ config/default/kustomization.yaml | 2 +- config/manager/configmap.yaml | 2 +- .../auth/oauth2/static-route/manifests.yaml | 2 +- internal/envoy/auth/ext_authz_filter.go | 13 +++++----- internal/envoy/auth/ext_authz_parser.go | 3 ++- internal/envoy/auth/filters.go | 8 +++---- internal/envoy/auth/parser.go | 4 ++-- pkg/options/auth.go | 7 ++++++ pkg/options/zz_generated.deepcopy.go | 9 +++++-- 11 files changed, 51 insertions(+), 29 deletions(-) diff --git a/cmd/kusk/cmd/manifest_data.go b/cmd/kusk/cmd/manifest_data.go index 92866c0a6..d3dad1e12 100644 --- a/cmd/kusk/cmd/manifest_data.go +++ b/cmd/kusk/cmd/manifest_data.go @@ -1,6 +1,6 @@ // Code generated by go-bindata. (@generated) DO NOT EDIT. - //Package cmd generated by go-bindata.// sources: +//Package cmd generated by go-bindata.// sources: // ../../config/crd/bases/gateway.kusk.io_apis.yaml // ../../config/crd/bases/gateway.kusk.io_envoyfleet.yaml // ../../config/crd/bases/gateway.kusk.io_envoyfleets.yaml @@ -182,7 +182,7 @@ func configCrdBasesGatewayKuskIo_envoyfleetsYaml() (*asset, error) { return a, nil } -var _configCrdBasesGatewayKuskIo_staticroutesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1c\xdb\x72\xdb\x36\xf6\xdd\x5f\x71\x26\xdd\x99\x5c\x46\xa2\x9a\x78\xa7\x17\xbf\x79\x1d\xb7\xf5\xb4\x49\xbc\xb6\xd3\x3e\xec\x6c\x55\x88\x3c\x12\xb1\x06\x01\x16\x17\xc9\x6a\xb7\x33\xfd\x90\xdd\x9f\xeb\x97\xec\xe0\x80\xa4\x28\x59\x22\xa1\x54\xde\x34\x33\xc5\x4b\x2c\x12\x38\x38\xf7\x1b\xc0\x0c\x87\xc3\x23\x56\xf2\x6f\x51\x1b\xae\xe4\x09\xb0\x92\xe3\x9d\x45\xe9\x7f\x99\xe4\xf6\x33\x93\x70\x35\x9a\x3f\x3f\xba\xe5\x32\x3b\x81\x33\x67\xac\x2a\xae\xd0\x28\xa7\x53\x7c\x89\x53\x2e\xb9\xe5\x4a\x1e\x15\x68\x59\xc6\x2c\x3b\x39\x02\x60\x52\x2a\xcb\xfc\x63\xe3\x7f\x02\xa4\x4a\x5a\xad\x84\x40\x3d\x9c\xa1\x4c\x6e\xdd\x04\x27\x8e\x8b\x0c\x35\x01\xaf\xb7\x9e\x7f\x9c\x7c\x9e\xbc\x38\x02\x48\x35\xd2\xf2\x1b\x5e\xa0\xb1\xac\x28\x4f\x40\x3a\x21\x8e\x00\x24\x2b\xf0\x04\x8c\x87\x9e\x6a\xe5\x2c\x9a\x64\xc6\x2c\x2e\xd8\x32\xb9\x75\xe6\x36\xe1\xea\xc8\x94\x98\xfa\x6d\x67\x5a\xb9\xf2\x04\x36\x5f\x07\x18\x15\x62\x81\xa8\x6b\x02\x77\xe5\xc1\xd1\x53\xc1\x8d\xfd\x7a\xf3\xcd\x37\xdc\x58\x7a\x5b\x0a\xa7\x99\x58\x47\x82\x5e\x18\x2e\x67\x4e\x30\xbd\xf6\xea\x08\xc0\xa4\xaa\xc4\x13\x78\xed\xb7\x2d\x59\x8a\xd9\x11\x40\x45\x33\xa1\x31\xac\xa8\x9a\x3f\x67\xa2\xcc\xd9\xf3\x00\x2c\xcd\xb1\x60\x01\x4b\x00\x55\xa2\x3c\xbd\xbc\xf8\xf6\xf8\x7a\xed\x31\x40\x86\x26\xd5\xbc\xb4\xc4\xbf\x16\xb6\xc0\x0d\xd8\x1c\x21\xcc\x87\xa9\xd2\xf4\xb3\x8d\x33\x9c\x5e\x5e\x34\x70\x4a\xad\x4a\xd4\x96\xd7\x8c\x09\xa3\xa5\x17\xad\xa7\x1b\xbb\x3e\xf6\x88\x85\x59\x90\x79\x85\xc0\xb0\x75\x45\x22\x66\x15\x2d\xa0\xa6\x60\x73\x6e\x40\x63\xa9\xd1\xa0\x0c\x2a\xb2\x06\x18\xfc\x24\x26\x41\x4d\xfe\x85\xa9\x4d\xe0\x1a\xb5\x07\x03\x26\x57\x4e\x64\x5e\x8f\xe6\xa8\x2d\x68\x4c\xd5\x4c\xf2\x9f\x1a\xd8\x06\xac\xa2\x4d\x05\xb3\x58\xc9\x69\x35\xb8\xb4\xa8\x25\x13\x30\x67\xc2\xe1\x00\x98\xcc\xa0\x60\x4b\xd0\xe8\x77\x01\x27\x5b\xf0\x68\x8a\x49\xe0\x95\xd2\x08\x5c\x4e\xd5\x09\xe4\xd6\x96\xe6\x64\x34\x9a\x71\x5b\xdb\x43\xaa\x8a\xc2\x49\x6e\x97\x23\x52\x6d\x3e\x71\x56\x69\x33\xca\x70\x8e\x62\x64\xf8\x6c\xc8\x74\x9a\x73\x8b\xa9\x75\x1a\x47\xac\xe4\x43\x42\x5d\x92\x4d\x24\x45\xf6\x91\xae\x2c\xc8\x3c\x5e\xc3\xd5\x2e\x4b\x52\x6f\xcd\xe5\xac\xf5\x82\xd4\xb4\x43\x02\x5e\x59\xbd\xc4\x59\xb5\x34\x50\xb1\x62\xb4\x7f\xe4\xb9\x73\x75\x7e\x7d\x03\xf5\xd6\x24\x8c\x4d\xee\x13\xdf\x57\x0b\xcd\x4a\x04\x9e\x61\x5c\x4e\x51\x07\x21\x4e\xb5\x2a\x08\x26\xca\xac\x54\x5c\x5a\xfa\x91\x0a\x8e\x72\x93\xfd\xc6\x4d\x0a\x6e\xbd\xdc\x7f\x74\x68\xac\x97\x55\x02\x67\xe4\x24\x60\x82\xe0\xca\x8c\x59\xcc\x12\xb8\x90\x70\xc6\x0a\x14\x67\xcc\xe0\x83\x0b\xc0\x73\xda\x0c\x3d\x63\xe3\x44\xd0\xf6\x6f\x9b\x93\x03\xd7\x5a\x2f\x6a\x17\xb4\x43\x5e\x2d\x3b\xbd\x2e\x31\x5d\xb3\x9a\x0c\x0d\xd7\x5e\xaf\x2d\xb3\xe8\xad\x61\xd3\x39\xd5\x63\xbb\xc5\xfa\xc1\x9c\xcd\x37\x9f\x75\xcd\xf7\x23\x15\xca\x65\x9e\x3d\x76\xb9\xed\xf5\x06\x01\x6f\x2e\x6f\x2e\xde\xbc\x3e\xfd\x66\xeb\xcc\xee\x8d\xfc\xc8\x95\xb1\xbb\xde\x6d\xec\x74\x75\xfe\xf7\xb7\x17\x57\xe7\x2f\x93\x9d\xd3\xfb\xb7\xab\xb7\x24\x2f\xdb\x31\x67\xef\xad\x61\xb7\xba\xdc\xc3\x52\xe9\x0e\x92\xdf\x71\xef\xa9\xd2\x05\xb3\x27\xde\xbf\x1d\xbf\x88\xc0\xd2\xfb\xc1\x19\xea\x9d\x33\x77\x68\xf3\x1a\x1d\xcc\xe6\xe3\x52\xe3\x94\xdf\x45\x4a\xb0\xd6\x95\xdd\xa4\xf4\xb2\xb0\x07\xaf\x94\x72\x92\x3f\xd5\xf6\x4f\xb5\xfd\xa0\xd4\x56\x79\x3f\xfd\xe2\xe1\xd5\xd6\x6f\x33\xa6\x1c\xb4\x43\xd5\xd6\x37\xa4\x7f\x99\xa0\x44\xd8\xc7\xa0\x37\xa7\xce\xe6\x21\x8f\xa5\x4c\x6b\xe2\x23\x3d\xe3\x05\x66\xc0\x37\x13\xb8\x35\x0e\xe4\x48\xdb\x2b\xcd\x7f\xa2\x64\xaf\xce\x01\x12\xb8\x98\x82\x8f\xff\x3e\x52\xf2\x29\xc7\x6c\xe0\xa3\x20\x73\x82\xd2\x83\x0e\x90\xbf\xfd\xfa\x1f\x67\x50\xff\xf6\xeb\x7f\x03\x3e\x49\x85\xdc\xd5\x17\x67\x4d\x9e\x60\x95\x12\x26\xe1\x68\xa7\x89\xd2\xb3\x51\x6e\x0b\x31\xd2\xd3\xf4\x93\x4f\xff\xfa\xf9\x47\x06\x53\x8f\xc8\xf0\x38\x39\xee\xd2\xd2\x7e\xf1\x73\x8b\x45\xa7\xed\x46\x99\x58\x98\xc4\xb4\x66\xcb\x0e\xf1\x35\xfc\x1b\xd7\xd9\x56\xa4\x24\x6f\xda\x09\x9a\xc6\x8c\x6b\x9f\xde\x59\x45\x05\xc1\xba\x64\x3a\x05\xa9\xd1\x94\x4a\x1a\xf4\x4b\x9d\xac\x17\x62\xd6\xe4\x74\x49\x84\xed\x47\x30\x24\xd5\x48\x59\x08\x13\xb1\xba\x7a\xb6\x5a\x01\xce\x60\x46\x94\x91\x4a\xc4\xa0\x14\xe7\x85\x43\x56\x3b\xe6\xd9\xfb\x72\xc3\x15\x02\x06\x53\x8d\xef\xe2\x8f\x07\xc0\xa7\xf0\xc3\x1a\x94\xb1\xc6\xe9\x0f\xbe\x66\x20\x2b\x44\x3b\xe8\x84\x0a\xc0\x13\x4c\x06\x50\x38\xeb\x98\x10\x4b\xc0\xbb\x54\x38\xc3\xe7\x08\x0b\x6e\xf3\x6d\xb0\x0f\x4f\xb8\x07\x7b\x18\xe2\x1f\x8a\xf0\x1e\xa2\xe3\xb4\xcd\x8f\xfe\x98\xbf\x93\xdc\x6e\x14\x20\x9e\xf7\x35\x1e\xd4\xb3\x78\xff\xc8\x44\x44\x79\xa0\x56\x93\xba\xe5\x38\x6e\xf5\x78\xa2\x10\xee\xf7\xf7\xb0\x97\x00\x27\xc8\x34\xea\xb1\x55\xb7\x28\xf7\xe4\xdd\xcb\x55\x1c\x84\xbf\x11\x98\x1b\x0f\xe5\xa0\x72\xa5\xdc\x63\x8c\x77\x25\xd7\xfd\xb4\x74\xe0\xf7\xc6\xc3\x39\x0f\x60\x1e\x00\xc1\xbc\x60\xe9\xef\xc5\xee\xab\x57\xa7\x67\xff\x7f\x35\xf4\x98\xef\xef\xaf\xe3\xb4\x70\x8f\xc4\xa2\x13\xcf\xa9\xd2\x0b\xa6\xb3\x71\x9c\xae\xae\x21\xfa\x45\x58\x4a\x09\x5e\xc8\xbf\x68\x35\x30\x03\xac\x52\x5a\x4a\x15\x4a\x63\x35\xb2\xa2\x83\x9c\x05\x4e\xc0\xa0\x9e\xf3\x14\x13\xf8\x2e\x47\xd9\x24\x8d\x92\x9e\xa3\x86\x39\x13\x3c\x63\xb6\x6a\x90\x6c\x6d\x31\xb5\x07\x93\x3e\x2d\xb1\x4e\x4b\x03\x4c\x6e\x64\x39\x01\xcd\x09\x4b\x6f\xeb\x8e\x61\x40\x7f\xca\x85\x45\xdd\x15\x0b\xa4\x82\x82\x59\x8b\x1a\x16\x39\xb3\x55\x11\x03\xd6\xff\x1d\x80\x72\x43\x91\x66\x1b\x57\x3b\xc0\x72\xe3\x83\x10\x21\xa3\x1d\x12\x46\x01\x17\x58\x70\x21\xc0\xa0\xcc\x40\x79\x2e\xb0\xca\xb5\x91\x4f\xce\x3a\x20\xb6\x7c\x46\x4d\x63\x2d\x87\x04\x4e\xb3\x8c\x87\xe4\x5e\x2c\x07\xf4\xee\xb4\xcd\x9f\x2e\x8d\x46\x96\xd5\x58\x4d\x10\x4a\x55\x3a\xc1\x2c\x66\x21\x0e\x52\x73\x99\x15\x18\x3a\x8f\xf1\xd9\xe0\x44\x29\x81\x6c\xd7\xbe\x25\x33\x66\x6c\x73\xad\xdc\x2c\x1f\x17\xcc\xa6\x39\xea\x48\x0d\x3d\x95\xcb\x3a\x39\x0d\x42\x0a\xcb\xbd\x4a\x2c\x43\x27\x1a\xbd\x3b\x9f\xf3\xac\x93\x99\xd5\xa6\x66\x45\x37\x33\x3e\xcb\xac\x90\x22\xe2\x95\xb3\x95\x16\x55\x9a\xca\x55\xa7\xb7\xfe\xe3\xd4\x16\x75\x45\x30\xa6\xfa\x78\x3f\x06\xbf\xf2\xb3\xb9\x9c\x41\xaa\xb9\x45\xcd\x59\x48\xbf\xad\x82\x0c\x2d\xea\x82\x4b\x84\x45\x8e\x36\xf7\xba\xdb\xd5\x62\x60\x36\x07\x56\x96\xc8\x74\x5d\x5b\x7a\xd9\x68\x34\x4e\x50\xf1\xc9\x56\x85\x4b\xd3\x74\x66\x91\x4a\x1b\x3c\xc8\x81\x8a\x93\x86\x5b\x4e\xf3\x3d\xea\xaf\x06\xfb\xb7\x57\x17\x8d\xfa\xa8\xbd\xc8\xa8\x4b\xb8\x04\xae\x5d\x59\x2a\x6d\x4d\x6d\x8e\xc1\x0d\x85\x06\xbf\xb7\xf8\x43\x15\x62\xcd\xf9\x44\x24\xa1\x8f\x9b\x9e\x41\x73\xbc\x50\x32\xcd\x0a\xaf\x0a\xf7\x8b\xcd\xce\x4a\x33\xd8\xec\xd5\x17\x67\x27\x7d\x05\xfd\x67\x9f\x7e\xfc\x69\xb2\x32\xa7\xc7\xef\xdd\x9e\x0c\x9f\x49\xe5\x82\x39\xed\xa1\x21\x64\x02\x56\xd1\x72\x20\x3b\xd2\xa0\x9c\x1d\x40\x2a\x90\xe9\xea\xf0\x86\xeb\x56\x75\xdc\x9b\x00\x1f\x4a\x0f\x48\xa9\xf6\xed\x3a\x9c\xd7\x1d\x07\x25\xb7\xb4\x80\xaa\xa8\x6e\x95\x8f\xd2\x9a\xe3\x1c\xfb\x3a\x48\x69\x8a\xc6\x54\x51\xd6\xbb\x80\x83\xd0\xd6\x99\x20\x75\xbc\x9c\x0a\xdc\x96\xd3\xad\xa7\x47\x7e\x4e\xeb\x14\x0d\xce\xe5\x5c\x2d\xc3\xd3\x8b\x97\x03\x58\xe4\x3c\xcd\x7d\xe8\xcf\xb0\x14\x6a\x89\x59\x6b\xc2\x16\x64\xd7\x0f\xdd\x29\x01\xa0\x2c\xa7\xa9\xce\x9a\x8e\x1d\x65\x20\x05\x37\xc6\x2b\x4d\x1d\xb2\x98\xb3\xaa\x60\x96\xa7\x3e\xe8\x6f\x01\xcf\xb2\x0c\x33\x98\x2c\x89\xd9\x5f\x3b\x73\x0b\x5f\x86\x33\xf3\x55\x68\xcf\xb8\x49\x7d\x16\xd2\x84\x4e\xbf\x81\xc0\xc0\x8c\x2d\x20\xb9\xac\x72\x35\x67\xbc\x03\x78\xf2\xca\x59\xe6\x9d\xd4\x77\x38\xc9\x95\xba\x3d\x53\x72\xca\x67\x4e\x07\x85\xa8\x0f\xa7\x4f\x2f\x2f\x1a\xef\xb1\x05\x66\xe1\x0c\x9d\x17\xa2\x64\x13\x81\xd9\xd3\xfb\xb2\xef\x2e\xcf\x76\xd7\xd4\x6b\xb2\x5b\x17\x49\x25\xca\xb3\x2b\x5a\xbe\xbd\x03\x4b\x59\xa1\x3c\x81\xef\xff\xc1\x86\x3f\x7d\x3c\xfc\x7c\xf8\xcf\x9f\x9f\x0f\x3e\x79\xf1\xcb\x5f\x3a\xf4\x6e\xa7\x62\xf6\x54\xdc\xd1\xa8\x12\x8c\x07\xc7\xd7\x7b\x6b\xae\x71\x4b\x63\x6c\xb8\x9d\x61\xc3\x0e\xe4\x3a\x8c\x2e\x57\xc6\x6e\x11\xea\x1a\x37\xbe\xf2\x73\xc2\x29\x78\xaa\x84\x08\x7d\x5e\xaf\xaf\x73\x5a\x1d\xb2\x0a\x27\x7c\x0a\x58\x96\x62\x49\xa7\xd0\x75\xb5\xb8\x85\x72\xab\xe0\xd1\xb3\x47\x30\x0c\xcb\x37\x72\x48\x21\x20\x53\x05\xe3\x32\x90\x73\x5f\x15\x77\x46\x9c\x7b\x28\x07\x8c\xe7\xf4\xe7\x13\x6f\xd5\x2d\xc0\x4f\xc3\xd1\x30\x0f\xa5\x8b\xc7\xe0\xde\x89\x7d\x18\x94\x7a\x65\x8e\x62\x45\x1d\x41\xb5\x72\xde\xe4\x12\x38\xa3\xbb\x13\x13\xf4\x0e\x21\x4b\x7d\xd9\xf6\x24\x50\xe6\xc9\x08\xcc\x79\xba\xbd\xf2\x09\x27\x26\x23\xe3\xa6\x53\x7e\xd7\x5a\xfe\x6c\x88\x77\xac\x28\x05\x26\xa9\x2a\x06\x50\xff\x78\x36\x80\x89\xb3\xd4\x58\x9b\x28\x9b\x6f\x05\xf9\xac\x9a\xfc\xec\xe9\x00\x94\x06\xc3\xfd\x8f\x9a\xe6\x27\x8b\xc5\x22\x69\x81\x7e\xba\x4d\x2e\x5d\xfa\xb8\x3b\x44\xfb\x18\xbb\x45\x20\xac\xa9\x87\x2e\x3b\x9d\x47\xec\xbc\xcd\x2a\x24\x28\x21\x37\x80\x3c\x64\xc2\x24\x16\xdc\x2c\xcc\x3c\x2b\x56\x79\xee\xae\x32\xd4\xe6\xb8\x7c\xac\x71\x4b\x33\x72\x7b\x1c\xec\x6f\x57\xd5\x3b\xc6\x1e\x6b\x56\xd3\x43\xb8\x31\x75\x01\x45\x79\x5a\x03\xcb\x17\xb4\xd8\xa4\x6e\x24\x51\xef\x9e\x4a\xad\xee\x96\x09\x57\xa3\x4c\xa5\x66\x44\x8f\x46\xe1\xb6\x0e\x5d\xcf\x98\x1f\x8f\x52\x8a\x0a\x23\x62\xd0\x68\x7e\x1c\xfe\x18\xa7\xaa\x28\x95\xa4\xbb\x28\xa5\x56\x56\x7d\x44\x4b\x87\xf3\xe3\xa1\x5f\x56\x98\xd9\x30\xac\x1b\xd2\x74\xff\xbc\x46\x84\xa5\x9d\xb9\x66\xfc\x09\xec\xb8\x9f\x4d\xb0\xc7\x99\xaa\xaf\xb5\xe2\x20\xae\x31\x7f\x57\x0b\x5a\xe3\xc2\x57\x60\xa0\x71\x86\x77\x8d\x14\x0e\x82\xa9\xd2\xb1\xb4\x1f\xfa\x4c\x77\x75\xe4\x34\x4e\x55\xd6\xd3\x7e\x7e\x88\xcd\x89\xa7\x63\xe2\xe9\x01\x64\x44\x19\x7e\x94\x68\xe2\x5b\xcc\x75\x1c\x3f\x64\xdb\xd5\xb8\x89\xb1\xdc\x3a\x7b\xef\xca\xdf\xef\x02\xbc\x3b\x4d\x68\x8f\x61\x4d\x52\xcf\xac\x36\x92\x87\xe8\xd5\xd2\x15\x42\x7c\x17\x93\xf4\x4e\xee\xdf\xe4\xe9\x0e\x61\x6e\x7e\x42\x39\xfe\xd1\xa1\xde\x71\x07\x6b\x1d\x5e\x77\xeb\x2c\x8a\x7a\x72\x99\xb1\xbe\x9f\xe2\x56\x7d\x55\x8d\xd5\xe9\x05\xa5\x54\x21\x37\xf1\x1e\x9e\x63\xcf\xf9\x7d\x6f\x4b\x38\xf2\x48\x56\xe9\x1e\x03\x89\x37\xa4\xa8\x43\xe7\x7a\xc4\xf1\x3e\x0c\xbc\x2b\x95\xc1\x71\x68\xd5\x44\xc0\xee\x6d\x53\xac\x23\x11\x65\xd1\x31\x6d\x8b\x7a\x7c\x30\x88\x16\xec\x6e\xcc\x66\x11\x87\x92\xb1\xfe\x1e\xc2\x0d\xcf\x5c\x65\x1f\x00\xf5\x4a\xf3\x19\x97\x7f\x78\x44\x23\xbd\xef\x8f\xea\x60\x86\xcc\x33\x81\x63\xcb\x0b\x54\xae\xc7\x8b\xc3\xa6\x77\xbb\xc8\x04\xde\x84\x95\x74\x75\xbe\xfa\x73\xaa\x34\x41\x85\x54\x49\x89\xdd\xf9\x64\x3d\xe2\xb3\x11\xd8\x53\x43\xab\xca\xee\x1d\x49\xbc\x0a\xab\xdb\x54\x2a\x4b\x0d\xdb\xea\x94\x24\xbc\x78\xaf\xf4\x59\x1d\x21\xe6\x7b\x74\xd1\xaa\x2a\x34\x41\xae\x16\x50\x30\xb9\x24\x7a\x4c\xdd\x66\xec\xb3\x29\x3f\x52\x26\x44\x7d\x53\x7e\xc2\xd2\x5b\x94\x5d\x27\x43\x61\x3c\x14\x33\x22\x8d\xa7\x8e\xa6\x7b\xe4\x2c\x6f\xab\x25\x75\x0d\x57\x47\xf4\xa6\x14\xa5\x58\xbe\xe8\x6a\xca\x42\xb0\xca\xbb\xa5\xe7\x2e\x35\x2e\x98\xcc\xe8\x43\x01\x9e\x22\xb0\xad\x15\xea\x81\x4c\xbc\xfb\x0e\x6e\x27\xc1\x84\x68\x93\xbf\xc8\x25\xbc\x7c\x7d\xdd\x5c\xb0\x8d\x50\x8f\x90\xc8\x2b\x6d\x6b\x0e\x41\xca\x64\xc3\x87\x01\xe0\x1c\x25\x28\x67\x8d\xaf\x88\xd5\x34\xc6\xed\xae\x5a\xa4\xbd\xb3\xe3\x59\x04\xd1\xf7\x86\xeb\x71\xaf\x27\x45\x1d\xe6\xea\x0b\xa2\x46\x2f\x6a\x98\x7d\x17\xa6\xea\x51\x1f\x8d\x7a\x96\xf5\x5f\xc0\x80\x7d\xc3\x50\xcc\xe5\xe4\x7a\xac\x11\x78\xe9\x45\xb8\x49\x5c\x3c\x92\xfb\x59\x3c\xec\xe9\x02\x63\x6b\x25\xa0\x4a\x28\x5a\x7b\x87\x44\x60\xa4\x7f\xea\xf5\x3a\xb0\xaa\x90\xf7\xf6\xd5\xa1\x57\x51\xb1\xbf\xaa\xf7\xe0\x09\xd5\xd9\x4f\xc9\x8d\x74\x9d\x15\xd7\xa3\x5d\x01\xd6\x9f\x3c\x05\xa3\xe4\x42\x40\x9a\x33\x39\x43\x78\x7b\xf5\x0d\x2c\x72\x6c\xee\x1c\x47\xc0\xe5\x06\x26\xe8\x81\x55\x97\x38\x56\x27\xb5\x8d\xa2\x34\x77\x55\x30\x99\xc5\x28\xcc\x8c\xcf\xb1\xea\xdd\x5e\x52\x37\xb5\x75\xe3\xe3\xd1\xa8\x44\x6b\xac\x0a\x5f\x28\x8d\xe6\xc7\x8f\x62\x6c\xcb\x33\x89\x7c\x51\xc5\xcc\xe4\xb2\xe2\x62\x0b\xf0\xf7\x0d\xe4\x28\x90\x35\xa4\xeb\x36\x5f\x5b\xe0\x1e\x55\x47\x94\xc4\x62\xe5\x44\x7f\x5c\x04\x98\x20\xcc\x50\xa2\xa6\x3b\x22\xdc\xdc\x27\x96\x7e\x3f\x1a\x90\x9c\x3c\xe4\x48\x87\xb9\x29\x89\x80\x10\x68\x4c\x91\xcf\x31\xec\xd4\xde\xa0\x5f\x48\xfb\xb9\xd6\xe8\xb6\x0b\xec\xef\xd1\xf6\x6b\xbf\xec\xbd\xc1\x3e\xae\x25\xa6\x15\x03\xfb\xb5\x63\x60\x3f\x0f\x53\xc9\xf7\x1d\xa3\x7d\x9d\x8d\xd4\x01\xff\xeb\xcf\x4c\x93\xa1\x74\x5e\x75\x6f\x30\x7d\xb0\xe0\xfc\x8e\x81\xf9\xf5\xb6\xa0\xdc\x22\xeb\x71\x77\x13\x6a\x7d\xff\x07\x09\xc8\x7b\xdc\x16\x86\x6d\xd4\x85\xb3\xec\x45\x8e\x1a\x1b\xeb\xe6\x06\x84\x4a\xbd\x13\xf9\xa3\xa7\x10\xef\x22\x8a\x0f\x33\xed\xe8\x3e\x5f\x5e\x9f\x7b\xd8\xbc\x23\x72\xe2\x02\x27\x46\xa5\xb7\x7b\xdd\xbd\x3d\xa7\x6b\x05\x80\xc6\xb2\x89\xe0\x86\xae\xb6\x7d\x57\xc3\x69\xd5\xff\xa6\x2f\xa0\x4e\x96\xf5\xa7\x4c\x90\x71\x43\x77\x15\x0e\xd0\xcd\xed\x97\xcf\xb0\xbf\xb7\xda\xcb\xbe\x9e\x09\xeb\x17\x00\x43\xbf\x0c\x0a\x56\x9a\xea\x07\x3c\xf9\xf2\xfc\x66\x00\x97\x6f\xae\x6f\x9e\xfa\xc4\xe1\x74\x57\xc7\xa4\x73\x9f\x75\x53\x63\x36\xaf\x4e\xf5\x0b\x27\x2c\xcf\x78\x11\xfe\x6f\x0a\x26\xfc\xce\xa0\xa6\x21\x37\x19\x55\xfd\xbb\x2a\x61\xdb\xb2\x67\xbb\x61\x7d\xdf\x3e\x77\x62\xb4\x9d\xf1\xc3\x70\xa0\x7c\x14\x01\xc2\x58\x66\x9d\x89\xfc\x1c\x9c\xe6\xae\x7d\x10\xae\x26\x74\x61\x2a\xe2\x8b\xf0\xad\xfb\xdf\x7b\x18\xa0\x9d\xd0\x75\xe3\xf0\xc0\x2a\xcd\x66\xd8\x7e\xe2\x26\xf7\xee\xff\x55\x54\xc0\xcf\xbf\x1c\xfd\x2f\x00\x00\xff\xff\x52\x8a\xfd\x0f\x32\x44\x00\x00") +var _configCrdBasesGatewayKuskIo_staticroutesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3c\xdb\x72\xdb\x36\x94\xef\xfe\x8a\x33\xe9\xce\xe4\x32\x16\xd5\xc4\x3b\xbd\xf8\xcd\xeb\xb8\xad\xa7\x4d\xe2\xb5\x9d\xf6\x61\x67\xab\x42\xe4\x91\x88\x35\x08\xb0\xb8\x48\x56\xbb\x9d\xe9\x87\xec\xfe\x5c\xbf\x64\x07\x07\x24\x45\xc9\x14\x09\xa5\xf2\xa6\x9d\x29\x5e\x62\x91\xc0\xc1\xb9\xdf\x00\x66\x34\x1a\x1d\xb1\x92\x7f\x8f\xda\x70\x25\x4f\x81\x95\x1c\xef\x2d\x4a\xff\xcb\x24\x77\x5f\x98\x84\xab\xf1\xe2\xe5\xd1\x1d\x97\xd9\x29\x9c\x3b\x63\x55\x71\x8d\x46\x39\x9d\xe2\x6b\x9c\x71\xc9\x2d\x57\xf2\xa8\x40\xcb\x32\x66\xd9\xe9\x11\x00\x93\x52\x59\xe6\x1f\x1b\xff\x13\x20\x55\xd2\x6a\x25\x04\xea\xd1\x1c\x65\x72\xe7\xa6\x38\x75\x5c\x64\xa8\x09\x78\xbd\xf5\xe2\xd3\xe4\xcb\xe4\xd5\x11\x40\xaa\x91\x96\xdf\xf2\x02\x8d\x65\x45\x79\x0a\xd2\x09\x71\x04\x20\x59\x81\xa7\x60\x3c\xf4\x54\x2b\x67\xd1\x24\x73\x66\x71\xc9\x56\xc9\x9d\x33\x77\x09\x57\x47\xa6\xc4\xd4\x6f\x3b\xd7\xca\x95\xa7\xb0\xfd\x3a\xc0\xa8\x10\x0b\x44\xdd\x10\xb8\x6b\x0f\x8e\x9e\x0a\x6e\xec\xb7\xdb\x6f\xbe\xe3\xc6\xd2\xdb\x52\x38\xcd\xc4\x26\x12\xf4\xc2\x70\x39\x77\x82\xe9\x8d\x57\x47\x00\x26\x55\x25\x9e\xc2\x5b\xbf\x6d\xc9\x52\xcc\x8e\x00\x2a\x9a\x09\x8d\x51\x45\xd5\xe2\x25\x13\x65\xce\x5e\x06\x60\x69\x8e\x05\x0b\x58\x02\xa8\x12\xe5\xd9\xd5\xe5\xf7\x27\x37\x1b\x8f\x01\x32\x34\xa9\xe6\xa5\x25\xfe\xb5\xb0\x05\x6e\xc0\xe6\x08\x61\x3e\xcc\x94\xa6\x9f\x6d\x9c\xe1\xec\xea\xb2\x81\x53\x6a\x55\xa2\xb6\xbc\x66\x4c\x18\x2d\xbd\x68\x3d\xdd\xda\xf5\xa9\x47\x2c\xcc\x82\xcc\x2b\x04\x86\xad\x2b\x12\x31\xab\x68\x01\x35\x03\x9b\x73\x03\x1a\x4b\x8d\x06\x65\x50\x91\x0d\xc0\xe0\x27\x31\x09\x6a\xfa\x5f\x98\xda\x04\x6e\x50\x7b\x30\x60\x72\xe5\x44\xe6\xf5\x68\x81\xda\x82\xc6\x54\xcd\x25\xff\xa5\x81\x6d\xc0\x2a\xda\x54\x30\x8b\x95\x9c\xd6\x83\x4b\x8b\x5a\x32\x01\x0b\x26\x1c\x1e\x03\x93\x19\x14\x6c\x05\x1a\xfd\x2e\xe0\x64\x0b\x1e\x4d\x31\x09\xbc\x51\x1a\x81\xcb\x99\x3a\x85\xdc\xda\xd2\x9c\x8e\xc7\x73\x6e\x6b\x7b\x48\x55\x51\x38\xc9\xed\x6a\x4c\xaa\xcd\xa7\xce\x2a\x6d\xc6\x19\x2e\x50\x8c\x0d\x9f\x8f\x98\x4e\x73\x6e\x31\xb5\x4e\xe3\x98\x95\x7c\x44\xa8\x4b\xb2\x89\xa4\xc8\x3e\xd1\x95\x05\x99\xa7\x1b\xb8\xda\x55\x49\xea\xad\xb9\x9c\xb7\x5e\x90\x9a\xf6\x48\xc0\x2b\xab\x97\x38\xab\x96\x06\x2a\xd6\x8c\xf6\x8f\x3c\x77\xae\x2f\x6e\x6e\xa1\xde\x9a\x84\xb1\xcd\x7d\xe2\xfb\x7a\xa1\x59\x8b\xc0\x33\x8c\xcb\x19\xea\x20\xc4\x99\x56\x05\xc1\x44\x99\x95\x8a\x4b\x4b\x3f\x52\xc1\x51\x6e\xb3\xdf\xb8\x69\xc1\xad\x97\xfb\xcf\x0e\x8d\xf5\xb2\x4a\xe0\x9c\x9c\x04\x4c\x11\x5c\x99\x31\x8b\x59\x02\x97\x12\xce\x59\x81\xe2\x9c\x19\x7c\x74\x01\x78\x4e\x9b\x91\x67\x6c\x9c\x08\xda\xfe\x6d\x7b\x72\xe0\x5a\xeb\x45\xed\x82\x76\xc8\xab\x65\xa7\x37\x25\xa6\x1b\x56\x93\xa1\xe1\xda\xeb\xb5\x65\x16\xbd\x35\x6c\x3b\xa7\x7a\x74\x5b\xac\x1f\xcc\xd9\x7c\xfb\x59\xdf\x7c\x3f\x52\xa1\x5c\xe6\xd9\x63\x57\x5d\xaf\xb7\x08\x78\x77\x75\x7b\xf9\xee\xed\xd9\x77\x9d\x33\xfb\x37\xf2\x23\x57\xc6\xee\x7a\xb7\xb5\xd3\xf5\xc5\xbf\xbf\xbf\xbc\xbe\x78\x9d\xec\x9c\x3e\xbc\x5d\xbd\x25\x79\xd9\x9e\x39\x7b\x6f\x0d\xbb\xd5\xe5\x01\x96\xac\x4b\x26\x3b\xf7\xae\x19\x7c\x98\xbd\x95\xee\x61\xf7\x83\xbd\xe3\xe8\x9e\x29\x5d\x30\x7b\xea\x7d\xeb\xc9\xab\x08\x2c\xbd\x0f\x9e\xa3\xde\x39\x73\x87\x25\x6d\xd0\xc1\x6c\x3e\x29\x35\xce\xf8\x7d\xa4\xf6\x0c\xb3\x71\x90\x85\x03\x78\xa5\x94\x0f\xfd\x63\x32\xff\x98\xcc\x3f\x26\x13\x89\x97\xf2\xf1\xe9\xd5\xe3\x9b\x8c\xdf\x66\x42\xb9\x77\x8f\x9a\x6f\x6e\x48\xff\x32\x41\x05\x80\x8f\xbd\xef\xce\x9c\xcd\x43\xfe\x4e\x19\xe6\xd4\x67\x38\x8c\x17\x98\x01\xdf\x4e\x5c\x37\x38\x90\x23\x6d\xaf\x34\xff\x85\x92\xdc\x3a\xf7\x49\xe0\x72\x06\x3e\xef\xf1\x19\x02\x9f\x71\xcc\x8e\x7d\xf4\x67\x4e\x50\x5a\xd4\x03\xf2\x8f\xdf\xff\xc7\x19\xd4\x7f\xfc\xfe\xbf\x01\x9f\xa4\x42\xee\xfa\xab\xf3\x26\x3f\xb2\x4a\x09\x93\x70\xb4\xb3\x44\xe9\xf9\x38\xb7\x85\x18\xeb\x59\xfa\xd9\xe7\xff\xfa\xe5\x27\x06\x53\x8f\xc8\xe8\x24\x39\xe9\xd3\xd2\x61\xf1\x73\x8b\x45\xaf\xdf\x88\x32\xb1\x30\x89\x69\xcd\x56\x3d\xe2\x6b\xf8\x37\xa9\xb3\xcc\x48\x49\xde\xb6\x13\x53\x8d\x19\xd7\x3e\xad\xb5\x8a\x0a\xa1\x4d\xc9\xf4\x0a\x52\xa3\x29\x95\x34\xe8\x97\x3a\x59\x2f\xc4\xac\xc9\x65\x93\x08\xdb\x8f\x60\x48\xaa\x91\xb2\x2f\x26\x62\x75\xf5\x7c\xbd\x02\x9c\xc1\x8c\x28\x23\x95\x88\x41\x29\x2e\x02\x84\x6c\x7e\xc2\xb3\x8f\x15\x02\x2a\x04\x0c\xa6\x1a\x3f\xc4\x1f\x1f\x03\x9f\xc1\x4f\x1b\x50\x26\x1a\x67\x3f\xf9\x5a\x89\xac\x10\xed\x71\x2f\x54\x00\x9e\x60\x72\x0c\x85\xb3\x8e\x09\xb1\x02\xbc\x4f\x85\x33\x7c\x81\xb0\xe4\x36\xef\x82\x7d\x78\xc2\x3d\xd8\xc3\x10\xff\x58\x84\x0f\x10\x1d\xa7\x6d\x7e\x0c\xe7\x1b\x3b\xc9\xed\x47\x01\xe2\x79\x5f\xe3\x41\xbd\x9a\x8f\x8f\x4c\x44\x94\x07\x6a\xb1\xa9\x3b\x8e\x93\x56\x6f\x2b\x0a\xe1\xb8\xac\x29\x5e\x80\x53\x64\x1a\xf5\xc4\xaa\x3b\x94\x7b\xf2\xee\xf5\x3a\x0e\xc2\xbf\x11\x98\x5b\x0f\xe5\xa0\x72\xa5\xdc\x63\x82\xf7\x25\xd7\xc3\xb4\xf4\xe0\xf7\xce\xc3\xb9\x08\x60\x1e\x01\xc1\xbc\x60\xe9\x9f\xc5\xee\x9b\x37\x67\xe7\xff\xff\x6a\xe8\x31\xdf\xdf\x5f\x1f\x30\x77\x8f\xc0\x73\xa6\xf4\x92\xe9\x6c\x12\xa7\xab\x1b\x88\x7e\x15\x96\x52\x82\x17\xf2\x2f\x5a\x0d\xcc\x00\xab\x94\x96\x52\x85\xd2\x58\x8d\xac\xe8\x21\x67\x89\x53\x30\xa8\x17\x3c\xc5\x04\x7e\xc8\x51\x36\x49\xa3\xa4\xe7\xa8\x61\xc1\x04\xcf\x98\xad\x1a\x43\x9d\xad\xb5\xf6\x60\xd2\xa7\x25\xd6\x69\x69\x80\xc9\xad\x2c\x27\xa0\x39\x65\xe9\x5d\xdd\x29\x0d\xe8\xcf\xb8\xb0\xa8\xfb\x62\x81\x54\x50\x30\x6b\x51\xc3\x32\x67\xb6\x2a\x62\xc0\xfa\xbf\x03\x50\x6e\x28\xd2\x74\x71\xb5\x07\x2c\x37\x3e\x08\x11\x32\xda\x21\x61\x14\x70\x81\x25\x17\x02\x0c\xca\x0c\x94\xe7\x02\xab\x5c\x1b\xf9\xe4\xac\x07\x62\xcb\x67\xd4\x34\xd6\x72\x48\xe0\x2c\xcb\x78\x48\xee\xc5\xea\x98\xde\x9d\xb5\xf9\xd3\xa7\xd1\xc8\xb2\x1a\xab\x29\x42\xa9\x4a\x27\x98\xc5\x2c\xc4\x41\x6a\xaa\xb3\x02\x43\xc7\x35\x3e\x1b\x9c\x2a\x25\x90\xed\xda\xb7\x64\xc6\x4c\x6c\xae\x95\x9b\xe7\x93\x82\xd9\x34\x47\x1d\xa9\xa1\x67\x72\x55\x27\xa7\x41\x48\x61\xb9\x57\x89\x55\xe8\xc0\xa3\x77\xe7\x0b\x9e\xf5\x32\xb3\xda\xd4\xac\xe9\x66\xc6\x67\x99\x15\x52\x44\xbc\x72\xb6\xd2\xa2\x4a\x53\xb9\xea\xf5\xd6\x7f\x9d\xda\xa2\xae\x08\x26\x54\x1f\xef\xc7\xe0\x37\x7e\x36\x97\x73\x48\x35\xb7\xa8\x39\x0b\xe9\xb7\x55\x90\xa1\x45\x5d\x70\x89\xb0\xcc\xd1\xe6\x5e\x77\x07\xda\x1b\xc0\xca\x12\x99\xae\x6b\x4b\x2f\x1b\x8d\xc6\x09\x2a\x3e\xd9\xba\x70\x69\x9a\xed\x2c\x52\x69\x83\x07\x39\x50\x71\xd2\x70\xcb\x69\xbe\x47\xfd\xd5\x60\xff\xfe\xfa\xb2\x51\x1f\xb5\x17\x19\x75\x09\x97\xc0\x8d\x2b\x4b\xa5\xad\xa9\xcd\x31\xb8\xa1\x70\xb0\xe1\x2d\xfe\x50\x85\x58\x73\x2e\x13\x49\xe8\xd3\xa6\x67\xd0\x1c\xab\x94\x4c\xb3\xc2\xab\xc2\xc3\x62\xb3\xb7\xd2\x0c\x36\x7b\xfd\xd5\xf9\xe9\x50\x41\xff\xc5\xe7\x9f\x7e\x9e\xac\xcd\xe9\xe9\x47\xb7\x27\xc3\xe7\x52\xb9\x60\x4e\x7b\x68\x08\x99\x80\x55\xb4\x1c\xc8\x8e\x34\x28\x67\x8f\x21\x15\xc8\x74\x75\x68\xc5\x75\xab\x3a\x1e\x4c\x80\x0f\xa5\x07\xa4\x54\xfb\x76\x1d\x2e\xea\x8e\x83\x92\x1d\x2d\xa0\x2a\xaa\x5b\xe5\xa3\xb4\xe6\xb8\xc0\xa1\x0e\x52\x9a\xa2\x31\x55\x94\xf5\x2e\xe0\x20\xb4\xf5\x26\x48\x3d\x2f\x67\x02\xbb\x72\xba\xcd\xf4\xc8\xcf\x69\x9d\x1e\xc2\x85\x5c\xa8\x55\x78\x7a\xf9\xfa\x18\x96\x39\x4f\x73\x1f\xfa\x33\x2c\x85\x5a\x61\xd6\x9a\xd0\x81\xec\xe6\x65\x03\x4a\x00\x28\xcb\x69\xaa\xb3\xa6\x63\x47\x19\x48\xc1\x8d\xf1\x4a\x53\x87\x2c\xe6\xac\x2a\x98\xe5\xa9\x0f\xfa\x1d\xe0\x59\x96\x61\x06\xd3\x15\x31\xfb\x5b\x67\xee\xe0\xeb\x70\x57\x60\x1d\xda\x33\x6e\x52\x9f\x85\x34\xa1\xd3\x6f\x20\x30\x30\xa3\x03\x24\x97\x55\xae\xe6\x8c\x77\x00\xcf\xde\x38\xcb\xbc\x93\xfa\x01\xa7\xb9\x52\x77\xe7\x4a\xce\xf8\xdc\xe9\xa0\x10\xf5\xa1\xfc\xd9\xd5\x65\xe3\x3d\x3a\x60\x16\xce\xd0\x39\x29\x4a\x36\x15\x98\x3d\x7f\x28\xfb\xfe\xf2\x6c\x77\x4d\xbd\x21\xbb\x4d\x91\x54\xa2\x3c\xbf\xa6\xe5\xdd\x1d\x58\xca\x0a\xe5\x29\xfc\xf8\x1f\x6c\xf4\xcb\xa7\xa3\x2f\x47\xff\xf9\xeb\xcb\xe3\xcf\x5e\xfd\xf6\x2f\x3d\x7a\xb7\x53\x31\x07\x2a\xee\x68\x54\x09\xc6\xa3\xe3\xeb\xbd\x35\xd7\xd8\xd1\x18\x1b\x75\x33\x6c\xd4\x83\x5c\x8f\xd1\xe5\xca\xd8\x0e\xa1\x6e\x70\xe3\x1b\x3f\x27\x9c\xfe\xa7\x4a\x88\xd0\xe7\xf5\xfa\xba\xa0\xd5\x21\xab\x70\xc2\xa7\x80\x65\x29\x56\x74\xfa\x5e\x57\x8b\x1d\x94\x5b\x05\x4f\x5e\x3c\x81\x51\x58\xbe\x95\x43\x0a\x01\x99\x2a\x18\x97\x81\x9c\x87\xaa\xb8\x33\xe2\x3c\x40\x39\x60\xbc\xa0\x3f\x9f\x79\xab\x6e\x01\x7e\x1e\x8e\xc4\x79\x28\x5d\x3c\x06\x0f\x6e\x2a\x84\x41\xa9\x57\xe6\x28\x56\xd4\x11\x54\x2b\xe7\x4d\x2e\x81\x73\xba\x33\x32\x45\xef\x10\xb2\xd4\x97\x6d\xcf\x02\x65\x9e\x8c\xc0\x9c\xe7\xdd\x95\x4f\x38\x31\x19\x1b\x37\x9b\xf1\xfb\xd6\xf2\x17\x23\xbc\x67\x45\x29\x30\x49\x55\x71\x0c\xf5\x8f\x17\xc7\x30\x75\x96\x1a\x6b\x53\x65\xf3\x4e\x90\x2f\xaa\xc9\x2f\x9e\x1f\x83\xd2\x60\xb8\xff\x51\xd3\xfc\x6c\xb9\x5c\x26\x2d\xd0\xcf\xbb\xe4\xd2\xa7\x8f\xbb\x43\xb4\x8f\xb1\x1d\x02\x61\x4d\x3d\x74\xd5\xeb\x3c\x62\xe7\x6d\x57\x21\x41\x09\xb9\x01\xe4\x21\x13\x26\xb1\xe0\x76\x61\xe6\x59\xb1\xce\x73\x77\x95\xa1\x36\xc7\xd5\x53\x8d\x1d\xcd\xc8\xee\x38\x38\xdc\xae\xaa\x77\x8c\x3d\x52\xad\xa6\x87\x70\x63\xea\x02\x8a\xf2\xb4\x06\x96\x2f\x68\xb1\x49\xdd\x48\xa2\xde\x3d\x95\x5a\xdd\xaf\x12\xae\xc6\x99\x4a\xcd\x98\x1e\x8d\xc3\x2d\x25\xba\x96\xb2\x38\x19\xa7\x14\x15\xc6\xc4\xa0\xf1\xe2\x24\xfc\x31\x49\x55\x51\x2a\x49\x77\x70\x4a\xad\xac\xfa\x84\x96\x8e\x16\x27\x23\xbf\xac\x30\xf3\x51\x58\x37\xa2\xe9\xfe\x79\x8d\x08\x4b\x7b\x73\xcd\xf8\xd3\xdf\xc9\x30\x9b\x60\xbf\xf3\xdc\x48\x88\x1b\xcc\xdf\xd5\x82\xd6\xb8\xf4\x15\x18\x68\x9c\xe3\x7d\x23\x85\x83\x60\xaa\x74\x2c\xed\x87\x3e\xd3\x5d\x1f\x39\x4d\x52\x95\x0d\xb4\x9f\x1f\x63\x73\xe2\xe9\x84\x78\x7a\x00\x19\x51\x86\x1f\x25\x9a\xf8\x16\x73\x1d\xc7\x0f\xd9\x76\x35\x6e\x6a\x2c\xb7\xce\x3e\xb8\xea\xf8\xa7\x00\xef\x4e\x13\xda\x63\x54\x93\x34\x30\xab\x8d\xe4\x21\x7a\xb5\x74\x75\x12\x3f\xc4\x24\xbd\x93\xfb\x6f\xf2\x74\x87\x30\x37\x3f\xa1\x9c\xfc\xec\x50\xef\xb8\x7b\xb6\x09\xaf\xbf\x75\x16\x45\x3d\xb9\xcc\x58\xdf\x4f\x71\xab\xbe\xa2\xc7\xea\xf4\x82\x52\xaa\x90\x9b\x78\x0f\xcf\x71\xe0\xfc\x7e\xb0\x25\x1c\x79\x24\xab\xf4\x80\x81\xc4\x1b\x52\xd4\xa1\x73\x3d\xe2\x78\x1f\x06\xde\x97\xca\xe0\x24\xb4\x6a\x22\x60\x0f\xb6\x29\x36\x91\x88\xb2\xe8\x98\xb6\x45\x3d\xfe\x36\x88\x16\xec\x7e\xc2\xe6\x11\x87\x92\xb1\xfe\x1e\xc2\xcd\xd6\x5c\x65\x7f\x03\xea\x95\xe6\x73\x2e\xff\xf2\x88\x46\x7a\xdf\x9f\xd5\xc1\x0c\x99\x67\x02\x27\x96\x17\xa8\xdc\x80\x17\x87\x6d\xef\x76\x99\x09\xbc\x0d\x2b\xe9\x93\x81\xea\xcf\x99\xd2\x04\x15\x52\x25\x25\xf6\xe7\x93\xf5\x88\xcf\x46\x60\x4f\x0d\xad\x2a\xbb\x0f\x24\xf1\x3a\xac\x6e\x53\xa9\x2c\x35\x6c\xab\x53\x92\xf0\xe2\xa3\xd2\x67\x75\x84\x98\x1f\xd0\x45\xab\xaa\xd0\x04\xb9\x5a\x42\xc1\xe4\x8a\xe8\x31\x75\x9b\x71\xc8\xa6\xfc\x48\x99\x10\xf5\x17\x02\x53\x96\xde\xa1\xec\x3b\x19\x0a\xe3\xb1\x98\x11\x69\x3c\x75\x34\xdd\x23\x67\x79\x5f\x2d\xa9\x6b\xb8\x3a\xa2\x37\xa5\x28\xc5\xf2\x65\x5f\x53\x16\x82\x55\xde\xaf\x3c\x77\xa9\x71\xc1\x64\x46\x1f\x48\xf0\x14\x81\x75\x56\xa8\x07\x32\xf1\xfe\xfb\xbf\xbd\x04\x13\xa2\x4d\xfe\x22\x57\xf0\xfa\xed\x4d\x73\xb9\x37\x42\x3d\x42\x22\xaf\xb4\xad\x39\x04\x29\x93\x0d\x1f\x8e\x01\x17\x28\x41\x39\x6b\x7c\x45\xac\x66\x31\x6e\x77\xdd\x22\x1d\x9c\x1d\xcf\x22\x88\xbe\xb3\x5c\x8f\x07\x3d\x29\xea\x30\x57\x5f\x4e\x35\x7a\x51\xc3\x1c\xba\x30\x55\x8f\xfa\x68\xd4\xb3\x6c\xf8\x02\x06\xec\x1b\x86\x62\x2e\x27\xd7\x63\x83\xc0\x2b\x2f\xc2\x6d\xe2\xe2\x91\xdc\xcf\xe2\x61\x4f\x17\x18\x5b\x2b\x01\x55\x42\xd1\xda\x3b\x22\x02\x23\xfd\xd3\xa0\xd7\x81\x75\x85\xbc\xb7\xaf\x0e\xbd\x8a\x8a\xfd\x55\xbd\x07\xcf\xa8\xce\x7e\x4e\x6e\xa4\xef\xac\xb8\x1e\xed\x0a\xb0\xfe\xd4\x2b\x18\x25\x17\x02\xd2\x9c\xc9\x39\xc2\xfb\xeb\xef\x60\x99\x63\x73\xe7\x38\x02\x2e\x37\x30\x45\x0f\xac\xba\xc4\xb1\x3e\xa9\x6d\x14\xa5\xb9\xab\x82\xc9\x3c\x46\x61\xe6\x7c\x81\x55\xef\xf6\x8a\xba\xa9\xad\x1b\x1f\x4f\xc6\x25\x5a\x63\x55\xf8\x32\x6b\xbc\x38\x79\x12\x63\x5b\x9e\x49\xe4\x8b\x2a\x66\x26\x57\x15\x17\x5b\x80\x7f\x6c\x20\x47\x81\xac\x21\xdd\xb4\xf9\xda\x02\xf7\xa4\x3a\xa2\x24\x16\x2b\x27\x86\xe3\x22\xc0\x14\x61\x8e\x12\x35\xdd\x11\xe1\xe6\x21\xb1\xf4\xfb\xc9\x31\xc9\xc9\x43\x8e\x74\x98\xdb\x92\x08\x08\x81\xc6\x14\xf9\x02\xc3\x4e\xed\x0d\x86\x85\xb4\x9f\x6b\x8d\x6e\xbb\xc0\xfe\x1e\x6d\xbf\xf6\xcb\xde\x1b\xec\xe3\x5a\x62\x5a\x31\xb0\x5f\x3b\x06\xf6\xf3\x30\x95\x7c\x3f\x30\xda\xd7\xd9\x48\x1d\xf0\xbf\xfd\xc2\x34\x19\x4a\xef\x55\xf7\x06\xd3\x47\x0b\xce\x1f\x18\x98\xdf\x76\x05\xe5\x16\x59\x4f\xfb\x9b\x50\x9b\xfb\x3f\x4a\x40\xde\xe3\xb6\x30\x74\x51\x17\xce\xb2\x97\x39\x6a\x6c\xac\x9b\x1b\x10\x2a\xf5\x4e\xe4\xaf\x9e\x42\x7c\x88\x28\xfe\x9e\x69\x47\xff\xf9\xf2\xe6\xdc\xc3\xe6\x1d\x91\x13\x97\x38\x35\x2a\xbd\xdb\xeb\xee\xed\x05\x5d\x2b\x00\x34\x96\x4d\x05\x37\x74\xb5\xed\x87\x1a\x4e\xab\xfe\x37\x43\x01\x75\xba\xaa\x3f\x65\x82\x8c\x1b\xba\xab\x70\x80\x6e\xee\xb0\x7c\x46\xc3\xbd\xd5\x41\xf6\x0d\x4c\xd8\xbc\x00\x18\xfa\x65\x50\xb0\xd2\x54\x3f\xe0\xd9\xd7\x17\xb7\xc7\x70\xf5\xee\xe6\xf6\xb9\x4f\x1c\xce\x76\x75\x4c\x7a\xf7\xd9\x34\x35\x66\xf3\xea\x54\xbf\x70\xc2\xf2\x8c\x17\xe1\xff\xe4\x60\xc2\xef\x0c\x6a\x16\x72\x93\x71\xd5\xbf\xab\x12\xb6\x8e\x3d\xdb\x0d\xeb\x87\xf6\xb9\x13\xa3\x6e\xc6\x8f\xc2\x81\xf2\x51\x04\x08\x63\x99\x75\x26\xf2\x33\x78\x9a\xbb\xf1\x21\xbc\x9a\xd2\x85\xa9\x88\x2f\xe1\x3b\xf7\x7f\xf0\x30\x40\x3b\xa5\xeb\xc6\xe1\x81\x55\x9a\xcd\xb1\xfd\xc4\x4d\x1f\xdc\xff\xab\xa8\x80\x5f\x7f\x3b\xfa\xbf\x00\x00\x00\xff\xff\xb3\xd4\xa5\xd2\x2a\x45\x00\x00") func configCrdBasesGatewayKuskIo_staticroutesYamlBytes() ([]byte, error) { return bindataRead( @@ -197,7 +197,7 @@ func configCrdBasesGatewayKuskIo_staticroutesYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "config/crd/bases/gateway.kusk.io_staticroutes.yaml", size: 17458, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + info := bindataFileInfo{name: "config/crd/bases/gateway.kusk.io_staticroutes.yaml", size: 17706, mode: os.FileMode(420), modTime: time.Unix(1, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -302,7 +302,7 @@ func configCrdPatchesWebhook_in_staticroutesYaml() (*asset, error) { return a, nil } -var _configDefaultKustomizationYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x52\xbd\x8e\xdb\x3c\x10\xec\xf9\x14\x8b\x73\x71\xdf\x07\xc4\x74\x9c\x34\x81\xba\xd4\x49\x0e\x01\x12\x5c\x6b\xac\xc4\xb1\x44\x88\xe2\x12\xe4\xca\x3f\x79\xfa\x40\x3f\xf0\xdd\xe1\xdc\xa4\xa3\xb4\x33\xc3\x99\xe1\x72\xf2\xcf\xc8\xc5\x4b\xac\xa8\x1f\x8b\xca\xe0\xff\xc0\x36\x12\x8f\xbe\xb5\xfd\x97\x62\xbd\xec\x4e\xfb\x1a\xca\x7b\xd3\xfb\xe8\x2a\xfa\xb6\xa2\x58\xbd\x44\x93\x51\x64\xcc\x0d\x4a\x65\xb6\x64\xed\xae\xc9\x6e\x39\xe4\x9a\x9b\xe5\x34\x70\xe4\x16\x79\xf9\x38\xa3\xee\x44\x7a\x63\x36\xf4\xd5\xb9\x42\x91\x07\x94\xc4\x0d\x48\x85\x38\x04\xba\x09\x5a\x73\x9b\xcd\xd6\xfa\x6d\xb9\x16\xc5\x30\x51\x9f\x39\x8c\x20\x39\x92\x76\xbe\xd0\xd1\x23\x38\xf2\x85\x52\x46\x42\x74\x70\x93\x98\x76\x30\x9b\x45\x7f\x42\xbe\xd1\xfe\x40\xb0\xad\x25\x26\x87\x14\xe4\x3a\x20\xea\x8c\x74\x66\x43\x0f\x67\xc9\x2e\x65\x94\xf2\x40\x35\x1a\x99\xf8\x0f\x1c\x7c\x83\xb2\x7d\x19\x59\xb3\xa1\x27\x51\x90\x76\xac\xe4\x95\x4a\x27\x63\x70\xc4\xa1\x08\x0d\xac\x4d\x47\x67\xaf\xdd\xe4\x62\xb2\x75\xf4\x17\xfa\x4f\x71\x51\xaa\x71\x94\x0c\x7a\xdc\x3e\xfe\xbf\x04\xc0\x4b\x07\x66\xb3\x66\xe1\x5a\x4e\xb0\xab\xfd\x9f\x33\xbd\x9a\x72\x7f\xe7\x1a\xa1\xcc\x55\x39\xf7\xae\x31\xe2\xe8\xa8\x20\xa0\x51\xc9\xc5\x9a\x46\x86\x41\xe2\xc2\xa9\x0c\x11\xa7\x64\xfb\xb1\x46\x8e\x50\xcc\x2f\xeb\x63\x51\x8e\xb7\x82\x5b\x56\x9c\xf9\xba\x75\x38\x21\x48\x9a\x6a\xb9\x4b\x9b\x5c\xbd\xa5\x18\x93\xa6\xcc\x28\xbf\x34\xb3\xa2\xf5\xcd\x0f\xe4\x16\xd3\x52\xac\xcf\x7f\xe0\x51\xbb\x43\xca\x72\xb9\x1e\x66\xac\xbd\xf2\x10\x5e\xcd\xd7\xcd\x78\x3d\x34\x7e\xe0\x76\x59\xad\x3b\x57\x12\x45\x9c\x9f\xd6\xff\x35\x4a\x27\x69\xf7\x1e\xf0\x9b\xdb\x8a\x4e\x7b\xfb\xd9\x7e\xfa\x78\x57\xa7\x72\x38\xfd\x8b\x56\x60\x45\x51\xf3\x37\x00\x00\xff\xff\x9d\x6e\xfb\x84\x39\x03\x00\x00") +var _configDefaultKustomizationYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x52\xbb\x8e\xdb\x30\x10\xec\xf9\x15\x8b\x73\x71\x09\x10\xd3\x70\xd2\x04\xea\x52\x27\x39\x04\x48\x70\xad\xb1\x12\xc7\x12\x21\x8a\x4b\x90\x2b\x3f\xf2\xf5\x81\x1e\xf0\xdd\xe1\xdc\xa4\xa3\xb4\x33\xc3\x99\xe1\x72\xf2\xcf\xc8\xc5\x4b\xac\xa8\x1f\x8b\xca\xe0\xff\xc2\x36\x12\x8f\xbe\xb5\xfd\xd7\x62\xbd\xec\x4e\xfb\x1a\xca\x7b\xd3\xfb\xe8\x2a\xfa\xbe\xa2\x58\xbd\x44\x93\x51\x64\xcc\x0d\x4a\x65\xb6\x64\xed\xae\xc9\x6e\x39\xe4\x9a\x9b\xe5\x34\x70\xe4\x16\x79\xf9\x38\xa3\xee\x44\x7a\x63\x36\xf4\xcd\xb9\x42\x91\x07\x94\xc4\x0d\x48\x85\x38\x04\xba\x09\x5a\x73\x9b\xcd\xd6\xfa\x6d\xb9\x16\xc5\x30\x51\x9f\x39\x8c\x20\x39\x92\x76\xbe\xd0\xd1\x23\x38\xf2\x85\x52\x46\x42\x74\x70\x93\x98\x76\x30\x9b\x45\x7f\x42\xbe\xd1\xfe\x44\xb0\xad\x25\x26\x87\x14\xe4\x3a\x20\xea\x8c\x74\x66\x43\x0f\x67\xc9\x2e\x65\x94\xf2\x40\x35\x1a\x99\xf8\x0f\x1c\x7c\x83\xb2\x7d\x19\x59\xb3\xa1\x27\x51\x90\x76\xac\xe4\x95\x4a\x27\x63\x70\xc4\xa1\x08\x0d\xac\x4d\x47\x67\xaf\xdd\xe4\x62\xb2\x75\xf4\x17\xfa\xa0\xb8\x28\xd5\x38\x4a\x06\x3d\x6e\x1f\x3f\x2e\x01\xf0\xd2\x81\xd9\xac\x59\xb8\x96\x13\xec\x6a\xff\xd7\x4c\xaf\xa6\xdc\x3f\xb8\x46\x28\x73\x55\xce\xbd\x6b\x8c\x38\x3a\x2a\x08\x68\x54\x72\xb1\xa6\x91\x61\x90\xb8\x70\x2a\x43\xc4\x29\xd9\x7e\xac\x91\x23\x14\xf3\xcb\xfa\x58\x94\xe3\xad\xe0\x96\x15\x67\xbe\x6e\x1d\x4e\x08\x92\xa6\x5a\xee\xd2\x26\x57\x6f\x29\xc6\xa4\x29\x33\xca\x6f\xcd\xac\x68\x7d\xf3\x13\xb9\xc5\xb4\x14\xeb\xf3\x1f\x78\xd4\xee\x90\xb2\x5c\xae\x87\x19\x6b\xaf\x3c\x84\x57\xf3\x75\x33\x5e\x0f\x8d\x1f\xb8\x5d\x56\xeb\xce\x95\x44\x11\xe7\xa7\xf5\x7f\x8d\xd2\x49\xda\xbd\x07\xfc\xe1\xb6\xa2\xd3\xde\x7e\xb1\x9f\xf7\x77\x75\x2a\x87\xd3\xff\x68\x05\x56\x14\x35\xff\x02\x00\x00\xff\xff\x87\x31\x14\x45\x39\x03\x00\x00") func configDefaultKustomizationYamlBytes() ([]byte, error) { return bindataRead( @@ -382,7 +382,7 @@ func configDefaultManager_webhook_patchYaml() (*asset, error) { return a, nil } -var _configManagerConfigmapYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x91\x41\x6f\xdb\x20\x18\x86\xef\xfc\x8a\x4f\xb9\xe3\xd8\xdb\xa4\x45\xdc\x88\xcd\x12\x6b\x04\x2a\x6a\x65\xea\x09\x91\xf4\xab\x67\x39\xc6\x96\x21\xae\xfa\xef\x27\xb4\x75\x6a\x37\x45\xea\x09\x04\xcf\xc3\xf7\x8a\x97\x52\x4a\xdc\xd4\x1d\x71\x0e\xdd\xe8\x19\x2c\x05\x79\x74\xd1\x31\x02\xc0\x77\x42\x35\xf6\xc0\x15\xdf\x09\x63\xb7\xb5\xaa\x2c\xaf\x2a\xc3\x80\x15\x9b\xbc\xc8\x13\xa1\xb8\x7c\x68\xea\xf2\xde\x0a\xc5\xb7\x52\x54\x0c\x56\x71\xbe\xe2\x8a\x00\xfc\x3e\xb1\x52\xf0\x4a\x18\x2b\xa4\x28\x9b\x5a\x2b\x06\xab\x27\x77\x09\x7f\x88\xa3\x7e\xb0\xa5\x56\x8d\xd1\xd2\xde\x49\xae\xc4\xbf\x53\xf2\x34\x65\x2f\xb8\x6c\xf6\xf6\xce\xe8\xed\x7b\x60\x93\x6f\x0a\x02\x20\xf5\xce\x4a\x71\x14\x92\x41\xad\xbe\x69\x02\x70\x10\x8d\x49\xa9\xde\xc0\xc5\xa7\xaf\x59\x9e\xe5\x59\x91\xac\xf4\xea\x0f\xb1\xdd\x6b\xfd\xdd\x96\xc2\x34\xf7\xb6\xaa\x0d\x83\x75\x1c\xa6\x75\xbf\x09\xf4\x19\x4f\x3f\xc7\xb1\xa7\x01\xe7\x05\xe7\x75\x5a\x3a\xdf\xd2\x33\xce\x31\x90\xbe\xf3\x8f\x0c\xca\xd1\x3f\x75\xed\xc1\x4d\x64\xc0\xe8\x5e\xbf\xec\xe2\x4e\x78\x09\x69\x07\xe0\xa6\x29\xeb\xaf\x27\x9c\x3d\x46\x0c\x59\x37\xae\xcf\xe3\x30\x8d\x1e\x7d\x64\xd0\x5f\x43\x4f\x5b\x17\xf1\xd9\xbd\xd0\xc1\x79\xd7\xe2\x7c\xc3\xea\x7c\x88\xce\x9f\xf1\xbd\x74\x03\xf6\x6e\xf8\x18\xb8\xbc\x16\xbe\x5a\x8a\xec\x73\xf6\x25\x15\xf2\xbf\xfc\x26\x5a\xba\x0c\x93\xfb\x9b\x23\xbc\x84\x88\x03\xf9\x15\x00\x00\xff\xff\x64\x5c\x2d\x11\x40\x02\x00\x00") +var _configManagerConfigmapYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x91\x41\x6f\xdb\x20\x18\x86\xef\xfc\x8a\x4f\xb9\xe3\xd8\xd9\x61\x11\x37\x62\xb3\xc4\x1a\x81\x8a\x5a\x99\x7a\x42\x24\xfd\xea\x59\x8e\xb1\x65\x88\xab\xfe\xfb\x09\x6d\x9d\xda\x4d\x95\x7a\x02\xc1\xf3\xf0\xbd\xe2\xa5\x94\x12\x37\x75\x27\x9c\x43\x37\x7a\x06\x4b\x41\x1e\x5d\x74\x8c\x00\xf0\xbd\x50\x8d\x3d\x72\xc5\xf7\xc2\xd8\x5d\xad\x2a\xcb\xab\xca\x30\x60\xc5\x36\x2f\xf2\x44\x28\x2e\x1f\x9a\xba\xbc\xb7\x42\xf1\x9d\x14\x15\x83\x55\x9c\x6f\xb8\x22\x00\xbf\x4f\xac\x14\xbc\x12\xc6\x0a\x29\xca\xa6\xd6\x8a\xc1\xea\xc9\x5d\xc3\x1f\xe2\xa4\x1f\x6c\xa9\x55\x63\xb4\xb4\x77\x92\x2b\xf1\xef\x94\x3c\x4d\x39\x08\x2e\x9b\x83\xbd\x33\x7a\xf7\x1e\xd8\xe6\xdb\x82\x00\x48\xbd\xb7\x52\x9c\x84\x64\x50\xab\x6f\x9a\x00\x1c\x45\x63\x52\xaa\x37\x70\xb1\xf9\x9a\xe5\x59\x9e\x15\xc9\x4a\xaf\xfe\x10\xbb\x83\xd6\xdf\x6d\x29\x4c\x73\x6f\xab\xda\x30\x58\xc7\x61\x5a\xf7\xdb\x40\x9f\xf1\xfc\x73\x1c\x7b\x1a\x70\x5e\x70\x5e\xa7\xa5\xf3\x2d\xbd\xe0\x1c\x03\xe9\x3b\xff\xc8\xa0\x1c\xfd\x53\xd7\x1e\xdd\x44\x06\x8c\xee\xf5\xcb\xae\xee\x8c\xd7\x90\x76\x00\x6e\x9a\xb2\xfe\x76\xc6\xd9\x63\xc4\x90\x75\xe3\xfa\x32\x0e\xd3\xe8\xd1\x47\x06\xfd\x2d\xf4\xb4\x75\x11\x9f\xdd\x0b\x1d\x9c\x77\x2d\xce\x1f\x58\x9d\x0f\xd1\xf9\x0b\xbe\x97\x3e\x80\xbd\x1b\x3e\x07\x2e\xaf\x85\xaf\x96\x22\xfb\x92\x6d\x36\xa9\x91\xff\xed\x37\xd9\xd2\x65\x98\xdc\xdf\x20\xe1\x25\x44\x1c\xc8\xaf\x00\x00\x00\xff\xff\xb1\x69\x78\x70\x41\x02\x00\x00") func configManagerConfigmapYamlBytes() ([]byte, error) { return bindataRead( @@ -397,7 +397,7 @@ func configManagerConfigmapYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "config/manager/configmap.yaml", size: 576, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + info := bindataFileInfo{name: "config/manager/configmap.yaml", size: 577, mode: os.FileMode(420), modTime: time.Unix(1, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1125,11 +1125,13 @@ var _bindata = map[string]func() (*asset, error){ // directory embedded in the file by go-bindata. // For example if you run go-bindata on data/... and data contains the // following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png +// +// data/ +// foo.txt +// img/ +// a.png +// b.png +// // then AssetDir("data") would return []string{"foo.txt", "img"} // AssetDir("data/img") would return []string{"a.png", "b.png"} // AssetDir("foo.txt") and AssetDir("notexist") would return an error diff --git a/config/crd/bases/gateway.kusk.io_staticroutes.yaml b/config/crd/bases/gateway.kusk.io_staticroutes.yaml index 7386faf13..ac761d843 100644 --- a/config/crd/bases/gateway.kusk.io_staticroutes.yaml +++ b/config/crd/bases/gateway.kusk.io_staticroutes.yaml @@ -46,6 +46,9 @@ spec: hostname: description: REQUIRED. type: string + path: + description: OPTIONAL. + type: string port: description: REQUIRED. format: int32 @@ -64,6 +67,9 @@ spec: hostname: description: REQUIRED. type: string + path: + description: OPTIONAL. + type: string port: description: REQUIRED. format: int32 diff --git a/config/default/kustomization.yaml b/config/default/kustomization.yaml index 3710440bf..79d1c7c75 100644 --- a/config/default/kustomization.yaml +++ b/config/default/kustomization.yaml @@ -28,7 +28,7 @@ patchesStrategicMerge: images: - name: kusk-gateway newName: kubeshop/kusk-gateway - newTag: v1.3.20 + newTag: v1.3.21 - name: kusk-gateway:dev newName: kubeshop/kusk-gateway newTag: latest diff --git a/config/manager/configmap.yaml b/config/manager/configmap.yaml index 7349a5f27..bbe2ea6f0 100644 --- a/config/manager/configmap.yaml +++ b/config/manager/configmap.yaml @@ -15,6 +15,6 @@ metadata: app.kubernetes.io/component: kusk-gateway-manager app.kubernetes.io/instance: kusk-gateway app.kubernetes.io/name: kusk-gateway - app.kubernetes.io/version: "v1.3.4" + app.kubernetes.io/version: "v1.3.21" name: kusk-gateway-manager namespace: kusk-system diff --git a/examples/auth/oauth2/static-route/manifests.yaml b/examples/auth/oauth2/static-route/manifests.yaml index 5fe5cd752..0cc10d739 100644 --- a/examples/auth/oauth2/static-route/manifests.yaml +++ b/examples/auth/oauth2/static-route/manifests.yaml @@ -57,7 +57,7 @@ spec: - name: HTTP_HEADERS value: 'Content-Type: "application/json"' - name: HTTP_BODY - value: '{ "kusk-gateway-manager": "v1.3.18" }' + value: '{ "kusk-gateway-manager": "v1.3.21" }' --- apiVersion: v1 kind: Service diff --git a/internal/envoy/auth/ext_authz_filter.go b/internal/envoy/auth/ext_authz_filter.go index df5cd9752..3bfbe7441 100644 --- a/internal/envoy/auth/ext_authz_filter.go +++ b/internal/envoy/auth/ext_authz_filter.go @@ -32,14 +32,17 @@ import ( envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" "google.golang.org/protobuf/types/known/anypb" - "google.golang.org/protobuf/types/known/durationpb" ) -func NewFilterHTTPExternalAuthorization(upstreamHostname string, upstreamPort uint32, clusterName string, pathPrefix string, authHeaders []*envoy_config_core_v3.HeaderValue) (*anypb.Any, error) { +func NewFilterHTTPExternalAuthorization(upstreamHostname string, upstreamPort uint32, clusterName string, pathPrefix string, authHeaders []*envoy_config_core_v3.HeaderValue, path *string) (*anypb.Any, error) { // https://github.com/envoyproxy/envoy/tree/main/examples/ext_authz // https://github.com/envoyproxy/envoy/blob/main/docs/root/configuration/http/http_filters/ext_authz_filter.rst // https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/ext_authz_filter#config-http-filters-ext-authz uri := fmt.Sprintf("%s:%d", upstreamHostname, upstreamPort) + // Append `path` to `uri` + if path != nil { + uri += "/" + *path + } httpUpstreamType := &envoy_config_core_v3.HttpUri_Cluster{ Cluster: clusterName, @@ -48,9 +51,7 @@ func NewFilterHTTPExternalAuthorization(upstreamHostname string, upstreamPort ui serverUri := &envoy_config_core_v3.HttpUri{ Uri: uri, HttpUpstreamType: httpUpstreamType, - Timeout: &durationpb.Duration{ - Seconds: 60, - }, + Timeout: timeoutDefault(), } authorizationResponse := &envoy_extensions_filter_http_ext_authz_v3.AuthorizationResponse{ AllowedUpstreamHeaders: &envoy_type_matcher_v3.ListStringMatcher{ @@ -106,7 +107,7 @@ func NewFilterHTTPExternalAuthorization(upstreamHostname string, upstreamPort ui } anyAuthorization, err := anypb.New(authorization) if err != nil { - return nil, fmt.Errorf("auth.NewFilterHTTPExternalAuthorization: cannot marshal authorization=%+v configuration: %w", authorization, err) + return nil, fmt.Errorf("auth.NewFilterHTTPExternalAuthorization: cannot marshal configuration authorization=%+v: %w", authorization, err) } return anyAuthorization, nil diff --git a/internal/envoy/auth/ext_authz_parser.go b/internal/envoy/auth/ext_authz_parser.go index b5fc684e6..3e9798a27 100644 --- a/internal/envoy/auth/ext_authz_parser.go +++ b/internal/envoy/auth/ext_authz_parser.go @@ -33,7 +33,7 @@ import ( "github.com/kubeshop/kusk-gateway/pkg/options" ) -func ParseAuthUpstreamOptions(pathPrefix string, host options.AuthUpstreamHost, args *ParseAuthArguments, scheme string) error { +func ParseAuthUpstreamOptions(pathPrefix string, host options.AuthUpstreamHost, args *ParseAuthArguments, scheme string, path *string) error { upstreamServiceHost := host.Hostname upstreamServicePort := host.Port @@ -77,6 +77,7 @@ func ParseAuthUpstreamOptions(pathPrefix string, host options.AuthUpstreamHost, clusterName, pathPrefix, authHeaders, + path, ) if err != nil { return err diff --git a/internal/envoy/auth/filters.go b/internal/envoy/auth/filters.go index 17abc7820..11d84ec90 100644 --- a/internal/envoy/auth/filters.go +++ b/internal/envoy/auth/filters.go @@ -23,6 +23,8 @@ package auth import ( + "time" + envoy_config_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" "google.golang.org/protobuf/types/known/durationpb" ) @@ -33,10 +35,8 @@ const ( ) func timeoutDefault() *durationpb.Duration { - return &durationpb.Duration{ - Seconds: 16, - } + return durationpb.New(time.Second * 32) // Intentionally kept the code below commented out to serve as future documentation. - // // Envoy will wait indefinitely for the first xDS config. + // // Envoy will wait indefinitely. // return durationpb.New(time.Second * 0) } diff --git a/internal/envoy/auth/parser.go b/internal/envoy/auth/parser.go index a85e712b0..ce622bb69 100644 --- a/internal/envoy/auth/parser.go +++ b/internal/envoy/auth/parser.go @@ -75,7 +75,7 @@ func ParseAuthOptions(auth *options.AuthOptions, args *ParseAuthArguments) error if custom.PathPrefix != nil { pathPrefix = *custom.PathPrefix } - err := ParseAuthUpstreamOptions(pathPrefix, custom.Host, args, scheme) + err := ParseAuthUpstreamOptions(pathPrefix, custom.Host, args, scheme, custom.Host.Path) if err != nil { return err } @@ -85,7 +85,7 @@ func ParseAuthOptions(auth *options.AuthOptions, args *ParseAuthArguments) error if cloudentity.PathPrefix != nil { pathPrefix = *custom.PathPrefix } - err := ParseAuthUpstreamOptions(pathPrefix, cloudentity.Host, args, scheme) + err := ParseAuthUpstreamOptions(pathPrefix, cloudentity.Host, args, scheme, custom.Host.Path) if err != nil { return err } diff --git a/pkg/options/auth.go b/pkg/options/auth.go index 1b6301596..33dfe6247 100644 --- a/pkg/options/auth.go +++ b/pkg/options/auth.go @@ -76,6 +76,8 @@ type AuthUpstreamHost struct { Hostname string `json:"hostname,omitempty" yaml:"hostname,omitempty"` // REQUIRED. Port uint32 `json:"port,omitempty" yaml:"port,omitempty"` + // OPTIONAL. + Path *string `json:"path,omitempty" yaml:"path,omitempty"` } func (o AuthUpstreamHost) Validate() error { @@ -223,6 +225,11 @@ func (o Custom) String() string { } func (o Custom) Validate() error { + // If both are specified, the error. + if o.PathPrefix != nil && o.Host.Path != nil { + return fmt.Errorf("`custom` cannot have both `path_prefix` and `host.path` specified") + } + return validation.ValidateStruct(&o, validation.Field(&o.Host, validation.Required), ) diff --git a/pkg/options/zz_generated.deepcopy.go b/pkg/options/zz_generated.deepcopy.go index 1607c5f38..d47f6f812 100644 --- a/pkg/options/zz_generated.deepcopy.go +++ b/pkg/options/zz_generated.deepcopy.go @@ -64,6 +64,11 @@ func (in *AuthOptions) DeepCopy() *AuthOptions { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AuthUpstreamHost) DeepCopyInto(out *AuthUpstreamHost) { *out = *in + if in.Path != nil { + in, out := &in.Path, &out.Path + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthUpstreamHost. @@ -94,7 +99,7 @@ func (in *ClientSecretRef) DeepCopy() *ClientSecretRef { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Cloudentity) DeepCopyInto(out *Cloudentity) { *out = *in - out.Host = in.Host + in.Host.DeepCopyInto(&out.Host) if in.PathPrefix != nil { in, out := &in.PathPrefix, &out.PathPrefix *out = new(string) @@ -156,7 +161,7 @@ func (in *Credentials) DeepCopy() *Credentials { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Custom) DeepCopyInto(out *Custom) { *out = *in - out.Host = in.Host + in.Host.DeepCopyInto(&out.Host) if in.PathPrefix != nil { in, out := &in.PathPrefix, &out.PathPrefix *out = new(string)