func()

in Kubernetes/wincni/cni/cni.go [209:242]


func (config *NetworkConfig) GetEndpointInfo(
	networkinfo *network.NetworkInfo,
	containerID string, netNs string, podK8sNamespace string) *network.EndpointInfo {
	containerIDToUse := containerID
	if netNs != "" {
		splits := strings.Split(netNs, ":")
		if len(splits) == 2 {
			containerIDToUse = splits[1]
		}
	}
	epInfo := &network.EndpointInfo{
		Name:        containerIDToUse + "_" + networkinfo.ID,
		NetworkID:   networkinfo.ID,
		ContainerID: containerID,
	}

	epInfo.DNS = network.DNSInfo{
		Servers: networkinfo.DNS.Servers,
		Suffix:  podK8sNamespace + "." + networkinfo.DNS.Suffix,
	}

	epInfo.Subnet = networkinfo.Subnets[0].AddressPrefix
	epInfo.Gateway = networkinfo.Subnets[0].GatewayAddress

	runtimeConf := config.RuntimeConfig
	logrus.Debugf("Parsing port mappings from %+v", runtimeConf.PortMappings)
	for _, mapping := range runtimeConf.PortMappings {
		natPolicy := network.GetHNSNatPolicy(mapping.HostPort, mapping.ContainerPort, mapping.Protocol)
		logrus.Debugf("Created raw policy from mapping: %+v --- %+v", mapping, natPolicy)
		epInfo.Policies = append(epInfo.Policies, natPolicy)
	}

	return epInfo
}