in gke-windows-builder/builder/builder/network.go [109:128]
func winRMIngressIsAllowed(service *compute.Service, networkProject string, networkUrl string) bool {
firewalls, err := service.Firewalls.List(networkProject).Do()
if err != nil {
log.Printf("firewall list failed: %+v", err)
return false
}
for _, rule := range firewalls.Items {
for _, allowed := range rule.Allowed {
if rule.Network == networkUrl && rule.Direction == "INGRESS" && allowed.IPProtocol == "tcp" && len(rule.SourceRanges) > 0 && rule.SourceRanges[0] == "0.0.0.0/0" && !rule.Disabled {
for _, port := range allowed.Ports {
if port == "5986" {
log.Printf("found an INGRESS firewall rule for tcp:5986 in project %s", networkProject)
return true
}
}
}
}
}
return false
}