in grpc-xds/control-plane-go/pkg/xds/lds/http_connection_manager.go [102:143]
func createHTTPConnectionManagerForAPIListener(routeConfigurationName string, statPrefix string) (*http_connection_managerv3.HttpConnectionManager, error) {
httpFaultFilterConfig, err := anypb.New(&faultv3.HTTPFault{})
if err != nil {
return nil, fmt.Errorf("could not marshall HTTPFault HTTP filter into Any instance: %w", err)
}
routerFilterConfig, err := anypb.New(&routerv3.Router{})
if err != nil {
return nil, fmt.Errorf("could not marshall Router HTTP filter into Any instance: %w", err)
}
httpConnectionManager := http_connection_managerv3.HttpConnectionManager{
CodecType: http_connection_managerv3.HttpConnectionManager_AUTO,
StatPrefix: statPrefix,
HttpFilters: []*http_connection_managerv3.HttpFilter{
{
// Enable client-side fault injection.
Name: envoyFilterHTTPFaultName,
ConfigType: &http_connection_managerv3.HttpFilter_TypedConfig{
TypedConfig: httpFaultFilterConfig,
},
},
{
// Router must be the last HTTP filter.
Name: envoyFilterHTTPRouterName,
ConfigType: &http_connection_managerv3.HttpFilter_TypedConfig{
TypedConfig: routerFilterConfig,
},
},
},
RouteSpecifier: &http_connection_managerv3.HttpConnectionManager_Rds{
Rds: &http_connection_managerv3.Rds{
ConfigSource: &corev3.ConfigSource{
ConfigSourceSpecifier: &corev3.ConfigSource_Ads{
Ads: &corev3.AggregatedConfigSource{},
},
ResourceApiVersion: corev3.ApiVersion_V3,
},
RouteConfigName: routeConfigurationName,
},
},
}
return &httpConnectionManager, nil
}