Giter Site home page Giter Site logo

helm-whatup's Introduction

Helm Whatup

This is a Helm plugin to help users determine if there's an update available for their installed charts. It works by reading your locally cached index files from the chart repositories (via helm repo update) and checking the version against the latest deployed version of your charts in the Kubernetes cluster.

Usage

$ helm repo update
$ helm whatup

Install

$ helm plugin install https://github.com/bacongobbler/helm-whatup

The above will fetch the latest binary release of helm whatup and install it.

Developer (From Source) Install

If you would like to handle the build yourself, instead of fetching a binary, this is how recommend doing it.

First, set up your environment:

  • You need to have Go installed. Make sure to set $GOPATH
  • If you don't have Glide installed, this will install it into $GOPATH/bin for you.

Clone this repo into your $GOPATH using git.

cd $GOPATH/src/github.com/bacongobbler
git clone https://github.com/bacongobbler/helm-whatup

Then run the following to get running.

$ cd helm-whatup
$ make bootstrap build
$ SKIP_BIN_INSTALL=1 helm plugin install $GOPATH/src/github.com/bacongobbler/helm-whatup

That last command will skip fetching the binary install and use the one you built.

helm-whatup's People

Contributors

bergerx avatar kevinjqiu avatar schegi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

helm-whatup's Issues

Helm 3 compatibility

Hi there! What is a fantastic plugin, but it unfortunately doesn't install under helm 3.

Here's the output of helm plugin install https://github.com/bacongobbler/helm-whatup under helm3 :

Downloading https://github.com/bacongobbler/helm-whatup/releases/download/v0.2.1/helm-whatup-0.2.1-darwin-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   627    0   627    0     0   1551      0 --:--:-- --:--:-- --:--:--  1555
100 7616k  100 7616k    0     0  1893k      0  0:00:04  0:00:04 --:--:-- 2368k
Preparing to install into /plugins/helm-whatup
cp: /plugins/helm-whatup: No such file or directory
cp: /tmp/helm-whatup/bin: unable to copy extended attributes to /plugins/helm-whatup: No such file or directory
cp: /plugins/helm-whatup/helm-whatup: No such file or directory
Failed to install helm-whatup
\tFor support, go to https://github.com/bacongobbler/helm-whatup.
Error: plugin install hook for "whatup" exited with error

Thanks for the fantastic plugin!

Support tls flag

When helm is setup with tls the whatup plugin no longer works as it doesn't support the --tls flag.

$ helm whatup
Error: rpc error: code = Unavailable desc = transport is closing

$ helm --tls whatup
Error: unknown flag: --tls

MacOS specific install errors

I was a bit too quick to celebrate after closing #2 It turns out there are still some MacOS specific install errors.

$ helm whatup
Error: fork/exec /Users/diederik/.helm/plugins/helm-whatup/bin/helm-whatup: no such file or directory

diederik@ttys006 ~ $ tree /Users/diederik/.helm/plugins/helm-whatup/
/Users/diederik/.helm/plugins/helm-whatup/
├── Gopkg.lock
├── Gopkg.toml
├── LICENSE
├── Makefile
├── README.md
├── install-binary.sh
├── main.go
└── plugin.yaml

0 directories, 8 files

diederik@ttys006 ~ $ sh -e /Users/diederik/.helm/plugins/helm-whatup/install-binary.sh 
Downloading 
curl: (3) <url> malformed
Failed to install helm-whatup
	For support, go to https://github.com/bacongobbler/helm-whatup.

Running sh -x /Users/diederik/.helm/plugins/helm-whatup/install-binary.sh reveals it's looking for:

curl -s https://api.github.com/repos/bacongobbler/helm-whatup/releases/latest | grep macos

but the release page names the binary "darwin"

When I patch the shell script for that, I run into a second error:

$  /Users/diederik/.helm/plugins/helm-whatup/install-binary.sh 
Downloading https://github.com/bacongobbler/helm-whatup/releases/download/v0.1.0/helm-whatup-0.1.0-darwin-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   627    0   627    0     0    200      0 --:--:--  0:00:03 --:--:--   200
100 4220k  100 4220k    0     0   623k      0  0:00:06  0:00:06 --:--:-- 1574k
Preparing to install into /Users/diederik/.helm/plugins/helm-whatup
cp: /tmp/helm-whatup/tpl: No such file or directory
Failed to install helm-whatup
\tFor support, go to https://github.com/bacongobbler/helm-whatup.

