-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Header重写 #55
Comments
Header重写需求需求简介BFE 支持对流量的Header重写,通过添加、删除制定header定义修改覆盖的流量范围,通过修改指定header定位修改header的行为。 将租户的配置文件通过annotations解析后转换为BFE引擎的相关配置文件,再经BFE引擎热加载实现流量的Header重写。 同类汇总
需求分析在mod_header中,提供对请求和响应增加其他信息的能力,对流量的Header重写只需关注定位修改Header的行为。 可以对每个租户提供包含cond、Actions、Last的配置表来让租户自定义需要透传的信息。
Annotation设计
设计方案主要任务将Ingress配置文件翻译成BFE Engine的配置文件中的 Ingress配置根据Ingress涉及的两个方面展开:
实现方案租户给出的Ingress配置:apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: simple-ingress
namespace: ingress-bfe
annotations:
kubernetes.io/ingress.class: bfe
bfe.ingress.kubernetes.io/router.cookie: "Session: 123"
bfe.ingress.kubernetes.io/router.header: "Content-Language: zh-cn"
bfe.ingress.kubernetes.io/rewrite-header.actions: '[{"cmd": "REQ_HEADER_SET", "params": ["X-Bfe-Log-Id", "%bfe_log_id"]}]'
bfe.ingress.kubernetes.io/rewrite-header.actions: '[{"cmd": "REQ_HEADER_SET", "params": ["X-Bfe-Vip", "%bfe_vip"]}]'
bfe.ingress.kubernetes.io/rewrite-header.actions: '[{"cmd": "RSP_HEADER_SET", "params": ["X-Proxied-By", "bfe"]}]'
spec:
rules:
- host: whoami.com
http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: whoami
port:
number: 80 Ingress配置文件中,共有四个字段。
Header重写配置
|
请确认Ingress的rewrite-header.actions有多个时,annotation是一行还是多行 |
@QingyanMu Rewrite 的 hook 点 是一个很可能需要扩展的配置点,设计的时候建议考虑兼容 |
背景
BFE 支持对流量进行Header重写,希望 bfe-ingress-controller 实现该功能。
配置方式
Ingress 资源内
参考格式:
重写请求 Header
通过设置 bfe.ingress.kubernetes.io/rewrite-header.actions ,配置请求 Header 修改规则。
支持:
添加
修改
删除
重写响应 Header
通过设置 bfe.ingress.kubernetes.io/rewrite-header.actions ,配置响应 Header 修改规则。
支持:
添加
修改
删除
The text was updated successfully, but these errors were encountered: