Repository: kubernetes/minikube
Pull request #15775 (2023-02-02 17:15:02)

Add ingress pod to logs output
- Add ingress pod to logs output
- Refactor logic to make it easy to add new addons to logs in the future
- Move existing addon pods to new logic to save checking for pod that may not exist


Patch:
diff --git a/Makefile b/Makefile
index 3c387761b..f94125ede 100644
--- a/Makefile
+++ b/Makefile
@@ -720,7 +720,6 @@ update-cri-dockerd:
 
 .PHONY: local-kicbase
 local-kicbase: ## Builds the kicbase image and tags it local/kicbase:latest and local/kicbase:$(KIC_VERSION)-$(COMMIT_SHORT)
-	touch deploy/kicbase/CHANGELOG
 	docker build -f ./deploy/kicbase/Dockerfile -t local/kicbase:$(KIC_VERSION) --build-arg VERSION_JSON=$(VERSION_JSON) --build-arg COMMIT_SHA=${VERSION}-$(COMMIT_NOQUOTES) --cache-from $(KICBASE_IMAGE_GCR) .
 	docker tag local/kicbase:$(KIC_VERSION) local/kicbase:latest
 	docker tag local/kicbase:$(KIC_VERSION) local/kicbase:$(KIC_VERSION)-$(COMMIT_SHORT)
diff --git a/OWNERS b/OWNERS
index d82a0f77a..82645340b 100644
--- a/OWNERS
+++ b/OWNERS
@@ -8,6 +8,7 @@ reviewers:
   - spowelljr
 approvers:
   - afbjorklund
+  - sharifelgamal
   - medyagh
   - spowelljr
   - prezha
@@ -20,4 +21,3 @@ emeritus_approvers:
   - priyawadhwa
   - josedonizetti
   - tstromberg
-  - sharifelgamal
diff --git a/SECURITY_CONTACTS b/SECURITY_CONTACTS
index 6ad5736a5..d9a7f75be 100644
--- a/SECURITY_CONTACTS
+++ b/SECURITY_CONTACTS
@@ -10,6 +10,7 @@
 # DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
 # INSTRUCTIONS AT https://kubernetes.io/security/
 
+tstromberg
 afbjorklund
 medyagh
-spowelljr
+sharifelgamal
diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile
index cb7f91ab4..6122b2fff 100644
--- a/deploy/kicbase/Dockerfile
+++ b/deploy/kicbase/Dockerfile
@@ -227,7 +227,10 @@ RUN systemctl enable docker.service
 # making SSH work for docker container
 # based on https://github.com/rastasheep/ubuntu-sshd/blob/master/18.04/Dockerfile
 RUN mkdir /var/run/sshd
+RUN echo 'root:root' |chpasswd
+RUN sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
 RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
+
 # minikube relies on /etc/hosts for control-plane discovery. This prevents nefarious DNS servers from breaking it.
 RUN sed -ri 's/dns files/files dns/g' /etc/nsswitch.conf
 
diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go
index 2d2a69474..8bae4d270 100644
--- a/pkg/drivers/kic/types.go
+++ b/pkg/drivers/kic/types.go
@@ -24,10 +24,10 @@ import (
 
 const (
 	// Version is the current version of kic
-	Version = "v0.0.37-1675280603-15763"
+	Version = "v0.0.37-1675094849-15728"
 
 	// SHA of the kic base image
-	baseImageSHA = "9f474b7ba8542a6ea1d4410955102c8c63c61d74579375db5b45bbc427946de8"
+	baseImageSHA = "674e71e0928a6b8b65fe678e2c3097ad1c85d350c56566396c5ebfc49aca0bb5"
 	// The name of the GCR kicbase repository
 	gcrRepo = "gcr.io/k8s-minikube/kicbase-builds"
 	// The name of the Dockerhub kicbase repository
diff --git a/pkg/minikube/logs/logs.go b/pkg/minikube/logs/logs.go
index 9a24c8065..b909c369a 100644
--- a/pkg/minikube/logs/logs.go
+++ b/pkg/minikube/logs/logs.go
@@ -80,8 +80,6 @@ var importantPods = []string{
 	"coredns",
 	"kube-scheduler",
 	"kube-proxy",
-	"kubernetes-dashboard",
-	"storage-provisioner",
 	"kube-controller-manager",
 }
 
@@ -267,9 +265,8 @@ func OutputOffline(lines int, logOutput *os.File) {
 func logCommands(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg config.ClusterConfig, length int, follow bool) map[string]string {
 	cmds := bs.LogCommands(cfg, bootstrapper.LogOptions{Lines: length, Follow: follow})
 	pods := importantPods
-	if assets.Addons["gcp-auth"].IsEnabled(&cfg) {
-		pods = append(pods, "gcp-auth")
-	}
+	addonPods := enabledAddonPods(cfg)
+	pods = append(pods, addonPods...)
 	for _, pod := range pods {
 		ids, err := r.ListContainers(cruntime.ListContainersOptions{Name: pod})
 		if err != nil {
@@ -291,3 +288,21 @@ func logCommands(r cruntime.Manager, bs bootstrapper.Bootstrapper, cfg config.Cl
 
 	return cmds
 }
+
+// enabledAddonPods returns the pod names for enabled addons
+// this does not currently include all addons, mostly just addons that we occasionally get users reporting issues with
+func enabledAddonPods(cfg config.ClusterConfig) []string {
+	addonPodMap := map[string]string{
+		"dashboard":           "kubernetes-dashboard",
+		"gcp-auth":            "gcp-auth",
+		"ingress":             "controller_ingress",
+		"storage-provisioner": "storage-provisioner",
+	}
+	addonsPods := []string{}
+	for addon, podName := range addonPodMap {
+		if assets.Addons[addon].IsEnabled(&cfg) {
+			addonsPods = append(addonsPods, podName)
+		}
+	}
+	return addonsPods
+}
diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md
index 889b342d5..39b321dec 100644
--- a/site/content/en/docs/commands/start.md
+++ b/site/content/en/docs/commands/start.md
@@ -26,7 +26,7 @@ minikube start [flags]
       --apiserver-names strings           A set of apiserver names which are used in the generated certificate for kubernetes.  This can be used if you want to make the apiserver available from outside the machine
       --apiserver-port int                The apiserver listening port (default 8443)
       --auto-update-drivers               If set, automatically updates drivers to the latest version. Defaults to true. (default true)
-      --base-image string                 The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.37-1675280603-15763@sha256:9f474b7ba8542a6ea1d4410955102c8c63c61d74579375db5b45bbc427946de8")
+      --base-image string                 The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.37-1675094849-15728@sha256:674e71e0928a6b8b65fe678e2c3097ad1c85d350c56566396c5ebfc49aca0bb5")
       --binary-mirror string              Location to fetch kubectl, kubelet, & kubeadm binaries from.
       --cache-images                      If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true)
       --cert-expiration duration          Duration until minikube certificate expiration, defaults to three years (26280h). (default 26280h0m0s)
diff --git a/site/content/en/docs/contrib/leaderboard/2023.html b/site/content/en/docs/contrib/leaderboard/2023.html
deleted file mode 100644
index e1ffeb59f..000000000
--- a/site/content/en/docs/contrib/leaderboard/2023.html
+++ /dev/null
@@ -1,489 +0,0 @@
----
-title: "2023"
-linkTitle: "2023"
-weight: -99992023
----
-<html>
-<head>
-    <title>kubernetes/minikube - Leaderboard</title>
-		
-    <link rel="preconnect" href="https://fonts.gstatic.com">
-    <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
-    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
-    <script type="text/javascript">
-        google.charts.load("current", {packages:["corechart"]});
-    </script>
-    <style>
-    body {
-       font-family: 'Open Sans', sans-serif;
-       background-color: #f7f7fa;
-       padding: 1em;
-    }
-
-    h1 {
-      color: rgba(66,133,244);
-      margin-bottom: 0em;
-    }
-
-    .subtitle {
-      color: rgba(23,90,201);
-      font-size: small;
-    }
-
-    pre {
-        white-space: pre-wrap;
-        word-wrap: break-word;
-        color: #666;
-        font-size: small;
-    }
-
-    h2.cli {
-       color: #666;
-    }
-
-    h2 {
-        color: #333;
-    }
-
-    .board p {
-        font-size: small;
-        color: #999;
-        text-align: center;
-    }
-
-
-    .board {
-        clear: right;
-        display: inline-block;
-        padding: 0.5em;
-        margin: 0.5em;
-        background-color: #fff;
-    }
-    .board:nth-child(4n+3) {
-        border: 2px solid rgba(66,133,244,0.25);
-        color: rgba(66,133,244);
-    }
-
-    .board:nth-child(4n+2) {
-        border: 2px solid rgba(219,68,55,0.25);
-        color: rgba rgba(219,68,55);
-    }
-
-    .board:nth-child(4n+1) {
-        border: 2px solid rgba(244,160,0,0.25);
-        color: rgba(244,160,0);
-    }
-
-    .board:nth-child(4n) {
-        border: 2px solid rgba(15,157,88,0.25);
-        color: rgba(15,157,88);
-    }
-
-    h3 {
-        text-align: center;
-    }
-
-    </style>
-</head>
-<body>
-    <h1>kubernetes/minikube</h1>
-    <div class="subtitle">2023-01-01 &mdash; 2023-01-31</div>
-
-    
-        <h2>Reviewers</h2>
-
-        
-            <div class="board">
-            <h3>Most Influential</h3>
-            <p># of Merged PRs reviewed</p>
-            <div id="chart_reviewCounts" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawreviewCounts);
-
-                function drawreviewCounts() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of Merged PRs reviewed', type: 'number'}, { role: 'annotation' }],
-                    ["medyagh", 12, "12"],
-                    ["spowelljr", 7, "7"],
-                    ["afbjorklund", 3, "3"],
-                    ["sharifelgamal", 2, "2"],
-                    ["profnandaa", 1, "1"],
-                    ["AkihiroSuda", 1, "1"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_reviewCounts'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-            <div class="board">
-            <h3>Most Helpful</h3>
-            <p># of words written in merged PRs</p>
-            <div id="chart_reviewWords" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawreviewWords);
-
-                function drawreviewWords() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of words written in merged PRs', type: 'number'}, { role: 'annotation' }],
-                    ["spowelljr", 830, "830"],
-                    ["medyagh", 651, "651"],
-                    ["afbjorklund", 42, "42"],
-                    ["sharifelgamal", 24, "24"],
-                    ["profnandaa", 17, "17"],
-                    ["AkihiroSuda", 8, "8"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_reviewWords'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-            <div class="board">
-            <h3>Most Demanding</h3>
-            <p># of Review Comments in merged PRs</p>
-            <div id="chart_reviewComments" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawreviewComments);
-
-                function drawreviewComments() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of Review Comments in merged PRs', type: 'number'}, { role: 'annotation' }],
-                    ["medyagh", 29, "29"],
-                    ["spowelljr", 18, "18"],
-                    ["afbjorklund", 1, "1"],
-                    ["AkihiroSuda", 1, "1"],
-                    ["profnandaa", 0, "0"],
-                    ["sharifelgamal", 0, "0"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_reviewComments'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-    
-        <h2>Pull Requests</h2>
-
-        
-            <div class="board">
-            <h3>Most Active</h3>
-            <p># of Pull Requests Merged</p>
-            <div id="chart_prCounts" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawprCounts);
-
-                function drawprCounts() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of Pull Requests Merged', type: 'number'}, { role: 'annotation' }],
-                    ["spowelljr", 23, "23"],
-                    ["afbjorklund", 3, "3"],
-                    ["shubhbapna", 2, "2"],
-                    ["prezha", 2, "2"],
-                    ["ComradeProgrammer", 1, "1"],
-                    ["StingyJack", 1, "1"],
-                    ["jeffmaury", 1, "1"],
-                    ["AkihiroSuda", 1, "1"],
-                    ["axrav", 1, "1"],
-                    ["ronnelsantiago", 1, "1"],
-                    ["YuikoTakada", 1, "1"],
-                    ["mqasimsarfraz", 1, "1"],
-                    ["kushmansingh", 1, "1"],
-                    ["psschwei", 1, "1"],
-                    ["medyagh", 1, "1"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_prCounts'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-            <div class="board">
-            <h3>Big Movers</h3>
-            <p>Lines of code (delta)</p>
-            <div id="chart_prDeltas" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawprDeltas);
-
-                function drawprDeltas() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: 'Lines of code (delta)', type: 'number'}, { role: 'annotation' }],
-                    ["prezha", 3817, "3817"],
-                    ["spowelljr", 1848, "1848"],
-                    ["shubhbapna", 251, "251"],
-                    ["AkihiroSuda", 192, "192"],
-                    ["ComradeProgrammer", 165, "165"],
-                    ["afbjorklund", 32, "32"],
-                    ["kushmansingh", 14, "14"],
-                    ["axrav", 12, "12"],
-                    ["medyagh", 9, "9"],
-                    ["mqasimsarfraz", 9, "9"],
-                    ["psschwei", 4, "4"],
-                    ["ronnelsantiago", 2, "2"],
-                    ["kundan2707", 2, "2"],
-                    ["StingyJack", 2, "2"],
-                    ["YuikoTakada", 0, "0"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_prDeltas'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-            <div class="board">
-            <h3>Most difficult to review</h3>
-            <p>Average PR size (added+changed)</p>
-            <div id="chart_prSize" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawprSize);
-
-                function drawprSize() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: 'Average PR size (added+changed)', type: 'number'}, { role: 'annotation' }],
-                    ["prezha", 1189, "1189"],
-                    ["AkihiroSuda", 190, "190"],
-                    ["ComradeProgrammer", 165, "165"],
-                    ["shubhbapna", 83, "83"],
-                    ["spowelljr", 32, "32"],
-                    ["medyagh", 9, "9"],
-                    ["afbjorklund", 8, "8"],
-                    ["kushmansingh", 7, "7"],
-                    ["mqasimsarfraz", 5, "5"],
-                    ["axrav", 4, "4"],
-                    ["psschwei", 2, "2"],
-                    ["StingyJack", 2, "2"],
-                    ["ronnelsantiago", 1, "1"],
-                    ["kundan2707", 1, "1"],
-                    ["jeffmaury", 0, "0"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_prSize'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-    
-        <h2>Issues</h2>
-
-        
-            <div class="board">
-            <h3>Most Active</h3>
-            <p># of comments</p>
-            <div id="chart_comments" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawcomments);
-
-                function drawcomments() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of comments', type: 'number'}, { role: 'annotation' }],
-                    ["afbjorklund", 33, "33"],
-                    ["kundan2707", 7, "7"],
-                    ["spowelljr", 6, "6"],
-                    ["kant777", 6, "6"],
-                    ["prezha", 6, "6"],
-                    ["BenTheElder", 5, "5"],
-                    ["medyagh", 4, "4"],
-                    ["nirs", 4, "4"],
-                    ["heitorPB", 4, "4"],
-                    ["Gorgeous-Patrick", 4, "4"],
-                    ["NitishKumar06", 3, "3"],
-                    ["vroetman", 2, "2"],
-                    ["axrav", 2, "2"],
-                    ["shogohida", 2, "2"],
-                    ["surajkrishan", 2, "2"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_comments'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-            <div class="board">
-            <h3>Most Helpful</h3>
-            <p># of words (excludes authored)</p>
-            <div id="chart_commentWords" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawcommentWords);
-
-                function drawcommentWords() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of words (excludes authored)', type: 'number'}, { role: 'annotation' }],
-                    ["prasanna-desikank", 2363, "2363"],
-                    ["afbjorklund", 1827, "1827"],
-                    ["prezha", 642, "642"],
-                    ["BenTheElder", 614, "614"],
-                    ["rogeriomm", 413, "413"],
-                    ["NitishKumar06", 381, "381"],
-                    ["x7upLime", 373, "373"],
-                    ["spowelljr", 361, "361"],
-                    ["sourabhyadavgit", 275, "275"],
-                    ["Gorgeous-Patrick", 254, "254"],
-                    ["nirs", 213, "213"],
-                    ["kant777", 178, "178"],
-                    ["elizabeth-dev", 128, "128"],
-                    ["abdelouahabb", 92, "92"],
-                    ["medyagh", 86, "86"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_commentWords'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-            <div class="board">
-            <h3>Top Closers</h3>
-            <p># of issues closed (excludes authored)</p>
-            <div id="chart_issueCloser" style="width: 450px; height: 350px;"></div>
-            <script type="text/javascript">
-                google.charts.setOnLoadCallback(drawissueCloser);
-
-                function drawissueCloser() {
-                    var data = new google.visualization.arrayToDataTable([
-                    [{label:'',type:'string'},{label: '# of issues closed (excludes authored)', type: 'number'}, { role: 'annotation' }],
-                    ["spowelljr", 20, "20"],
-                    ["medyagh", 6, "6"],
-                    
-                    ]);
-
-                    var options = {
-                    axisTitlesPosition: 'none',
-
-                    bars: 'horizontal', // Required for Material Bar Charts.
-                    axes: {
-                        x: {
-                        y: { side: 'top'} // Top x-axis.
-                        }
-                    },
-                    legend: { position: "none" },
-                    bar: { groupWidth: "85%" }
-                    };
-
-                   var chart = new google.visualization.BarChart(document.getElementById('chart_issueCloser'));
-                   chart.draw(data, options);
-                };
-            </script>
-            </div>
-        
-    
-</body>
-</html>


Test patch:
diff --git a/pkg/minikube/logs/logs_test.go b/pkg/minikube/logs/logs_test.go
index 7bced3180..30a3d79ef 100644
--- a/pkg/minikube/logs/logs_test.go
+++ b/pkg/minikube/logs/logs_test.go
@@ -18,6 +18,8 @@ package logs
 
 import (
 	"testing"
+
+	"k8s.io/minikube/pkg/minikube/config"
 )
 
 func TestIsProblem(t *testing.T) {
@@ -61,3 +63,29 @@ func TestIsProblem(t *testing.T) {
 		})
 	}
 }
+
+func TestEnabledAddonPods(t *testing.T) {
+	cfg := config.ClusterConfig{
+		Addons: map[string]bool{
+			"dashboard":           true,
+			"gcp-auth":            true,
+			"ingress":             true,
+			"storage-provisioner": true,
+		},
+	}
+
+	got := enabledAddonPods(cfg)
+	expectedPods := []string{"kubernetes-dashboard", "gcp-auth", "controller_ingress", "storage-provisioner"}
+	for _, expectedPod := range expectedPods {
+		found := false
+		for _, pod := range got {
+			if expectedPod == pod {
+				found = true
+				break
+			}
+		}
+		if !found {
+			t.Errorf("%q was not found; got = %s", expectedPod, got)
+		}
+	}
+}