but fortunately, this seemed to work:

cp -r /tmp/helm-whatup/bin ~/.helm/plugins/helm-whatup/

helm whatup gives multiple entries/results

helm plugin list
NAME  	VERSION	DESCRIPTION
whatup	0.2.1  	Checks if installed charts are out of date against the Helm repositories

helm whatup

There is an update available for release prom (prometheus-operator)!
Installed version: 5.16.0
Available version: 6.3.1
There is an update available for release rc (rocketchat)!
Installed version: 1.1.5
Available version: 1.1.6
There is an update available for release rs (redis)!
Installed version: 8.1.0
Available version: 9.0.1
There is an update available for release rs (redis)!
Installed version: 8.1.0
Available version: 9.0.1
There is an update available for release rs (redis)!
Installed version: 8.1.0
Available version: 8.1.5
There is an update available for release zpg (postgresql)!
Installed version: 5.3.12
Available version: 6.2.0
There is an update available for release zpg (postgresql)!
Installed version: 5.3.12
Available version: 6.2.0
There is an update available for release zpg (postgresql)!
Installed version: 5.3.12
Available version: 6.0.0

Same chart has multiple entries

Gives error when no chart version found

helm whatup fails when only snapshot dependencies exist.

Error: No chart version found for example-
Usage:
whatup [flags]

Flags:
-h, --help help for whatup

Error: plugin "whatup" exited with error

helm list : example-1.0.0-8a2bf8f

New release

Would be nice to have a new release including the json formatting.

Installation error

Even though the cache folder is empty:

$ rm -Rf ~/.helm/cache/
$ tree ~/.helm/
/Users/diederik/.helm/
├── ca.pem
├── cert.pem
├── key.pem
├── plugins
├── repository
│   ├── cache
│   │   ├── incubator-index.yaml
│   │   ├── local-index.yaml -> /Users/diederik/.helm/repository/local/index.yaml
│   │   └── stable-index.yaml
│   ├── local
│   │   └── index.yaml
│   └── repositories.yaml
└── starters

I get this error:

$ helm plugin install https://github.com/bacongobbler/helm-whatup
Error: Unable to update checked out version

And some other attemps also failed:

$ ~/.helm/cache/plugins/https-github.com-bacongobbler-helm-whatup/install-binary.sh 
Downloading 
curl: (3) <url> malformed
Failed to install helm-whatup
\tFor support, go to https://github.com/kubernetes/helm.

What's happening here?

Work without local repo

Is it possible to check for updates without the need for local repos?
We are using Flux's Helm Operator, so we don't need local repos.

It would be awesome if this plugin would check remotely for updates.

Installation error

❯ helm plugin install https://github.com/bacongobbler/helm-whatup
Installed plugin: whatup

~
❯ helm whatup
Error: fork/exec /Users/frederic/.helm/plugins/helm-whatup/whatup.sh: no such file or directory

Installation doesn't work by default on blank Alpine image

Hi, love the plugin, but I tried to run it inside a docker container and it wouldn't install correctly. So for anyone trying to install this binary on an alpine image, you have to apk add libc6-compat package (it needs an interpreter that is not present by default). Otherwise you get errors like:
Error: fork/exec /root/.helm/plugins/helm-whatup/bin/helm-whatup: no such file or directory when you pass environment variables along to the script.

Running `helm repo update` before `helm whatup`?

The output of helm whatup can be a bit deceiving when the repo's are not updated:

$ helm whatup
Release appin (nginx-ingress) is up to date (0.9.2).
Release caching (redis) is up to date (1.1.11).
Release dashboard (kubernetes-dashboard) is up to date (0.5.1).
Release kubewatch (kubewatch) is up to date (0.2.1).
Release letsencrypt (kube-lego) is up to date (0.4.0).
Done.

$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "incubator" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈ 

$ helm whatup
There is an update available for release appin (nginx-ingress)!
Installed version: 0.9.2
Available version: 0.9.3
There is an update available for release caching (redis)!
Installed version: 1.1.11
Available version: 1.1.12
There is an update available for release dashboard (kubernetes-dashboard)!
Installed version: 0.5.1
Available version: 0.5.3
Release kubewatch (kubewatch) is up to date (0.2.1).
Release letsencrypt (kube-lego) is up to date (0.4.0).
Done.

Perhaps mention this in the readme, or always run helm repo update automatically from whatup?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.