pkg/inject/cni_proxy.go (28 lines of code) (raw):
package inject
import (
"fmt"
"github.com/aws/aws-app-mesh-controller-for-k8s/pkg/algorithm"
corev1 "k8s.io/api/core/v1"
)
// newCNIProxyMutator constructs new cniProxyMutator
func newCNIProxyMutator(proxyConfig proxyConfig) *cniProxyMutator {
return &cniProxyMutator{
proxyConfig: proxyConfig,
}
}
// proxy mutator based on AppMeshCNI
type cniProxyMutator struct {
proxyConfig proxyConfig
}
func (m *cniProxyMutator) mutate(pod *corev1.Pod) error {
cniAnnotations := map[string]string{
AppMeshPortsAnnotation: m.proxyConfig.appPorts,
AppMeshEgressIgnoredIPsAnnotation: m.proxyConfig.egressIgnoredIPs,
AppMeshEgressIgnoredPortsAnnotation: m.proxyConfig.egressIgnoredPorts,
AppMeshProxyEgressPortAnnotation: fmt.Sprintf("%d", m.proxyConfig.proxyEgressPort),
AppMeshProxyIngressPortAnnotation: fmt.Sprintf("%d", m.proxyConfig.proxyIngressPort),
AppMeshIgnoredUIDAnnotation: fmt.Sprintf("%d", m.proxyConfig.proxyUID),
AppMeshSidecarInjectAnnotation: "enabled",
}
annotations := algorithm.MergeStringMap(cniAnnotations, pod.GetAnnotations())
pod.SetAnnotations(annotations)
return nil
}