ChristofferNissen / helmper

Import Helm Charts to OCI registries, optionally with vulnerability patching
https://christoffernissen.github.io/helmper/
Apache License 2.0
140 stars 5 forks source link

No good way to verify whether the command was successful #35

Closed brightzheng100 closed 3 months ago

brightzheng100 commented 4 months ago

Follow the Getting Started guide and ran the command.

It was wrong as the registry was not actually listening on port 5000 -- there was the airplay receiver in the MacBook which was listening on this port and I had to disable it and reran the registry to ensure it worked.

Then I tried it with this output:

$ helmper

 _         _
| |_  ___ | | _____  ___  ___  ___
|   || -_|| ||     || . || -_||  _|
|_|_||___||_||_|_|_||  _||___||_|
                    |_|
version 0.1.3 (commit 7a22623ca5f11659d6ead6e91dedd48b1965e01f, built at 2024-05-29T20:21:22Z)

{"time":"2024-05-30T17:03:45.044219+08:00","level":"INFO","msg":"Updated all Helm repositories ✅"}
+---+----------+------------+---------+----------------+--------+---------+--------------------------+---------+----------------------------------+---------+
| # | TYPE     | CHART      | VERSION | LATEST VERSION | LATEST | VALUES  | SUBCHART                 | VERSION | CONDITION                        | ENABLED |
+---+----------+------------+---------+----------------+--------+---------+--------------------------+---------+----------------------------------+---------+
| 0 | Chart    | prometheus | 25.8.0  | 25.21.0        | ❌     | default |                          |         |                                  |         |
| 1 | Subchart |            |         |                |        | parent  | alertmanager             | 1.7.*   | alertmanager.enabled             | ✅      |
| 2 | Subchart |            |         |                |        | parent  | kube-state-metrics       | 5.15.*  | kube-state-metrics.enabled       | ✅      |
| 3 | Subchart |            |         |                |        | parent  | prometheus-node-exporter | 4.24.*  | prometheus-node-exporter.enabled | ✅      |
| 4 | Subchart |            |         |                |        | parent  | prometheus-pushgateway   | 2.4.*   | prometheus-pushgateway.enabled   | ✅      |
+---+----------+------------+---------+----------------+--------+---------+--------------------------+---------+----------------------------------+---------+
 100% [===============] (5/5) Parsing charts...
