Skip to content

Commit d75004e

Browse files
committed
add and handle controllerRefEdgeKinds
1 parent 977778b commit d75004e

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

pkg/api/kubegraph/analysis/podspec.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ import (
88
osgraph "github.com/openshift/origin/pkg/api/graph"
99
kubeedges "github.com/openshift/origin/pkg/api/kubegraph"
1010
kubegraph "github.com/openshift/origin/pkg/api/kubegraph/nodes"
11-
kubenodes "github.com/openshift/origin/pkg/api/kubegraph/nodes"
1211
deploygraph "github.com/openshift/origin/pkg/deploy/graph"
13-
deploynodes "github.com/openshift/origin/pkg/deploy/graph/nodes"
1412
"k8s.io/kubernetes/pkg/util/sets"
1513
)
1614

@@ -84,7 +82,7 @@ func FindMissingSecrets(g osgraph.Graph, f osgraph.Namer) []osgraph.Marker {
8482
func FindMissingLivenessProbes(g osgraph.Graph, f osgraph.Namer, setProbeCommand string) []osgraph.Marker {
8583
markers := []osgraph.Marker{}
8684
appendedNodes := sets.NewString()
87-
ignoredNodes := findDeploymentEdgeKinds(g)
85+
ignoredNodes := findControllerRefEdgeKinds(g)
8886

8987
for _, uncastPodSpecNode := range g.NodesByKind(kubegraph.PodSpecNodeKind) {
9088
podSpecNode := uncastPodSpecNode.(*kubegraph.PodSpecNode)
@@ -187,14 +185,18 @@ func CheckMissingMountedSecrets(g osgraph.Graph, podSpecNode *kubegraph.PodSpecN
187185
return missingSecrets
188186
}
189187

190-
// findDeploymentEdgeKinds returns all replication controller nodes
191-
// whose deployment is being fulfilled by a DeploymentConfig
192-
func findDeploymentEdgeKinds(g osgraph.Graph) []graph.Node {
193-
nodeFilter := osgraph.NodesOfKind(deploynodes.DeploymentConfigNodeKind)
194-
edgeFilter := osgraph.EdgesOfKind(deploygraph.DeploymentEdgeKind)
188+
func findControllerRefEdgeKinds(g osgraph.Graph) []graph.Node {
189+
nodeFilter := osgraph.NodesOfKind()
190+
edgeFilter := osgraph.EdgesOfKind(deploygraph.ControllerRefEdgeKind)
195191

196192
subGraph := g.Subgraph(nodeFilter, edgeFilter)
197-
return subGraph.NodesByKind(kubenodes.ReplicationControllerNodeKind)
193+
ignoredNodes := []graph.Node{}
194+
195+
// ignore all nodes "controlled" by another node
196+
for _, edge := range subGraph.Edges() {
197+
ignoredNodes = append(ignoredNodes, edge.To())
198+
}
199+
return ignoredNodes
198200
}
199201

200202
func isNodeInList(node graph.Node, nodeList []graph.Node) bool {

pkg/deploy/graph/edges.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ const (
2222
DeploymentEdgeKind = "Deployment"
2323
// VolumeClaimEdgeKind goes from DeploymentConfigs to PersistentVolumeClaims indicating a request for persistent storage.
2424
VolumeClaimEdgeKind = "VolumeClaim"
25+
// ControllerRefEdgeKind goes from a controller node to its controlled child-node
26+
ControllerRefEdgeKind = "ControllerRef"
2527
)
2628

2729
// AddTriggerEdges creates edges that point to named Docker image repositories for each image used in the deployment.
@@ -73,6 +75,7 @@ func AddDeploymentEdges(g osgraph.MutableUniqueGraph, node *deploygraph.Deployme
7375
}
7476
if BelongsToDeploymentConfig(node.DeploymentConfig, rcNode.ReplicationController) {
7577
g.AddEdge(node, rcNode, DeploymentEdgeKind)
78+
g.AddEdge(node, rcNode, ControllerRefEdgeKind)
7679
}
7780
}
7881
}

0 commit comments

Comments
 (0)