Closed cynial closed 4 years ago
cookie本质上还是header,一种比较通用的解法是支持按优先级从多个header里提取环境标,同时在CRD增加一个可选的内容提取参数,配置出提取内容的正则表达式。 支持多个header会是个不兼容的格式改动,放到v0.3之后吧,预计在v0.4版本实现。
v0.3近期应该会发布了,目前还差一个EnvoyFilter兼容的问题尚未修复
这个解法确实更通用。我还遇到另外一个问题,我另外起一个 issue 描述
v0.3.1
版本已支持多Header配置
赞,多 Header 是怎样配置的呢?
@linfan 奇怪,alias.pattern 并没有用到,只用到了 alias.name?
../blob/master/pkg/component/router/istio/http/virtual_service_generator.go#L119
使用多个 header 的能力,生成的 vs 规则有点冗余,单从 vs 规则上来看,如果能合并是不是更好,比如:
spec:
hosts:
- app-js
http:
- match:
- headers:
X-Virtual-Env:
exact: dev.proj1
route:
- destination:
host: app-js
port:
number: 8080
subset: dev-proj1
weight: 100
- match:
- headers:
cookie:
exact: dev.proj1
route:
- destination:
host: app-js
port:
number: 8080
subset: dev-proj1
weight: 100
spec:
hosts:
- app-js
http:
- match:
- headers:
X-Virtual-Env:
exact: dev.proj1
- headers:
cookie:
exact: dev.proj1
route:
- destination:
host: app-js
port:
number: 8080
subset: dev-proj1
weight: 100
fixed in v0.3.2 文档:https://alibaba.github.io/virtual-environment/#/zh-cn/doc/configuration
使用第三方 OAuth,OAuth 会执行回调 URL,此时回调的 URL 是 OAuth 发出的,不受我们控制,无法带上自定义 header 环境标识,这种场景应如何对流量进行染色?
想到的一个方案是使用 Cookie,不知道还有没有更好的方案?