# Usage
nova find --wide
# Options
Flags:
--containers Show old container image versions. There will be no helm output unless the --helm flag is set as well
--helm Show old helm releases. You can combine this flag with `--containers` to have both output in a single run.
-h, --help help for find
--show-non-semver When finding container images, show all containers even if they don't follow semver.
Global Flags:
--alsologtostderr log to standard error as well as files (default true)
--config string Config file to use. If empty, flags will be used instead
--context string A context to use in the kubeconfig.
-d, --desired-versions stringToString A map of chart=override_version to override the helm repository when checking. (default [])
-a, --include-all Show all charts even if no latest version is found.
--logtostderr log to standard error instead of files (default true)
-n, --namespace string Namespace to look in. If empty, scan will be cluster-wide
--output-file string Path on local filesystem to write file output to
--poll-artifacthub When true, polls artifacthub to match against helm releases in the cluster. If false, you must provide a url list via --url/-u. Default is true. (default true)
--show-old Only output charts that are not on the latest version
-u, --url strings URL for a helm chart repo
-v, --v Level number for the log level verbosity
--wide Output chart name and namespace
# Generate Config
If you would like to generate a config file with all of the defaults for Nova, you can do that:
$ nova generate-config --config=nova.yaml
cat nova.yaml
context: ""
desired-versions: {}
include-all: false
output-file: ""
wide: false
# Helm Scanning Output
Below is sample output for Nova
# CLI
Release Name Installed Latest Old Deprecated
============ ========= ====== === ==========
goldilocks 3.3.1 4.0.1 true false
metrics-server 5.6.0 5.10.10 true false
redis 15.4.1 15.5.5 true false
# CLI (with --wide)
Release Name Chart Name Namespace HelmVersion Installed Latest Old Deprecated
============ ========== ========= =========== ========= ====== === ==========
goldilocks goldilocks goldilocks 3 3.3.1 4.0.1 true false
metrics-server metrics-server metrics-server 3 5.6.0 5.10.10 true false
redis redis redis 3 15.4.1 15.5.5 true false
# JSON
{
"helm": [
{
"release": "goldilocks",
"chartName": "goldilocks",
"namespace": "goldilocks",
"description": "A Helm chart for running Fairwinds Goldilocks. See https://github.com/FairwindsOps/goldilocks\n",
"icon": "https://raw.githubusercontent.com/FairwindsOps/charts/master/stable/goldilocks/icon.png",
"Installed": {
"version": "3.3.1",
"appVersion": "v3.1.4"
},
"Latest": {
"version": "4.0.1",
"appVersion": "v4.0.0"
},
"outdated": true,
"deprecated": false,
"helmVersion": "3",
"overridden": false
}
]
}
# Container Image Output
There are a couple flags that are unique to the container image output.
--show-non-semver
will also show any container tags running in the cluster that do not have valid semver versions. By default these are not shown.--show-errored-containers
will show any containers that returned some sort of error when reaching out to the registry and/or when processing the tags.
Below is sample output for Nova when using the --containers
flag
$ nova find --containers
Container Name Current Version Old Latest Latest Minor Latest Patch
============== =============== === ====== ============= =============
k8s.gcr.io/coredns/coredns v1.8.0 true v1.8.6 v1.8.6 v1.8.6
k8s.gcr.io/etcd 3.4.13-0 true 3.5.3-0 3.4.13-0 3.4.13-0
k8s.gcr.io/kube-apiserver v1.21.1 true v1.23.6 v1.23.6 v1.21.12
k8s.gcr.io/kube-controller-manager v1.21.1 true v1.23.6 v1.23.6 v1.21.12
k8s.gcr.io/kube-proxy v1.21.1 true v1.23.6 v1.23.6 v1.21.12
k8s.gcr.io/kube-scheduler v1.21.1 true v1.23.6 v1.23.6 v1.21.12
# Container output with errors
When scanning all containers, nova will capture any errors and move on. To show which containers had errors, use the --show-errored-containers
flag. Output will look like:
$ nova find --containers --show-errored-containers
Container Name Current Version Old Latest Latest Minor Latest Patch
============== =============== === ====== ============= =============
k8s.gcr.io/coredns/coredns v1.8.0 true v1.8.6 v1.8.6 v1.8.6
k8s.gcr.io/etcd 3.4.13-0 true 3.5.3-0 3.4.13-0 3.4.13-0
k8s.gcr.io/kube-apiserver v1.21.1 true v1.23.6 v1.23.6 v1.21.12
k8s.gcr.io/kube-controller-manager v1.21.1 true v1.23.6 v1.23.6 v1.21.12
k8s.gcr.io/kube-proxy v1.21.1 true v1.23.6 v1.23.6 v1.21.12
k8s.gcr.io/kube-scheduler v1.21.1 true v1.23.6 v1.23.6 v1.21.12
Errors:
Container Name Error
============== =====
examplething.com/testing:v1.0.0 Get "https://examplething.com/v2/": dial tcp: lookup examplethingert.com: no such host =====
# Helm Releases and Container Images combined output
If you want to run nova and both helm releases and containers images results in a single run
Below is sample output for Nova when using the --helm --containers
flag
$ nova --format=table find --helm --containers
Release Name Installed Latest Old Deprecated
============ ========= ====== === ==========
cert-manager v1.9.1 1.9.1 false false
insights-agent 2.0.7 2.6.8 true false
Container Name Current Version Old Latest Latest Minor Latest Patch
============== =============== === ====== ============= =============
k8s.gcr.io/coredns/coredns v1.8.4 true v1.9.3 v1.9.3 v1.8.6
k8s.gcr.io/etcd 3.5.0-0 true 3.5.4-0 3.5.0-0 3.5.0-0
k8s.gcr.io/kube-apiserver v1.22.9 true v1.25.0 v1.25.0 v1.22.13
k8s.gcr.io/kube-controller-manager v1.22.9 true v1.25.0 v1.25.0 v1.22.13
k8s.gcr.io/kube-proxy v1.22.9 true v1.25.0 v1.25.0 v1.22.13
k8s.gcr.io/kube-scheduler v1.22.9 true v1.25.0 v1.25.0 v1.22.13
You can print the output in json
format
$ nova --format=json find --helm --containers | jq
{
"helm": [
{
"release": "cert-manager",
"chartName": "cert-manager",
"namespace": "cert-manager",
"description": "A Helm chart for cert-manager",
"home": "https://github.com/cert-manager/cert-manager",
"icon": "https://raw.githubusercontent.com/cert-manager/cert-manager/d53c0b9270f8cd90d908460d69502694e1838f5f/logo/logo-small.png",
"Installed": { "version": "v1.9.1", "appVersion": "v1.9.1" },
"Latest": { "version": "1.9.1", "appVersion": "v1.9.1" },
"outdated": false,
"deprecated": false,
"helmVersion": "3",
"overridden": false
}
],
"include_all": false,
"container": {
"container_images": [
{
"name": "k8s.gcr.io/kube-scheduler",
"current_version": "v1.22.9",
"latest_version": "v1.25.0",
"latest_minor_version": "v1.25.0",
"latest_patch_version": "v1.22.13",
"outdated": true,
"affectedWorkloads": [
{
"name": "kube-scheduler-kind-control-plane",
"namespace": "kube-system",
"kind": "Pod",
"container": "kube-scheduler"
}
]
}
],
"err_images": null,
"latest_string_found": false
}
}