func()

in pkg/inject/inject.go [100:233]


func (m *SidecarInjector) injectAppMeshPatches(ms *appmesh.Mesh, vn *appmesh.VirtualNode, vg *appmesh.VirtualGateway, pod *corev1.Pod) error {
	// List out all the mutators in sequence
	var mutators []PodMutator

	if vn != nil {
		mutators = []PodMutator{
			newProxyMutator(proxyMutatorConfig{
				egressIgnoredIPs: m.config.IgnoredIPs,
				initProxyMutatorConfig: initProxyMutatorConfig{
					containerImage: m.config.InitImage,
					cpuRequests:    m.config.SidecarCpuRequests,
					memoryRequests: m.config.SidecarMemoryRequests,
					cpuLimits:      m.config.SidecarCpuLimits,
					memoryLimits:   m.config.SidecarMemoryLimits,
				},
			}, vn),
			newEnvoyMutator(envoyMutatorConfig{
				accountID:                  m.accountID,
				awsRegion:                  m.awsRegion,
				preview:                    m.config.Preview,
				enableSDS:                  m.config.EnableSDS,
				sdsUdsPath:                 m.config.SdsUdsPath,
				logLevel:                   m.config.LogLevel,
				adminAccessPort:            m.config.EnvoyAdminAcessPort,
				adminAccessLogFile:         m.config.EnvoyAdminAccessLogFile,
				preStopDelay:               m.config.PreStopDelay,
				readinessProbeInitialDelay: m.config.ReadinessProbeInitialDelay,
				readinessProbePeriod:       m.config.ReadinessProbePeriod,
				sidecarImageRepository:     m.config.SidecarImageRepository,
				sidecarImageTag:            m.config.SidecarImageTag,
				sidecarCPURequests:         m.config.SidecarCpuRequests,
				sidecarMemoryRequests:      m.config.SidecarMemoryRequests,
				sidecarCPULimits:           m.config.SidecarCpuLimits,
				sidecarMemoryLimits:        m.config.SidecarMemoryLimits,
				enableXrayTracing:          m.config.EnableXrayTracing,
				xrayDaemonPort:             m.config.XrayDaemonPort,
				xraySamplingRate:           m.config.XraySamplingRate,
				enableJaegerTracing:        m.config.EnableJaegerTracing,
				jaegerPort:                 m.config.JaegerPort,
				jaegerAddress:              m.config.JaegerAddress,
				enableDatadogTracing:       m.config.EnableDatadogTracing,
				datadogTracerPort:          m.config.DatadogPort,
				datadogTracerAddress:       m.config.DatadogAddress,
				enableStatsTags:            m.config.EnableStatsTags,
				enableStatsD:               m.config.EnableStatsD,
				statsDPort:                 m.config.StatsDPort,
				statsDAddress:              m.config.StatsDAddress,
				statsDSocketPath:           m.config.StatsDSocketPath,
				waitUntilProxyReady:        m.config.WaitUntilProxyReady,
				controllerVersion:          m.controllerVersion,
				k8sVersion:                 m.k8sVersion,
				useDualStackEndpoint:       m.config.DualStackEndpoint,
				enableAdminAccessIPv6:      m.config.EnvoyAdminAccessEnableIPv6,
				postStartTimeout:           m.config.PostStartTimeout,
				postStartInterval:          m.config.PostStartInterval,
				useFipsEndpoint:            m.config.FipsEndpoint,
				awsAccessKeyId:             m.config.EnvoyAwsAccessKeyId,
				awsSecretAccessKey:         m.config.EnvoyAwsSecretAccessKey,
				awsSessionToken:            m.config.EnvoyAwsSessionToken,
			}, ms, vn),
			newXrayMutator(xrayMutatorConfig{
				awsRegion:             m.awsRegion,
				sidecarCPURequests:    m.config.SidecarCpuRequests,
				sidecarMemoryRequests: m.config.SidecarMemoryRequests,
				sidecarCPULimits:      m.config.SidecarCpuLimits,
				sidecarMemoryLimits:   m.config.SidecarMemoryLimits,
				xRayImage:             m.config.XRayImage,
				xRayDaemonPort:        m.config.XrayDaemonPort,
				xRayLogLevel:          m.config.XrayLogLevel,
				xRayConfigRoleArn:     m.config.XrayConfigRoleArn,
			}, m.config.EnableXrayTracing),
			newCloudMapHealthyReadinessGate(vn),
			newIAMForServiceAccountsMutator(m.config.EnableIAMForServiceAccounts),
			newECRSecretMutator(m.config.EnableECRSecret),
		}
	} else if vg != nil {
		mutators = []PodMutator{newVirtualGatewayEnvoyConfig(virtualGatwayEnvoyConfig{
			accountID:                  m.accountID,
			awsRegion:                  m.awsRegion,
			preview:                    m.config.Preview,
			enableSDS:                  m.config.EnableSDS,
			sdsUdsPath:                 m.config.SdsUdsPath,
			logLevel:                   m.config.LogLevel,
			adminAccessPort:            m.config.EnvoyAdminAcessPort,
			adminAccessLogFile:         m.config.EnvoyAdminAccessLogFile,
			sidecarImageRepository:     m.config.SidecarImageRepository,
			sidecarImageTag:            m.config.SidecarImageTag,
			readinessProbeInitialDelay: m.config.ReadinessProbeInitialDelay,
			readinessProbePeriod:       m.config.ReadinessProbePeriod,
			enableXrayTracing:          m.config.EnableXrayTracing,
			xrayDaemonPort:             m.config.XrayDaemonPort,
			xraySamplingRate:           m.config.XraySamplingRate,
			enableJaegerTracing:        m.config.EnableJaegerTracing,
			jaegerPort:                 m.config.JaegerPort,
			jaegerAddress:              m.config.JaegerAddress,
			enableDatadogTracing:       m.config.EnableDatadogTracing,
			datadogTracerPort:          m.config.DatadogPort,
			datadogTracerAddress:       m.config.DatadogAddress,
			enableStatsTags:            m.config.EnableStatsTags,
			enableStatsD:               m.config.EnableStatsD,
			statsDPort:                 m.config.StatsDPort,
			statsDAddress:              m.config.StatsDAddress,
			statsDSocketPath:           m.config.StatsDSocketPath,
			controllerVersion:          m.controllerVersion,
			k8sVersion:                 m.k8sVersion,
			useDualStackEndpoint:       m.config.DualStackEndpoint,
			enableAdminAccessIPv6:      m.config.EnvoyAdminAccessEnableIPv6,
			useFipsEndpoint:            m.config.FipsEndpoint,
			awsAccessKeyId:             m.config.EnvoyAwsAccessKeyId,
			awsSecretAccessKey:         m.config.EnvoyAwsSecretAccessKey,
			awsSessionToken:            m.config.EnvoyAwsSessionToken,
		}, ms, vg),
			newXrayMutator(xrayMutatorConfig{
				awsRegion:             m.awsRegion,
				sidecarCPURequests:    m.config.SidecarCpuRequests,
				sidecarMemoryRequests: m.config.SidecarMemoryRequests,
				sidecarCPULimits:      m.config.SidecarCpuLimits,
				sidecarMemoryLimits:   m.config.SidecarMemoryLimits,
				xRayImage:             m.config.XRayImage,
				xRayDaemonPort:        m.config.XrayDaemonPort,
				xRayLogLevel:          m.config.XrayLogLevel,
				xRayConfigRoleArn:     m.config.XrayConfigRoleArn,
			}, m.config.EnableXrayTracing),
		}
	}

	for _, mutator := range mutators {
		err := mutator.mutate(pod)
		if err != nil {
			return err
		}
	}
	return nil
}