krew icon indicating copy to clipboard operation
krew copied to clipboard

Simplify Krew installing process via publishing installer script on static url

Open MurzNN opened this issue 2 years ago • 5 comments

Now recommended way to install Krew is to run a "scary" bundle of shell commands like this:

(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)

It's okay for advanced users, but still not so quite.

Some projects, eg SaltStack with similar bash-script installing process, publish the script to some static url and recommend a one-liner like this:

curl -L https://bootstrap.saltproject.io | sudo sh

And Rust installer:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Maybe it's good idea to implement the same way as recommended for Krew too?

The source of the script will be still easy available to review via command like curl https://sh.rustup.rs and we can even recheck checksum of it, like recommended in https://getcomposer.org/download/ installer.

MurzNN avatar Jan 10 '22 12:01 MurzNN

As addition we even can add auto-detection of shell type (bash/fish/etc) and package manager (apt/rpm/etc to install git and curl packages) and create one universal script for any Linux distribution, instead of separate install process per each Linux shell / distribution.

MurzNN avatar Jan 10 '22 12:01 MurzNN

Kubernetes project and sub-projects generally err towards showing what's being done as opposed to curl|sh which arguably can be more scary for security-aware minds. Some examples (not doing curl|sh intentionally but rather showing how to manually install):

https://minikube.sigs.k8s.io/docs/start/ https://kind.sigs.k8s.io/docs/user/quick-start/ https://helm.sh/docs/intro/install/

We have not heard other substantial complaints about this, probably because at at the end of the day you still end up copy/paste'ing something regardless of the length. We can keep open and see there's demand but I'm currently -1.

/priority awaiting-more-evidence /area distribution

ahmetb avatar Jan 10 '22 17:01 ahmetb

Or just add support for homebrew or other package managers for those that want that experience.

jgilfoil avatar Mar 28 '22 17:03 jgilfoil

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Jun 26 '22 18:06 k8s-triage-robot

/remove-lifecycle stale

MurzNN avatar Jun 27 '22 04:06 MurzNN

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Sep 25 '22 04:09 k8s-triage-robot

/remove-lifecycle stale

On Sun, Sep 25, 2022, 08:14 Kubernetes Triage Robot < @.***> wrote:

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

Please send feedback to sig-contributor-experience at kubernetes/community https://github.com/kubernetes/community.

/lifecycle stale

— Reply to this email directly, view it on GitHub https://github.com/kubernetes-sigs/krew/issues/753#issuecomment-1257116119, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACSGFW64JZO75QWNIENDI3V77GRPANCNFSM5LTSD4FA . You are receiving this because you authored the thread.Message ID: @.***>

MurzNN avatar Sep 25 '22 13:09 MurzNN

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

k8s-triage-robot avatar Dec 24 '22 13:12 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot avatar Jan 23 '23 14:01 k8s-triage-robot

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue with /reopen
  • Mark this issue as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close not-planned

k8s-triage-robot avatar Feb 22 '23 15:02 k8s-triage-robot

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue with /reopen
  • Mark this issue as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close not-planned

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/test-infra repository.

k8s-ci-robot avatar Feb 22 '23 15:02 k8s-ci-robot