-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Update running-locally.md sudo example to preserve $PATH #8538
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
base: master
Are you sure you want to change the base?
Update running-locally.md sudo example to preserve $PATH #8538
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: ostrain The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Welcome @ostrain! |
Hi @ostrain. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
/ok-to-test |
/sig testing |
@@ -83,7 +83,7 @@ cd kubernetes | |||
Since root access is sometimes needed to start/stop Kubernetes daemons, `./hack/local-up-cluster.sh` may need to be run as root. If it reports failures, try this instead: | |||
|
|||
```sh | |||
sudo ./hack/local-up-cluster.sh | |||
sudo -E PATH=$PATH ./hack/local-up-cluster.sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this can also break users, imagine if they only have docker available to root (which is why we need to sudo) ... this is dependent on users and their local path manipulation ...
what was missing from PATH in your case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
etcd was missing -- if one follows the instructions earlier on the page to install etcd, it gets installed in such a way that you have to manually add it to your $PATH
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I think we should probably update the script to find etcd in the expected install location in addition to $PATH.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wasn't aware that the instructions say sudo ./hack/local-up-cluster.sh
. I always invoke it as normal user (./hack/local-up-cluster.sh
) and it internally prefixes some commands with sudo
as needed.
My PATH includes etcd, because that is also needed for other commands (go test ./test/integration/<something>
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My PATH includes etcd, because that is also needed for other commands (go test ./test/integration/).
Well, the integration scripts actually handle this for you now :-)
We could have the go targets do it too, it will just be messier.
but either way, if you run with sudo at the top level your path will not be preserved
we should probably stop specifying sudo here entirely
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did a little more testing and I confirmed that it works without sudo for me.
I figured out why I thought I needed the sudo workaround though: after I've run the script once, before I can run it again I have to manually delete /var/run/kubernetes/* and the relevant /tmp/*.log files or it fails to come up -- it looks like it's because a smattering of these files end up owned by root which breaks things.
Tiny change to make the local-up-cluster.sh sudo example preserve $PATH to ensure etcd is available