Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multinode cluster: fix waits and joins #10758

Merged
merged 5 commits into from
Mar 10, 2021

Conversation

prezha
Copy link
Contributor

@prezha prezha commented Mar 9, 2021

fixes #10640

multinode tests usually fail for at least these three reasons:

  1. we wait with WaitForNodeReady in WaitForNode, which essentially waits for all nodes instead of just the one that is created, which could be the problem after the multinode cluster is restarted; it timeouts after 6mins with 'node has unwanted condition "Ready"', waiting for an 'old' node to rejoin - a problem described in (3.) below
  2. we wait for all system pods, and that could also timeout after 6mins - in case of the multinode cluster restart, waiting sometimes also for those stale leftovers (ie, pods that are 'remembered' on nodes that were removed or not yet restarted)
  3. we try to 'kubeadm reset' then 'kubeadm join' existing nodes, and this is explicitly 'forbidden':

so, trying to rejoin 'old' node timeouts after 3mins with 'error execution phase kubelet-start: a Node with name "name" and status "Ready" already exists in the cluster. You must delete the existing Node or change the name of this new joining Node', then deleting that node and creating a new one that can then join the cluster w/o issues (but it all takes additional time)

now, this pr addresses these issues by:

  1. waiting only for a node that has been currently worked on
  2. restructured 'waiting for pods' logic by also checking some additional indicators to avoid api responses with stale data, while reducing the total number of api calls
  3. restructured 'join cluster' logic: removed 'reset' part and added 'remove' operation that drains then removes 'old' node from the cluster before trying to add it back + some additional flags to prevent ending up stuck in the process (eg, 'error: unable to drain node "multinode-777-m03", aborting command... There are pending nodes to be drained: error: cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore)')

i've successfully tested multinode and functional suites with docker and kvm drivers, and, as we avoid unnecessary waits and timeouts, they should now also be significantly faster, but let's wait for official results from @medyagh ;)

pkg/minikube/bootstrapper/kubeadm/kubeadm.go Show resolved Hide resolved
pkg/minikube/node/node.go Outdated Show resolved Hide resolved
m := config.MachineName(cc, *n)
api, err := machine.NewAPIClient()
if err != nil {
return n, err
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after this PR we will not be attempting to delete a Host that we can not load it's config.
this might cause some un-intended sideeffects.
could u comment why we need to return error instead of trying anyways to clean up the Host ?
if no good reason, consider klog.ErrorS and try the delete anyways

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe i'm wrong, but in this place, it will return if it cannot get api client (needed for delete), not if it cannot load the config?

did you perhaps referred to the previous call to remove func? i do agree it should not return on err there, but continue and try to delete the host anyway, just not sure atm if we would also need to do anything additionally to clean up the leftovers

err = machine.DeleteHost(api, m)
if err != nil {
return n, err
}

cc.Nodes = append(cc.Nodes[:index], cc.Nodes[index+1:]...)
return n, config.SaveProfile(viper.GetString(config.ProfileName), &cc)
return n, nil
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this code deletes the SaveProfile. are u sure this needed to be done ? what was the reason that this had to be removed as part of this PR ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is still done, just at the end of the remove func (where the node is effectively removed from the cluster)
remove func is called at the beginning of this delete func

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what was the reason that was removed from this PR ? was it related ? or could it be done in a separate PR ?

pkg/provision/ubuntu.go Outdated Show resolved Hide resolved
@medyagh
Copy link
Member

medyagh commented Mar 10, 2021

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Mar 10, 2021
@minikube-pr-bot
Copy link

kvm2 Driver
error collecting results for kvm2 driver: timing run 0 with Minikube (PR 10758): timing cmd: [/home/performance-monitor/.minikube/minikube-binaries/10758/minikube start --driver=kvm2]: starting cmd: fork/exec /home/performance-monitor/.minikube/minikube-binaries/10758/minikube: exec format error
docker Driver
error collecting results for docker driver: timing run 0 with Minikube (PR 10758): timing cmd: [/home/performance-monitor/.minikube/minikube-binaries/10758/minikube start --driver=docker]: starting cmd: fork/exec /home/performance-monitor/.minikube/minikube-binaries/10758/minikube: exec format error

@minikube-pr-bot
Copy link

kvm2 Driver
Times for minikube: 63.5s 60.3s 60.6s
Average time for minikube: 61.5s

Times for Minikube (PR 10758): 61.8s 60.4s 61.3s
Average time for Minikube (PR 10758): 61.1s

Averages Time Per Log

+--------------------------------------------+----------+---------------------+
|                    LOG                     | MINIKUBE | MINIKUBE (PR 10758) |
+--------------------------------------------+----------+---------------------+
| * minikube v1.18.1 on Debian               | 0.0s     | 0.0s                |
| 9.11 (kvm/amd64)                           |          |                     |
| * Using the kvm2 driver based              | 0.0s     | 0.0s                |
| on user configuration                      |          |                     |
| * Starting control plane node              | 0.0s     | 0.0s                |
| minikube in cluster minikube               |          |                     |
| * Creating kvm2 VM (CPUs=2,                | 36.8s    | 36.4s               |
| Memory=3700MB, Disk=20000MB)               |          |                     |
| ...                                        |          |                     |
| * Preparing Kubernetes v1.20.2             | 21.9s    | 8.7s                |
| on Docker 20.10.3 ...                      |          |                     |
|   - Generating certificates                | 0.0s     | 2.8s                |
| and keys ...                               |          |                     |
|   - Booting up control plane               | 0.0s     | 9.8s                |
| ...                                        |          |                     |
|   - Configuring RBAC rules ...             | 0.5s     | 1.1s                |
| * Verifying Kubernetes                     | 0.1s     | 0.1s                |
| components...                              |          |                     |
|   - Using image                            | 1.3s     | 1.4s                |
| gcr.io/k8s-minikube/storage-provisioner:v4 |          |                     |
| * Enabled addons:                          | 0.9s     |                     |
| default-storageclass,                      |          |                     |
| storage-provisioner                        |          |                     |
| * Done! kubectl is now                     | 0.0s     | 0.0s                |
| configured to use "minikube"               |          |                     |
| cluster and "default"                      |          |                     |
| namespace by default                       |          |                     |
+--------------------------------------------+----------+---------------------+

docker Driver
Times for minikube: 24.5s 25.7s 27.3s
Average time for minikube: 25.8s

Times for Minikube (PR 10758): 26.2s 24.8s 25.8s
Average time for Minikube (PR 10758): 25.6s

Averages Time Per Log

+--------------------------------------------+----------+---------------------+
|                    LOG                     | MINIKUBE | MINIKUBE (PR 10758) |
+--------------------------------------------+----------+---------------------+
| * minikube v1.18.1 on Debian               | 0.2s     | 0.2s                |
| 9.11 (kvm/amd64)                           |          |                     |
| * Using the docker driver                  | 0.1s     | 0.1s                |
| based on user configuration                |          |                     |
| * Starting control plane node              | 0.1s     | 0.1s                |
| minikube in cluster minikube               |          |                     |
| * Creating docker container                | 9.5s     | 9.5s                |
| (CPUs=2, Memory=3700MB) ...                |          |                     |
| * Preparing Kubernetes v1.20.2             | 14.9s    | 14.6s               |
| on Docker 20.10.3 ...                      |          |                     |
| * Verifying Kubernetes                     | 0.1s     | 0.1s                |
| components...                              |          |                     |
|   - Using image                            | 1.0s     | 1.0s                |
| gcr.io/k8s-minikube/storage-provisioner:v4 |          |                     |
| * Enabled addons:                          | 0.1s     | 0.1s                |
| storage-provisioner,                       |          |                     |
| default-storageclass                       |          |                     |
| * Done! kubectl is now                     | 0.0s     | 0.0s                |
| configured to use "minikube"               |          |                     |
| cluster and "default"                      |          |                     |
| namespace by default                       |          |                     |
+--------------------------------------------+----------+---------------------+

@medyagh
Copy link
Member

medyagh commented Mar 10, 2021

@prezha the none driver test says this which seems odd, since in NoneDriver there is no Multi-node
none_Linux — Jenkins: completed with 10 / 83 failures in 23.01 minute(s). https://storage.googleapis.com/minikube-builds/logs/10758/622b4e3/none_Linux.html

	X Exiting due to GUEST_START: wait 6m0s for node: waiting for node to be ready: waitNodeCondition: error getting node "minikube-m01": nodes "minikube-m01" not found

might also wanna rebase from upstream

@prezha
Copy link
Contributor Author

prezha commented Mar 10, 2021

@prezha the none driver test says this which seems odd, since in NoneDriver there is no Multi-node
none_Linux — Jenkins: completed with 10 / 83 failures in 23.01 minute(s). https://storage.googleapis.com/minikube-builds/logs/10758/622b4e3/none_Linux.html

	X Exiting due to GUEST_START: wait 6m0s for node: waiting for node to be ready: waitNodeCondition: error getting node "minikube-m01": nodes "minikube-m01" not found

might also wanna rebase from upstream

good spot, thank you @medyagh !

here is what i've found:

  • [in sigle-node clusters] with none driver, we have node name set to "m01" - this example:
2021-03-10T01:15:04.7548443Z         	* I0310 01:14:00.604410    5764 kubeadm.go:386] StartCluster: {Name:minikube KeepContext:false EmbedCerts:false MinikubeISO: KicBaseImage:gcr.io/k8s-minikube/kicbase:v0.0.18@sha256:ddd0c02d289e3a6fb4bba9a94435840666f4eb81484ff3e707b69c1c484aa45e Memory:4000 CPUs:2 DiskSize:20000 VMDriver: Driver:none HyperkitVpnKitSock: HyperkitVSockPorts:[] DockerEnv:[] ContainerVolumeMounts:[] InsecureRegistry:[] RegistryMirror:[] HostOnlyCIDR:192.168.99.1/24 HypervVirtualSwitch: HypervUseExternalSwitch:false HypervExternalAdapter: KVMNetwork:default KVMQemuURI:qemu:///system KVMGPU:false KVMHidden:false KVMNUMACount:1 DockerOpt:[] DisableDriverMounts:false NFSShare:[] NFSSharesRoot:/nfsshares UUID: NoVTXCheck:false DNSProxy:false HostDNSResolver:true HostOnlyNicType:virtio NatNicType:virtio SSHIPAddress: SSHUser:root SSHKey: SSHPort:22 KubernetesConfig:{KubernetesVersion:v1.20.2 ClusterName:minikube Namespace:default APIServerName:minikubeCA APIServerNames:[] APIServerIPs:[] DNSDomain:cluster.local ContainerRuntime:docker CRISocket: NetworkPlugin: FeatureGates: ServiceCIDR:10.96.0.0/12 ImageRepository: LoadBalancerStartIP: LoadBalancerEndIP: CustomIngressCert: ExtraOptions:[{Component:kubelet Key:resolv-conf Value:/run/systemd/resolve/resolv.conf}] ShouldLoadCachedImages:false EnableDefaultCNI:false CNI: NodeIP: NodePort:8441 NodeName:} Nodes:[{Name:m01 IP:10.1.0.4 Port:8441 KubernetesVersion:v1.20.2 ControlPlane:true Worker:true}] Addons:map[] VerifyComponents:map[apiserver:true apps_running:true default_sa:true extra:true kubelet:true node_ready:true system_pods:true] StartHostTimeout:6m0s ScheduledStop:<nil> ExposedPorts:[] ListenAddress: Network: MultiNodeRequested:false}

extract:

Nodes:[{Name:m01 IP:10.1.0.4 Port:8441 KubernetesVersion:v1.20.2 ControlPlane:true Worker:true}]

in contrast, in sigle-node clusters with kvm2 and docker drivers, we have node name unset:

  • kvm2 driver - example:
I0310 15:36:39.599866   26531 kubeadm.go:386] StartCluster: {Name:minikube KeepContext:false EmbedCerts:false MinikubeISO:https://storage.googleapis.com/minikube/iso/minikube-v1.18.0.iso KicBaseImage:gcr.io/k8s-minikube/kicbase:v0.0.18@sha256:ddd0c02d289e3a6fb4bba9a94435840666f4eb81484ff3e707b69c1c484aa45e Memory:6000 CPUs:2 DiskSize:20000 VMDriver: Driver:kvm2 HyperkitVpnKitSock: HyperkitVSockPorts:[] DockerEnv:[] ContainerVolumeMounts:[] InsecureRegistry:[] RegistryMirror:[] HostOnlyCIDR:192.168.99.1/24 HypervVirtualSwitch: HypervUseExternalSwitch:false HypervExternalAdapter: KVMNetwork:default KVMQemuURI:qemu:///system KVMGPU:false KVMHidden:false KVMNUMACount:1 DockerOpt:[] DisableDriverMounts:false NFSShare:[] NFSSharesRoot:/nfsshares UUID: NoVTXCheck:false DNSProxy:false HostDNSResolver:true HostOnlyNicType:virtio NatNicType:virtio SSHIPAddress: SSHUser:root SSHKey: SSHPort:22 KubernetesConfig:{KubernetesVersion:v1.20.2 ClusterName:minikube Namespace:default APIServerName:minikubeCA APIServerNames:[] APIServerIPs:[] DNSDomain:cluster.local ContainerRuntime:docker CRISocket: NetworkPlugin: FeatureGates: ServiceCIDR:10.96.0.0/12 ImageRepository: LoadBalancerStartIP: LoadBalancerEndIP: CustomIngressCert: ExtraOptions:[] ShouldLoadCachedImages:true EnableDefaultCNI:false CNI: NodeIP: NodePort:8443 NodeName:} Nodes:[{Name: IP:192.168.39.57 Port:8443 KubernetesVersion:v1.20.2 ControlPlane:true Worker:true}] Addons:map[] VerifyComponents:map[apiserver:true apps_running:true default_sa:true extra:true kubelet:true node_ready:true system_pods:true] StartHostTimeout:6m0s ScheduledStop:<nil> ExposedPorts:[] ListenAddress: Network: MultiNodeRequested:false}

extract:

Nodes:[{Name: IP:192.168.39.57 Port:8443 KubernetesVersion:v1.20.2 ControlPlane:true Worker:true}]

  • docker driver - example:
I0310 14:57:22.024808    7610 kubeadm.go:386] StartCluster: {Name:minikube KeepContext:false EmbedCerts:false MinikubeISO: KicBaseImage:gcr.io/k8s-minikube/kicbase:v0.0.18@sha256:ddd0c02d289e3a6fb4bba9a94435840666f4eb81484ff3e707b69c1c484aa45e Memory:16000 CPUs:2 DiskSize:20000 VMDriver: Driver:docker HyperkitVpnKitSock: HyperkitVSockPorts:[] DockerEnv:[] ContainerVolumeMounts:[] InsecureRegistry:[] RegistryMirror:[] HostOnlyCIDR:192.168.99.1/24 HypervVirtualSwitch: HypervUseExternalSwitch:false HypervExternalAdapter: KVMNetwork:default KVMQemuURI:qemu:///system KVMGPU:false KVMHidden:false KVMNUMACount:1 DockerOpt:[] DisableDriverMounts:false NFSShare:[] NFSSharesRoot:/nfsshares UUID: NoVTXCheck:false DNSProxy:false HostDNSResolver:true HostOnlyNicType:virtio NatNicType:virtio SSHIPAddress: SSHUser:root SSHKey: SSHPort:22 KubernetesConfig:{KubernetesVersion:v1.20.2 ClusterName:minikube Namespace:default APIServerName:minikubeCA APIServerNames:[] APIServerIPs:[] DNSDomain:cluster.local ContainerRuntime:docker CRISocket: NetworkPlugin: FeatureGates: ServiceCIDR:10.96.0.0/12 ImageRepository: LoadBalancerStartIP: LoadBalancerEndIP: CustomIngressCert: ExtraOptions:[] ShouldLoadCachedImages:true EnableDefaultCNI:false CNI: NodeIP: NodePort:8443 NodeName:} Nodes:[{Name: IP:192.168.49.2 Port:8443 KubernetesVersion:v1.20.2 ControlPlane:true Worker:true}] Addons:map[] VerifyComponents:map[apiserver:true apps_running:true default_sa:true extra:true kubelet:true node_ready:true system_pods:true] StartHostTimeout:6m0s ScheduledStop:<nil> ExposedPorts:[] ListenAddress: Network: MultiNodeRequested:false}

extract:

Nodes:[{Name: IP:192.168.49.2 Port:8443 KubernetesVersion:v1.20.2 ControlPlane:true Worker:true}]

so, i've replaced code segment in this pr:

		name := cfg.Name
		if n.Name != "" {
			name = fmt.Sprintf("%s-%s", cfg.Name, n.Name)
		}

with:

name := bsutil.KubeNodeName(cfg, n)

https://github.com/prezha/minikube/blob/81eeb7dd979e29a712ac5153fc4b6b40bd519f9f/pkg/minikube/bootstrapper/bsutil/kubelet.go#L119-L127

and that should fix it
also, i've rebased to upstream

// side thought: i'm not sure why none driver sets the name of its node (in contrast to other drivers)?

@minikube-pr-bot
Copy link

kvm2 Driver
Times for minikube: 60.1s 64.3s 61.4s
Average time for minikube: 61.9s

Times for Minikube (PR 10758): 63.3s 64.1s 62.6s
Average time for Minikube (PR 10758): 63.3s

Averages Time Per Log

+--------------------------------------------+----------+---------------------+
|                    LOG                     | MINIKUBE | MINIKUBE (PR 10758) |
+--------------------------------------------+----------+---------------------+
| * minikube v1.18.1 on Debian               | 0.1s     | 0.0s                |
| 9.11 (kvm/amd64)                           |          |                     |
| * Using the kvm2 driver based              | 0.0s     | 0.0s                |
| on user configuration                      |          |                     |
| * Starting control plane node              | 0.0s     | 0.0s                |
| minikube in cluster minikube               |          |                     |
| * Creating kvm2 VM (CPUs=2,                | 38.2s    | 37.0s               |
| Memory=3700MB, Disk=20000MB)               |          |                     |
| ...                                        |          |                     |
| * Preparing Kubernetes v1.20.2             | 14.6s    | 15.9s               |
| on Docker 20.10.3 ...                      |          |                     |
|   - Generating certificates                | 1.5s     | 1.8s                |
| and keys ...                               |          |                     |
|   - Booting up control plane               | 5.0s     | 5.0s                |
| ...                                        |          |                     |
|   - Configuring RBAC rules ...             | 0.8s     | 0.9s                |
| * Verifying Kubernetes                     | 0.1s     | 0.1s                |
| components...                              |          |                     |
|   - Using image                            | 1.2s     | 1.4s                |
| gcr.io/k8s-minikube/storage-provisioner:v4 |          |                     |
| * Enabled addons:                          | 0.5s     |                     |
| default-storageclass,                      |          |                     |
| storage-provisioner                        |          |                     |
| * Done! kubectl is now                     | 0.0s     | 0.0s                |
| configured to use "minikube"               |          |                     |
| cluster and "default"                      |          |                     |
| namespace by default                       |          |                     |
+--------------------------------------------+----------+---------------------+

docker Driver
Times for minikube: 28.7s 36.5s 26.2s
Average time for minikube: 30.5s

Times for Minikube (PR 10758): 31.2s 26.0s 25.9s
Average time for Minikube (PR 10758): 27.7s

Averages Time Per Log

+--------------------------------------------+----------+---------------------+
|                    LOG                     | MINIKUBE | MINIKUBE (PR 10758) |
+--------------------------------------------+----------+---------------------+
| * minikube v1.18.1 on Debian               | 0.2s     | 0.2s                |
| 9.11 (kvm/amd64)                           |          |                     |
| * Using the docker driver                  | 0.1s     | 0.1s                |
| based on user configuration                |          |                     |
| * Starting control plane node              | 0.1s     | 0.1s                |
| minikube in cluster minikube               |          |                     |
| * Creating docker container                | 13.3s    | 11.2s               |
| (CPUs=2, Memory=3700MB) ...                |          |                     |
| * Preparing Kubernetes v1.20.2             | 15.4s    | 14.8s               |
| on Docker 20.10.3 ...                      |          |                     |
| * Verifying Kubernetes                     | 0.1s     | 0.1s                |
| components...                              |          |                     |
|   - Using image                            | 1.1s     | 1.2s                |
| gcr.io/k8s-minikube/storage-provisioner:v4 |          |                     |
| * Enabled addons:                          | 0.1s     | 0.1s                |
| storage-provisioner,                       |          |                     |
| default-storageclass                       |          |                     |
| * Done! kubectl is now                     | 0.0s     | 0.0s                |
| configured to use "minikube"               |          |                     |
| cluster and "default"                      |          |                     |
| namespace by default                       |          |                     |
+--------------------------------------------+----------+---------------------+

@minikube-pr-bot
Copy link

kvm2 Driver
Times for minikube: 65.3s 63.4s 67.3s
Average time for minikube: 65.3s

Times for Minikube (PR 10758): 63.7s 65.0s 65.4s
Average time for Minikube (PR 10758): 64.7s

Averages Time Per Log

+--------------------------------------------+----------+---------------------+
|                    LOG                     | MINIKUBE | MINIKUBE (PR 10758) |
+--------------------------------------------+----------+---------------------+
| * minikube v1.18.1 on Debian               | 1.1s     | 0.1s                |
| 9.11 (kvm/amd64)                           |          |                     |
| * Using the kvm2 driver based              | 0.0s     | 0.0s                |
| on user configuration                      |          |                     |
| * Starting control plane node              | 0.0s     | 0.0s                |
| minikube in cluster minikube               |          |                     |
| * Creating kvm2 VM (CPUs=2,                | 37.8s    | 38.4s               |
| Memory=3700MB, Disk=20000MB)               |          |                     |
| ...                                        |          |                     |
| * Preparing Kubernetes v1.20.2             | 16.4s    | 9.3s                |
| on Docker 20.10.3 ...                      |          |                     |
|   - Generating certificates                | 1.9s     | 3.6s                |
| and keys ...                               |          |                     |
|   - Booting up control plane               | 5.2s     | 9.6s                |
| ...                                        |          |                     |
|   - Configuring RBAC rules ...             | 0.8s     | 1.2s                |
| * Verifying Kubernetes                     | 0.1s     | 0.1s                |
| components...                              |          |                     |
|   - Using image                            | 1.3s     | 1.5s                |
| gcr.io/k8s-minikube/storage-provisioner:v4 |          |                     |
| * Enabled addons:                          | 0.7s     | 1.2s                |
| storage-provisioner,                       |          |                     |
| default-storageclass                       |          |                     |
| * Done! kubectl is now                     | 0.0s     | 0.0s                |
| configured to use "minikube"               |          |                     |
| cluster and "default"                      |          |                     |
| namespace by default                       |          |                     |
+--------------------------------------------+----------+---------------------+

docker Driver
Times for minikube: 27.6s 27.5s 26.9s
Average time for minikube: 27.4s

Times for Minikube (PR 10758): 27.2s 26.9s 26.9s
Average time for Minikube (PR 10758): 27.0s

Averages Time Per Log

+--------------------------------------------+----------+---------------------+
|                    LOG                     | MINIKUBE | MINIKUBE (PR 10758) |
+--------------------------------------------+----------+---------------------+
| * minikube v1.18.1 on Debian               | 0.2s     | 0.2s                |
| 9.11 (kvm/amd64)                           |          |                     |
| * Using the docker driver                  | 0.1s     | 0.1s                |
| based on user configuration                |          |                     |
| * Starting control plane node              | 0.1s     | 0.1s                |
| minikube in cluster minikube               |          |                     |
| * Creating docker container                | 9.9s     | 9.9s                |
| (CPUs=2, Memory=3700MB) ...                |          |                     |
| * Preparing Kubernetes v1.20.2             | 15.6s    | 15.3s               |
| on Docker 20.10.3 ...                      |          |                     |
| * Verifying Kubernetes                     | 0.1s     | 0.1s                |
| components...                              |          |                     |
|   - Using image                            | 1.4s     | 1.3s                |
| gcr.io/k8s-minikube/storage-provisioner:v4 |          |                     |
| * Enabled addons:                          | 0.1s     | 0.1s                |
| storage-provisioner,                       |          |                     |
| default-storageclass                       |          |                     |
| * Done! kubectl is now                     | 0.0s     | 0.0s                |
| configured to use "minikube"               |          |                     |
| cluster and "default"                      |          |                     |
| namespace by default                       |          |                     |
+--------------------------------------------+----------+---------------------+

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 10, 2021
Copy link
Member

@medyagh medyagh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you @prezha this PR made the Docker Linux Tests have 0 Failures !!! nice work

@medyagh medyagh merged commit e1c872a into kubernetes:master Mar 10, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: medyagh, prezha

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. pr_verified size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
4 participants