Remove deployment and daemonset views, change combined to controllers and remove bare pods and replica sets

Since we still need to map through replica sets to find matching deployments, we simply filter them out as a post-step.
This commit is contained in:
Mike Lang
2017-06-07 16:54:53 -07:00
parent 889972c48a
commit 8eb72cf276
3 changed files with 28 additions and 76 deletions

View File

@@ -29,9 +29,7 @@ const (
containersByImageID = "containers-by-image"
podsID = "pods"
replicaSetsID = "replica-sets"
deploymentsID = "deployments"
daemonsetsID = "daemonsets"
kubeCombinedID = "kube-combined"
kubeControllersID = "kube-controllers"
servicesID = "services"
hostsID = "hosts"
weaveID = "weave"
@@ -121,7 +119,7 @@ func updateKubeFilters(rpt report.Report, topologies []APITopologyDesc) []APITop
sort.Strings(ns)
topologies = append([]APITopologyDesc{}, topologies...) // Make a copy so we can make changes safely
for i, t := range topologies {
if t.id == containersID || t.id == podsID || t.id == servicesID || t.id == deploymentsID || t.id == replicaSetsID || t.id == daemonsetsID || t.id == kubeCombinedID {
if t.id == containersID || t.id == podsID || t.id == servicesID || t.id == replicaSetsID || t.id == kubeControllersID {
topologies[i] = mergeTopologyFilters(t, []APITopologyOptionGroup{
namespaceFilters(ns, "All Namespaces"),
})
@@ -197,7 +195,7 @@ func MakeRegistry() *Registry {
},
}
k8sCombinedTypeFilter := APITopologyOptionGroup{
k8sControllersTypeFilter := APITopologyOptionGroup{
ID: "grouptype",
Default: "",
SelectType: "union",
@@ -205,8 +203,6 @@ func MakeRegistry() *Registry {
Options: []APITopologyOption{
{Value: report.Deployment, Label: "Deployments", filter: render.IsTopology(report.Deployment), filterPseudo: false},
{Value: report.DaemonSet, Label: "Daemonsets", filter: render.IsTopology(report.DaemonSet), filterPseudo: false},
{Value: report.ReplicaSet, Label: "Replica sets", filter: render.IsTopology(report.ReplicaSet), filterPseudo: false},
{Value: report.Pod, Label: "Pods", filter: render.IsTopology(report.Pod), filterPseudo: false},
},
}
@@ -267,27 +263,11 @@ func MakeRegistry() *Registry {
HideIfEmpty: true,
},
APITopologyDesc{
id: deploymentsID,
id: kubeControllersID,
parent: podsID,
renderer: render.DeploymentRenderer,
Name: "deployments",
Options: []APITopologyOptionGroup{unmanagedFilter},
HideIfEmpty: true,
},
APITopologyDesc{
id: daemonsetsID,
parent: podsID,
renderer: render.DaemonSetRenderer,
Name: "daemonsets",
Options: []APITopologyOptionGroup{unmanagedFilter},
HideIfEmpty: true,
},
APITopologyDesc{
id: kubeCombinedID,
parent: podsID,
renderer: render.KubeCombinedRenderer,
Name: "combined",
Options: []APITopologyOptionGroup{unmanagedFilter, k8sCombinedTypeFilter},
renderer: render.KubeControllerRenderer,
Name: "controllers",
Options: []APITopologyOptionGroup{unmanagedFilter, k8sControllersTypeFilter},
HideIfEmpty: true,
},
APITopologyDesc{

View File

@@ -90,8 +90,8 @@ var primaryAPITopology = map[string]string{
report.ContainerImage: "containers-by-image",
report.Pod: "pods",
report.ReplicaSet: "replica-sets",
report.Deployment: "deployments",
report.DaemonSet: "daemonsets",
report.Deployment: "kube-controllers",
report.DaemonSet: "kube-controllers",
report.Service: "services",
report.ECSTask: "ecs-tasks",
report.ECSService: "ecs-services",
@@ -260,7 +260,6 @@ func podNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) {
var podGroupNodeTypeName = map[string]string{
report.Deployment: "Deployment",
report.DaemonSet: "Daemon Set",
report.ReplicaSet: "Replica Set",
}
func podGroupNodeSummary(base NodeSummary, n report.Node) (NodeSummary, bool) {

View File

@@ -78,21 +78,6 @@ var PodServiceRenderer = ConditionalRenderer(renderKubernetesTopologies,
),
)
// DeploymentRenderer is a Renderer which produces a renderable kubernetes deployments
// graph by merging the pods graph and the deployments topology.
var DeploymentRenderer = ConditionalRenderer(renderKubernetesTopologies,
MakeMap(
PropagateSingleMetrics(report.ReplicaSet),
MakeReduce(
MakeMap(
Map2Parent([]string{report.Deployment}, NoParentsDrop, "", mapPodCounts),
ReplicaSetRenderer,
),
SelectDeployment,
),
),
)
// ReplicaSetRenderer is a Renderer which produces a renderable kubernetes replica sets
// graph by merging the pods graph and the replica sets topology.
var ReplicaSetRenderer = ConditionalRenderer(renderKubernetesTopologies,
@@ -108,41 +93,29 @@ var ReplicaSetRenderer = ConditionalRenderer(renderKubernetesTopologies,
),
)
// DaemonSetRenderer is a Renderer which produces a renderable kubernetes daemonsets
// graph by merging the pods graph and the daemonsets topology.
var DaemonSetRenderer = ConditionalRenderer(renderKubernetesTopologies,
MakeMap(
PropagateSingleMetrics(report.Pod),
MakeReduce(
MakeMap(
Map2Parent([]string{report.DaemonSet}, NoParentsDrop, "", nil),
PodRenderer,
),
SelectDaemonSet,
),
),
)
// KubeCombinedRenderer is a Renderer which combines the 'top abstraction' of all pods.
// We first map pods to all possible things they can map to, then we map again to
// deployments since some things (replica sets) can map to those (the rest are passed through
// unchanged).
// KubeControllerRenderer is a Renderer which combines all the 'controller' topologies.
// We first map pods to daemonsets and replica sets, then to deployments since replica sets
// can map to those (the rest are passed through unchanged).
// Pods with no controller are mapped to 'Unmanaged'
// We can't simply combine the rendered graphs of the high level objects as they would never
// have connections to each other.
var KubeCombinedRenderer = ConditionalRenderer(renderKubernetesTopologies,
var KubeControllerRenderer = ConditionalRenderer(renderKubernetesTopologies,
MakeReduce(
MakeMap(
Map2Parent([]string{report.Deployment}, NoParentsKeep, "", mapPodCounts),
MakeReduce(
MakeMap(
Map2Parent([]string{
report.ReplicaSet,
report.DaemonSet,
}, NoParentsKeep, "", nil),
PodRenderer,
MakeFilter(
Complement(IsTopology(report.ReplicaSet)),
MakeMap(
Map2Parent([]string{report.Deployment}, NoParentsKeep, "", mapPodCounts),
MakeReduce(
MakeMap(
Map2Parent([]string{
report.ReplicaSet,
report.DaemonSet,
}, NoParentsPseudo, UnmanagedID, nil),
PodRenderer,
),
SelectReplicaSet,
SelectDaemonSet,
),
SelectReplicaSet,
SelectDaemonSet,
),
),
SelectDeployment,