feat: modify
This commit is contained in:
@@ -85,9 +85,31 @@ var (
|
|||||||
|
|
||||||
m := o.UnstructuredContent()
|
m := o.UnstructuredContent()
|
||||||
|
|
||||||
|
spec := m["spec"].(map[string]interface{})
|
||||||
|
resources := spec["resources"].([]interface{})
|
||||||
|
|
||||||
|
for _, res := range resources {
|
||||||
|
res := res.(map[string]interface{})
|
||||||
|
if res["@type"] == "type.googleapis.com/envoy.config.listener.v3.Listener" {
|
||||||
|
filterChains := res["filterChains"].(map[string]interface{})
|
||||||
|
filters := filterChains["filters"].([]interface{})
|
||||||
|
for _, filter := range filters {
|
||||||
|
filter := filter.(map[string]interface{})
|
||||||
|
if filter["name"] == "envoy.filters.network.http_connection_manager" {
|
||||||
|
upgradeConfigs := filter["upgradeConfigs"].([]interface{})
|
||||||
|
upgradeConfigs = append(upgradeConfigs, map[string]interface{}{
|
||||||
|
"upgradeType": "websoctailscale-control-protocolket",
|
||||||
|
})
|
||||||
|
filter["upgradeConfigs"] = upgradeConfigs
|
||||||
|
filter["useRemoteAddress"] = true
|
||||||
|
filter["xffNumTrustedHops"] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
o.SetUnstructuredContent(m)
|
o.SetUnstructuredContent(m)
|
||||||
|
|
||||||
logger.Info("mutating webhook called", zap.Any("object", m))
|
|
||||||
return &kwhmutating.MutatorResult{MutatedObject: obj}, nil
|
return &kwhmutating.MutatorResult{MutatedObject: obj}, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user