Firewall updates only on port change
This commit is contained in:
parent
5db8389fb3
commit
58d5638888
1 changed files with 17 additions and 1 deletions
|
@ -18,10 +18,12 @@ package firewalls
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"k8s.io/contrib/ingress/controllers/gce/utils"
|
"k8s.io/contrib/ingress/controllers/gce/utils"
|
||||||
netset "k8s.io/kubernetes/pkg/util/net/sets"
|
netset "k8s.io/kubernetes/pkg/util/net/sets"
|
||||||
|
"k8s.io/kubernetes/pkg/util/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Src range from which the GCE L7 performs health checks.
|
// Src range from which the GCE L7 performs health checks.
|
||||||
|
@ -60,7 +62,21 @@ func (fr *FirewallRules) Sync(nodePorts []int64, nodeNames []string) error {
|
||||||
glog.Infof("Creating global l7 firewall rule %v", name)
|
glog.Infof("Creating global l7 firewall rule %v", name)
|
||||||
return fr.cloud.CreateFirewall(suffix, "GCE L7 firewall rule", fr.srcRange, nodePorts, nodeNames)
|
return fr.cloud.CreateFirewall(suffix, "GCE L7 firewall rule", fr.srcRange, nodePorts, nodeNames)
|
||||||
}
|
}
|
||||||
glog.V(3).Infof("Firewall rule already %v exists, verifying for nodeports %v", name, nodePorts)
|
|
||||||
|
requiredPorts := sets.NewString()
|
||||||
|
for _, p := range nodePorts {
|
||||||
|
requiredPorts.Insert(strconv.Itoa(int(p)))
|
||||||
|
}
|
||||||
|
existingPorts := sets.NewString()
|
||||||
|
for _, allowed := range rule.Allowed {
|
||||||
|
for _, p := range allowed.Ports {
|
||||||
|
existingPorts.Insert(p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if requiredPorts.Equal(existingPorts) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
glog.V(3).Infof("Firewall rule already %v exists, updating nodeports %v", name, nodePorts)
|
||||||
return fr.cloud.UpdateFirewall(suffix, "GCE L7 firewall rule", fr.srcRange, nodePorts, nodeNames)
|
return fr.cloud.UpdateFirewall(suffix, "GCE L7 firewall rule", fr.srcRange, nodePorts, nodeNames)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue