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

Use a NodeName separate from the MachineName within the VM #2722

Closed
wants to merge 0 commits into
base: master
from

Conversation

Projects
None yet
6 participants
@petertrotman
Contributor

petertrotman commented Apr 13, 2018

Fix for #2717

The node within the VM currently has the same name as the VM, which is set to the profile name. This causes a problem when the profile name is not minikube since the kubelets are hard-coded to look for a host called minikube here which causes the cluster to fail to start.

This pull request changes the NodeName within the VM to use a constant minikube instead of the MachineName (GetMachineName returns the profile name if set, or minikube otherwise).

I also noted that it is possible to set a profile with spaces minikube profile "test profile") and I didn't test what problems that might cause, but I think it would cause problems if the NodeName had spaces, which is one reason why I chose to change the NodeName to a constant minikube instead of changing the kubelets to look for the proper name. Also it doesn't make a whole lot of sense to me to set the name of the node within the VM to the profile name.

@minikube-bot

This comment has been minimized.

Show comment
Hide comment
@minikube-bot

minikube-bot Apr 13, 2018

Collaborator

Can one of the admins verify this patch?

Collaborator

minikube-bot commented Apr 13, 2018

Can one of the admins verify this patch?

@dlorenc

This comment has been minimized.

Show comment
Hide comment
@dlorenc

dlorenc Apr 16, 2018

Contributor

@minikube-bot ok to test

Contributor

dlorenc commented Apr 16, 2018

@minikube-bot ok to test

@zaa

This comment has been minimized.

Show comment
Hide comment
@zaa

zaa Apr 19, 2018

I believe a more proper fix is to remove the hostname-override parameter, since the machine name (which takes the profile name into account) is used in quite a few places already.
Plus kubelet makes an incorrect assumption that the name is fixed to minikube and the override is not really needed, because if the parameter is not specified, kubelet takes it from the node's hostname, which is setup correctly.

I've applied the following patch locally and managed to start a minikube VM with profile specified:

diff --git a/pkg/minikube/bootstrapper/kubeadm/versions.go b/pkg/minikube/bootstrapper/kubeadm/versions.go
index d0680ec5..f4827bd8 100644
--- a/pkg/minikube/bootstrapper/kubeadm/versions.go
+++ b/pkg/minikube/bootstrapper/kubeadm/versions.go
@@ -181,7 +181,6 @@ var versionSpecificOpts = []VersionedExtraOption{
                },
                LessThanOrEqual: semver.MustParse("1.9.10"),
        },
-       NewUnversionedOption(Kubelet, "hostname-override", "minikube"),

        // System pods args
        NewUnversionedOption(Kubelet, "pod-manifest-path", "/etc/kubernetes/manifests"),

@r2d4 @dlorenc Could you please take a look if the patch (and my reasoning) makes sense? Thank you.

zaa commented Apr 19, 2018

I believe a more proper fix is to remove the hostname-override parameter, since the machine name (which takes the profile name into account) is used in quite a few places already.
Plus kubelet makes an incorrect assumption that the name is fixed to minikube and the override is not really needed, because if the parameter is not specified, kubelet takes it from the node's hostname, which is setup correctly.

I've applied the following patch locally and managed to start a minikube VM with profile specified:

diff --git a/pkg/minikube/bootstrapper/kubeadm/versions.go b/pkg/minikube/bootstrapper/kubeadm/versions.go
index d0680ec5..f4827bd8 100644
--- a/pkg/minikube/bootstrapper/kubeadm/versions.go
+++ b/pkg/minikube/bootstrapper/kubeadm/versions.go
@@ -181,7 +181,6 @@ var versionSpecificOpts = []VersionedExtraOption{
                },
                LessThanOrEqual: semver.MustParse("1.9.10"),
        },
-       NewUnversionedOption(Kubelet, "hostname-override", "minikube"),

        // System pods args
        NewUnversionedOption(Kubelet, "pod-manifest-path", "/etc/kubernetes/manifests"),

@r2d4 @dlorenc Could you please take a look if the patch (and my reasoning) makes sense? Thank you.

@petertrotman

This comment has been minimized.

Show comment
Hide comment
@petertrotman

petertrotman Apr 23, 2018

Contributor

It makes sense to me that removing the hostname-override would also work, although I personally prefer explicitly setting the names that the user doesn't see or care about to a straight minikube.

Either way, it would be good if one of these solutions could be approved, because, as of now, the profile functionality is totally crippled.

Contributor

petertrotman commented Apr 23, 2018

It makes sense to me that removing the hostname-override would also work, although I personally prefer explicitly setting the names that the user doesn't see or care about to a straight minikube.

Either way, it would be good if one of these solutions could be approved, because, as of now, the profile functionality is totally crippled.

@dlorenc

This comment has been minimized.

Show comment
Hide comment
@dlorenc

dlorenc Apr 30, 2018

Contributor

Removing hostname-override makes more sense to me. Do you want to switch this PR to that?

Contributor

dlorenc commented Apr 30, 2018

Removing hostname-override makes more sense to me. Do you want to switch this PR to that?

@petertrotman

This comment has been minimized.

Show comment
Hide comment
@petertrotman

petertrotman Apr 30, 2018

Contributor

I can confirm that removing hostname-override does fix the issue in the general case.

However, as I suspected, the NodeName cannot contain spaces - if we use the profile name directly as the NodeName then the cluster fails with the following error message:

╭─peter@peter-arch-9370 ~/dev/src/k8s.io/minikube  ‹master*›
╰─$ ./out/minikube-linux-amd64 --profile "minikube test" start                                                                                                                                                                         130 ↵
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
E0430 10:30:49.189149    2433 start.go:276] Error starting cluster:  kubeadm init error sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI  running command: : running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
 output:        [WARNING Hostname]: hostname "minikube test" could not be reached
        [WARNING Hostname]: hostname "minikube test" lookup minikube test: no such host
        [WARNING Swap]: running with swap on is not supported. Please disable swap
Flag --admission-control has been deprecated, Use --enable-admission-plugins or --disable-admission-plugins instead. Will be removed in a future version.
[preflight] Some fatal errors occurred:
        [ERROR Hostname]: hostname "minikube test" a DNS-1123 subdomain: running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
.: Process exited with status 2

This is not an issue if we fix the NodeName to minikube as in the original pull request - profiles with spaces work just fine.

If we want to solve this issue by removing hostname-override then we will also need to add something to make the profile name NodeName-safe - which I am happy to do - but I am of the opinion that simply fixing the NodeName to minikube is a simpler and cleaner solution. I'll leave the decision to you @dlorenc .

Contributor

petertrotman commented Apr 30, 2018

I can confirm that removing hostname-override does fix the issue in the general case.

However, as I suspected, the NodeName cannot contain spaces - if we use the profile name directly as the NodeName then the cluster fails with the following error message:

╭─peter@peter-arch-9370 ~/dev/src/k8s.io/minikube  ‹master*›
╰─$ ./out/minikube-linux-amd64 --profile "minikube test" start                                                                                                                                                                         130 ↵
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
E0430 10:30:49.189149    2433 start.go:276] Error starting cluster:  kubeadm init error sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI  running command: : running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
 output:        [WARNING Hostname]: hostname "minikube test" could not be reached
        [WARNING Hostname]: hostname "minikube test" lookup minikube test: no such host
        [WARNING Swap]: running with swap on is not supported. Please disable swap
Flag --admission-control has been deprecated, Use --enable-admission-plugins or --disable-admission-plugins instead. Will be removed in a future version.
[preflight] Some fatal errors occurred:
        [ERROR Hostname]: hostname "minikube test" a DNS-1123 subdomain: running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
.: Process exited with status 2

This is not an issue if we fix the NodeName to minikube as in the original pull request - profiles with spaces work just fine.

If we want to solve this issue by removing hostname-override then we will also need to add something to make the profile name NodeName-safe - which I am happy to do - but I am of the opinion that simply fixing the NodeName to minikube is a simpler and cleaner solution. I'll leave the decision to you @dlorenc .

@petertrotman

This comment has been minimized.

Show comment
Hide comment
@petertrotman

petertrotman Apr 30, 2018

Contributor

I made a first pass at removing hostname-override whilst maintaining support for profiles with spaces here https://github.com/petertrotman/minikube/tree/hostname-override

It's not currently functional - the NodeName seems to be set somewhere other than in the given options and I get the following error:

╭─peter@peter-arch-9370 ~/dev/src/k8s.io/minikube  ‹master*›
╰─$ ./out/minikube-linux-amd64 --profile "minikube test" start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
E0430 11:32:23.166363   30459 start.go:276] Error starting cluster:  kubeadm init error sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI  running command: : running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
 output:        [WARNING Hostname]: hostname "minikube-test" could not be reached
        [WARNING Hostname]: hostname "minikube-test" lookup minikube-test on 10.0.2.3:53: no such host
        [WARNING Swap]: running with swap on is not supported. Please disable swap
Flag --admission-control has been deprecated, Use --enable-admission-plugins or --disable-admission-plugins instead. Will be removed in a future version.
0.0
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
[certificates] Using the existing ca certificate and key.
[certificates] Using the existing apiserver certificate and key.
[certificates] Generated apiserver-kubelet-client certificate and key.
[certificates] Generated etcd/ca certificate and key.
[certificates] Generated etcd/server certificate and key.
[certificates] etcd/server serving cert is signed for DNS names [localhost] and IPs [127.0.0.1]
[certificates] Generated etcd/peer certificate and key.
[certificates] etcd/peer serving cert is signed for DNS names [minikube-test] and IPs [192.168.99.100]
[certificates] Generated etcd/healthcheck-client certificate and key.
[certificates] Generated apiserver-etcd-client certificate and key.
[certificates] Generated sa key and public key.
[certificates] Generated front-proxy-ca certificate and key.
[certificates] Generated front-proxy-client certificate and key.
[certificates] Valid certificates and keys now exist in "/var/lib/localkube/certs/"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[controlplane] Wrote Static Pod manifest for component kube-apiserver to "/etc/kubernetes/manifests/kube-apiserver.yaml"
[controlplane] Wrote Static Pod manifest for component kube-controller-manager to "/etc/kubernetes/manifests/kube-controller-manager.yaml"
[controlplane] Wrote Static Pod manifest for component kube-scheduler to "/etc/kubernetes/manifests/kube-scheduler.yaml"
[etcd] Wrote Static Pod manifest for a local etcd instance to "/etc/kubernetes/manifests/etcd.yaml"
[init] Waiting for the kubelet to boot up the control plane as Static Pods from directory "/etc/kubernetes/manifests".
[init] This might take a minute or longer if the control plane images have to be pulled.
[apiclient] All control plane components are healthy after 59.001455 seconds
[uploadconfig] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[markmaster] Will mark node minikube-test as master by adding a label and a taint
: running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
.: Process exited with status 1

I'm sure the problem is solvable, but I'm not going to put the time in until we decide we really want to do this by removing hostname-override.

Contributor

petertrotman commented Apr 30, 2018

I made a first pass at removing hostname-override whilst maintaining support for profiles with spaces here https://github.com/petertrotman/minikube/tree/hostname-override

It's not currently functional - the NodeName seems to be set somewhere other than in the given options and I get the following error:

╭─peter@peter-arch-9370 ~/dev/src/k8s.io/minikube  ‹master*›
╰─$ ./out/minikube-linux-amd64 --profile "minikube test" start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
E0430 11:32:23.166363   30459 start.go:276] Error starting cluster:  kubeadm init error sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI  running command: : running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
 output:        [WARNING Hostname]: hostname "minikube-test" could not be reached
        [WARNING Hostname]: hostname "minikube-test" lookup minikube-test on 10.0.2.3:53: no such host
        [WARNING Swap]: running with swap on is not supported. Please disable swap
Flag --admission-control has been deprecated, Use --enable-admission-plugins or --disable-admission-plugins instead. Will be removed in a future version.
0.0
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
[certificates] Using the existing ca certificate and key.
[certificates] Using the existing apiserver certificate and key.
[certificates] Generated apiserver-kubelet-client certificate and key.
[certificates] Generated etcd/ca certificate and key.
[certificates] Generated etcd/server certificate and key.
[certificates] etcd/server serving cert is signed for DNS names [localhost] and IPs [127.0.0.1]
[certificates] Generated etcd/peer certificate and key.
[certificates] etcd/peer serving cert is signed for DNS names [minikube-test] and IPs [192.168.99.100]
[certificates] Generated etcd/healthcheck-client certificate and key.
[certificates] Generated apiserver-etcd-client certificate and key.
[certificates] Generated sa key and public key.
[certificates] Generated front-proxy-ca certificate and key.
[certificates] Generated front-proxy-client certificate and key.
[certificates] Valid certificates and keys now exist in "/var/lib/localkube/certs/"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[controlplane] Wrote Static Pod manifest for component kube-apiserver to "/etc/kubernetes/manifests/kube-apiserver.yaml"
[controlplane] Wrote Static Pod manifest for component kube-controller-manager to "/etc/kubernetes/manifests/kube-controller-manager.yaml"
[controlplane] Wrote Static Pod manifest for component kube-scheduler to "/etc/kubernetes/manifests/kube-scheduler.yaml"
[etcd] Wrote Static Pod manifest for a local etcd instance to "/etc/kubernetes/manifests/etcd.yaml"
[init] Waiting for the kubelet to boot up the control plane as Static Pods from directory "/etc/kubernetes/manifests".
[init] This might take a minute or longer if the control plane images have to be pulled.
[apiclient] All control plane components are healthy after 59.001455 seconds
[uploadconfig] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[markmaster] Will mark node minikube-test as master by adding a label and a taint
: running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
.: Process exited with status 1

I'm sure the problem is solvable, but I'm not going to put the time in until we decide we really want to do this by removing hostname-override.

@shay-berman

This comment has been minimized.

Show comment
Hide comment
@shay-berman

shay-berman May 6, 2018

Hi there
is there any way to change the k8s node name from minikube to something different? (any any procedure for doing it?)

Thanks

shay-berman commented May 6, 2018

Hi there
is there any way to change the k8s node name from minikube to something different? (any any procedure for doing it?)

Thanks

@k8s-ci-robot

This comment has been minimized.

Show comment
Hide comment
@k8s-ci-robot

k8s-ci-robot May 8, 2018

Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: petertrotman

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

Contributor

k8s-ci-robot commented May 8, 2018

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: petertrotman

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