+---+--------------------------+---------------+---------------------------------------------+----------------------------------------------------------------+
| # | HELM CHART               | CHART VERSION | HELM VALUE PATH                             | IMAGE                                                          |
+---+--------------------------+---------------+---------------------------------------------+----------------------------------------------------------------+
| 0 | prometheus               | 25.8.0        | server.image.digest                         | quay.io/prometheus/prometheus:v2.48.0                          |
|   |                          |               | server.image.repository                     |                                                                |
|   |                          |               | server.image.tag                            |                                                                |
| 1 | prometheus               | 25.8.0        | configmapReload.prometheus.image.digest     | quay.io/prometheus-operator/prometheus-config-reloader:v0.67.0 |
|   |                          |               | configmapReload.prometheus.image.repository |                                                                |
|   |                          |               | configmapReload.prometheus.image.tag        |                                                                |
| 2 | alertmanager             | 1.7.*         | image.repository                            | quay.io/prometheus/alertmanager:v0.26.0                        |
|   |                          |               | image.tag                                   |                                                                |
| 3 | kube-state-metrics       | 5.15.*        | image.repository                            | registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1  |
|   |                          |               | image.sha                                   |                                                                |
|   |                          |               | image.tag                                   |                                                                |
|   |                          |               | image.registry                              |                                                                |
| 4 | prometheus-node-exporter | 4.24.*        | image.digest                                | quay.io/prometheus/node-exporter:v1.7.0                        |
|   |                          |               | image.registry                              |                                                                |
|   |                          |               | image.repository                            |                                                                |
|   |                          |               | image.tag                                   |                                                                |
| 5 | prometheus-pushgateway   | 2.4.*         | image.repository                            | quay.io/prometheus/pushgateway:v1.6.2                          |
|   |                          |               | image.tag                                   |                                                                |
+---+--------------------------+---------------+---------------------------------------------+----------------------------------------------------------------+
+---+--------------------------+---------------+----------------------------------------------------------------+----------+--------+
| # | HELM CHART               | CHART VERSION | IMAGE                                                          | REGISTRY | IMPORT |
+---+--------------------------+---------------+----------------------------------------------------------------+----------+--------+
| 0 | prometheus               | 25.8.0        | quay.io/prometheus/prometheus:v2.48.0                          | ❌       | ✅     |
| 1 | prometheus               | 25.8.0        | quay.io/prometheus-operator/prometheus-config-reloader:v0.67.0 | ❌       | ✅     |
| 2 | alertmanager             | 1.7.*         | quay.io/prometheus/alertmanager:v0.26.0                        | ❌       | ✅     |
| 3 | kube-state-metrics       | 5.15.*        | registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1  | ❌       | ✅     |
| 4 | prometheus-node-exporter | 4.24.*        | quay.io/prometheus/node-exporter:v1.7.0                        | ❌       | ✅     |
| 5 | prometheus-pushgateway   | 2.4.*         | quay.io/prometheus/pushgateway:v1.6.2                          | ❌       | ✅     |
+---+--------------------------+---------------+----------------------------------------------------------------+----------+--------+
|   |                          |               |                                                                |          | 6      |
+---+--------------------------+---------------+----------------------------------------------------------------+----------+--------+
 100% [===============] (5/5) Pushing charts...
{"time":"2024-05-30T17:11:37.045958+08:00","level":"ERROR","msg":"Put \"http://0.0.0.0:5000/v2/prometheus-operator/prometheus-config-reloader/blobs/uploads/f88757cb-bd66-47c6-8732-8b2ed79f8b0a?_state=sSf7oEYh86CKtqXghVxPogjP1jOsNI0HcYLeyci900t7Ik5hbWUiOiJwcm9tZXRoZXVzLW9wZXJhdG9yL3Byb21ldGhldXMtY29uZmlnLXJlbG9hZGVyIiwiVVVJRCI6ImY4ODc1N2NiLWJkNjYtNDdjNi04NzMyLThiMmVkNzlmOGIwYSIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNC0wNS0zMFQwOToxMToxOC4wMjM5NDAyNDZaIn0%3D&digest=sha256%3Aef1ccf1c191dcea79cfb35bfab927099c600056ce1a0ce7675dc5d114ae258f6\": readfrom tcp 127.0.0.1:63733->127.0.0.1:5000: stream error: stream ID 65; INTERNAL_ERROR; received from peer"}

See there was an "ERROR" message, and then I tried to list down the entries:

$ curl http://0.0.0.0:5000/v2/_catalog
{"repositories":["busybox","charts/alertmanager","charts/kube-state-metrics","charts/prometheus","charts/prometheus-node-exporter","charts/prometheus-pushgateway","kube-state-metrics/kube-state-metrics","prometheus/alertmanager","prometheus/node-exporter","prometheus/prometheus","prometheus/pushgateway","prometheus-operator/prometheus-config-reloader"]}

So I guess the charts and images had been successfully imported.

But it feels hard to judge whether the command was successful if purely looking at the command output.

ChristofferNissen commented 4 months ago

Hello :wave:

Thanks for the suggestion, will look into given a more clear indication that everything went according to plan. The error looks cryptic, just for my information, was you able to run it multiple times with the same output?

ChristofferNissen commented 3 months ago

Hello again @brightzheng100, I have since you opened since issue made use that Helmper exists with non-zero exit code whenever an error occurs instead of elaborating more in the error message, as this is the error message gotten back by the registry server. If you still feel it is not clear that an error occurred, please feel free to reopen the issue.