Commit 84756df8 authored by Darren Shepherd's avatar Darren Shepherd

Only run two service-lb if there are more than 1 nodes ready

parent bd269f8d
...@@ -229,9 +229,23 @@ func (h *handler) resolvePort(svc *core.Service, targetPort core.ServicePort) (i ...@@ -229,9 +229,23 @@ func (h *handler) resolvePort(svc *core.Service, targetPort core.ServicePort) (i
func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) { func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) {
name := fmt.Sprintf("svclb-%s", svc.Name) name := fmt.Sprintf("svclb-%s", svc.Name)
zero := intstr.FromInt(0) zeroInt := intstr.FromInt(0)
one := intstr.FromInt(1) oneInt := intstr.FromInt(1)
two := int32(2) replicas := int32(0)
nodes, err := h.nodeCache.List("", labels.Everything())
if err != nil {
return nil, err
}
for _, node := range nodes {
if Ready.IsTrue(node) {
replicas += 1
}
if replicas >= 2 {
break
}
}
dep := &apps.Deployment{ dep := &apps.Deployment{
ObjectMeta: meta.ObjectMeta{ ObjectMeta: meta.ObjectMeta{
...@@ -252,7 +266,7 @@ func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) { ...@@ -252,7 +266,7 @@ func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) {
APIVersion: "apps/v1", APIVersion: "apps/v1",
}, },
Spec: apps.DeploymentSpec{ Spec: apps.DeploymentSpec{
Replicas: &two, Replicas: &replicas,
Selector: &meta.LabelSelector{ Selector: &meta.LabelSelector{
MatchLabels: map[string]string{ MatchLabels: map[string]string{
"app": name, "app": name,
...@@ -269,8 +283,8 @@ func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) { ...@@ -269,8 +283,8 @@ func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) {
Strategy: apps.DeploymentStrategy{ Strategy: apps.DeploymentStrategy{
Type: apps.RollingUpdateDeploymentStrategyType, Type: apps.RollingUpdateDeploymentStrategyType,
RollingUpdate: &apps.RollingUpdateDeployment{ RollingUpdate: &apps.RollingUpdateDeployment{
MaxSurge: &zero, MaxSurge: &zeroInt,
MaxUnavailable: &one, MaxUnavailable: &oneInt,
}, },
}, },
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment