0a0534a094
Replaces the reflection-based implementation of proxycfg's ConfigSnapshot.Clone with code generated by deep-copy. While load testing server-based xDS (for consul-dataplane) we discovered this method is extremely expensive. The ConfigSnapshot struct, directly or indirectly, contains a copy of many of the structs in the agent/structs package, which creates a large graph for copystructure.Copy to traverse at runtime, on every proxy reconfiguration.
49 lines
1.2 KiB
Bash
Executable file
49 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
readonly PACKAGE_DIR="$(dirname "${BASH_SOURCE[0]}")"
|
|
cd $PACKAGE_DIR
|
|
|
|
# Uses: https://github.com/globusdigital/deep-copy
|
|
deep-copy \
|
|
-pointer-receiver \
|
|
-o ./structs.deepcopy.go \
|
|
-type CARoot \
|
|
-type CheckServiceNode \
|
|
-type CheckType \
|
|
-type CompiledDiscoveryChain \
|
|
-type ConnectProxyConfig \
|
|
-type DiscoveryFailover \
|
|
-type DiscoveryGraphNode \
|
|
-type DiscoveryResolver \
|
|
-type DiscoveryRoute \
|
|
-type DiscoverySplit \
|
|
-type ExposeConfig \
|
|
-type GatewayService \
|
|
-type GatewayServiceTLSConfig \
|
|
-type HTTPHeaderModifiers \
|
|
-type HashPolicy \
|
|
-type HealthCheck \
|
|
-type IndexedCARoots \
|
|
-type IngressListener \
|
|
-type Intention \
|
|
-type IntentionPermission \
|
|
-type LoadBalancer \
|
|
-type MeshConfigEntry \
|
|
-type MeshDirectionalTLSConfig \
|
|
-type MeshTLSConfig \
|
|
-type Node \
|
|
-type NodeService \
|
|
-type PeeringServiceMeta \
|
|
-type ServiceConfigEntry \
|
|
-type ServiceConfigResponse \
|
|
-type ServiceConnect \
|
|
-type ServiceDefinition \
|
|
-type ServiceResolverConfigEntry \
|
|
-type ServiceResolverFailover \
|
|
-type ServiceRoute \
|
|
-type ServiceRouteDestination \
|
|
-type ServiceRouteMatch \
|
|
-type Upstream \
|
|
-type UpstreamConfiguration \
|
|
./
|