87 lines
1.6 KiB
Bash
87 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
upsert_config_entry primary '
|
|
kind = "proxy-defaults"
|
|
name = "global"
|
|
config {
|
|
protocol = "http"
|
|
}
|
|
'
|
|
|
|
upsert_config_entry primary '
|
|
kind = "ingress-gateway"
|
|
name = "ingress-gateway"
|
|
listeners = [
|
|
{
|
|
port = 9999
|
|
protocol = "http"
|
|
services = [
|
|
{
|
|
name = "router"
|
|
request_headers {
|
|
add {
|
|
x-foo = "bar-req"
|
|
x-existing-1 = "appended-req"
|
|
}
|
|
set {
|
|
x-existing-2 = "replaced-req"
|
|
x-client-ip = "%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%"
|
|
}
|
|
remove = ["x-bad-req"]
|
|
}
|
|
response_headers {
|
|
add {
|
|
x-foo = "bar-resp"
|
|
x-existing-1 = "appended-resp"
|
|
}
|
|
set {
|
|
x-existing-2 = "replaced-resp"
|
|
}
|
|
remove = ["x-bad-resp"]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
'
|
|
|
|
upsert_config_entry primary '
|
|
kind = "service-router"
|
|
// This is a "virtual" service name and will not have a backing
|
|
// service definition. It must match the name defined in the ingress
|
|
// configuration.
|
|
name = "router"
|
|
routes = [
|
|
{
|
|
match {
|
|
http {
|
|
path_prefix = "/s1/"
|
|
}
|
|
}
|
|
destination {
|
|
service = "s1"
|
|
prefix_rewrite = "/"
|
|
}
|
|
},
|
|
{
|
|
match {
|
|
http {
|
|
path_prefix = "/s2/"
|
|
}
|
|
}
|
|
destination {
|
|
service = "s2"
|
|
prefix_rewrite = "/"
|
|
}
|
|
}
|
|
]
|
|
'
|
|
|
|
register_services primary
|
|
|
|
gen_envoy_bootstrap ingress-gateway 20000 primary true
|
|
gen_envoy_bootstrap s1 19000
|
|
gen_envoy_bootstrap s2 19001
|