func()

in Kubernetes/wincni/cni/cni.go [170:206]


func (config *NetworkConfig) GetNetworkInfo() *network.NetworkInfo {
	var subnet = network.SubnetInfo{}
	if config.Ipam.Subnet != "" {
		ip, s, _ := net.ParseCIDR(config.Ipam.Subnet)
		gatewayIP := ip.To4()
		gatewayIP[3]++
		if config.Ipam.Routes != nil && len(config.Ipam.Routes) > 0 && config.Ipam.Routes[0].GW != nil {
			gatewayIP = config.Ipam.Routes[0].GW
		}
		subnet = network.SubnetInfo{
			AddressPrefix:  *s,
			GatewayAddress: gatewayIP,
		}
	}

	ninfo := &network.NetworkInfo{
		ID:            config.Name,
		Name:          config.Name,
		Type:          network.NetworkType(config.Name),
		Subnets:       []network.SubnetInfo{subnet},
		InterfaceName: "",
		DNS: network.DNSInfo{
			Servers: config.DNS.Nameservers,
			Suffix:  strings.Join(config.DNS.Search, ","),
		},
	}
	if config.AdditionalArgs != nil {
		for _, kvp := range config.AdditionalArgs {
			if strings.Contains(kvp.Name, "Policy") {
				npolicy := network.Policy{Type: network.CNIPolicyType(kvp.Name), Data: kvp.Value}
				ninfo.Policies = append(ninfo.Policies, npolicy)
			}
		}
	}

	return ninfo
}