in agent/envoy_bootstrap/envoy_bootstrap.go [1437:1538]
func bootstrap(agentConfig config.AgentConfig, fileUtil FileUtil, envoyCLIInst EnvoyCLI) (*boot.Bootstrap, error) {
// Generate new config
id, err := getNodeId()
if err != nil {
return nil, err
}
clusterId := getNodeCluster(id)
admin, err := buildAdmin(agentConfig)
if err != nil {
return nil, err
}
var dr *boot.Bootstrap_DynamicResources
if agentConfig.XdsEndpointUdsPath != "" {
dr, err = buildDynamicResourcesForRelayEndpoint(agentConfig.XdsEndpointUdsPath)
if err != nil {
return nil, err
}
} else {
region, err := getRegion()
if err != nil {
return nil, err
}
xdsEndpoint, err := getRegionalXdsEndpoint(region, envoyCLIInst)
if err != nil || xdsEndpoint == nil {
return nil, err
}
signingName, err := getSigningName()
if err != nil {
return nil, err
}
dr, err = buildRegionalDynamicResources(*xdsEndpoint, region, signingName)
if err != nil {
return nil, err
}
}
lr, err := buildLayeredRuntime()
if err != nil {
return nil, err
}
metadata, err := buildMetadataForNode()
if err != nil {
return nil, err
}
b := &boot.Bootstrap{
Admin: admin,
Node: buildNode(id, clusterId, metadata),
LayeredRuntime: lr,
DynamicResources: dr,
ClusterManager: buildClusterManager(),
}
// Tracing
if v := env.Get("ENVOY_TRACING_CFG_FILE"); v == "" {
if err := appendTracing(b, id, clusterId, fileUtil); err != nil {
return nil, err
}
}
// Unix Domain Socket for SDS Based TLS
if v := env.Get("APPMESH_SDS_SOCKET_PATH"); v != "" {
log.Info("APPMESH_SDS_SOCKET_PATH is defined, generating static sds cluster.")
if err := appendSdsSocketCluster(b, v); err != nil {
return nil, err
}
}
// Stats
if env.Get("ENVOY_STATS_CONFIG_FILE") == "" {
if err := appendStats(b, id); err != nil {
return nil, err
}
}
// Stats Flush Interval
if v := env.Get("ENVOY_STATS_FLUSH_INTERVAL"); v != "" {
if err := appendStatsFlushInterval(b, v); err != nil {
return nil, err
}
}
// Stats Sinks
enableDogStatsd, err := env.Truthy("ENABLE_ENVOY_DOG_STATSD")
if err != nil {
return nil, err
}
if v := env.Get("ENVOY_STATS_SINKS_CFG_FILE"); v == "" && enableDogStatsd {
if err := appendDogStatsDSinks(b); err != nil {
return nil, err
}
}
return b, nil
}