From d00a7fe61c524cf88c10bf3c98aeac84bcab2ed7 Mon Sep 17 00:00:00 2001 From: Michail Kargakis Date: Mon, 24 Jul 2017 12:23:59 +0200 Subject: [PATCH] Fix RWO warning with percentages Signed-off-by: Michail Kargakis --- pkg/api/graph/test/dc-with-claim.yaml | 2 +- pkg/deploy/graph/analysis/dc.go | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/api/graph/test/dc-with-claim.yaml b/pkg/api/graph/test/dc-with-claim.yaml index 0821791627d2..ec5086b72d75 100644 --- a/pkg/api/graph/test/dc-with-claim.yaml +++ b/pkg/api/graph/test/dc-with-claim.yaml @@ -19,7 +19,7 @@ items: replicas: 1 strategy: rollingParams: - maxSurge: 1 + maxSurge: 25% type: Rolling template: metadata: diff --git a/pkg/deploy/graph/analysis/dc.go b/pkg/deploy/graph/analysis/dc.go index 5e81fb8d2e39..2c86ffb0df9a 100644 --- a/pkg/deploy/graph/analysis/dc.go +++ b/pkg/deploy/graph/analysis/dc.go @@ -6,6 +6,7 @@ import ( "github.com/gonum/graph" kapi "k8s.io/kubernetes/pkg/api" + kdeplutil "k8s.io/kubernetes/pkg/controller/deployment/util" osgraph "github.com/openshift/origin/pkg/api/graph" kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes" @@ -162,10 +163,13 @@ func pvcMarker(g osgraph.Graph, f osgraph.Namer, dcNode *deploygraph.DeploymentC } dc := dcNode.DeploymentConfig - rollingParams := dc.Spec.Strategy.RollingParams isBlockedBySize := dc.Spec.Replicas > 1 - isBlockedRolling := rollingParams != nil && rollingParams.MaxSurge.IntValue() > 0 - + isBlockedRolling := false + rollingParams := dc.Spec.Strategy.RollingParams + if rollingParams != nil { + maxSurge, _, _ := kdeplutil.ResolveFenceposts(&rollingParams.MaxSurge, &rollingParams.MaxUnavailable, dc.Spec.Replicas) + isBlockedRolling = maxSurge > 0 + } // If the claim is not RWO or deployments will not have more than a pod running at any time // then they should be fine. if !hasRWOAccess(pvcNode) || (!isBlockedRolling && !isBlockedBySize) {