kbld inspect should have an output option for lock file
- Dominant language
- Go
- Stars
- 329
- Forks
- 52
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the problem/challenge you have**
I am bringing in new capabilities, for example from a `helm template` call, and I want to quickly and efficiently build a kbld configuration file that I know encompasses the images outlined in that template.
```
$ helm template harbor bitnami/harbor | kbld inspect -f -
Images
Image docker.io/bitnami/chartmuseum:0.12.0-debian-10-r261
Metadata -
Resource deployment/harbor-chartmuseum (apps/v1) cluster
... [removed for brevity]
Image docker.io/bitnami/redis:6.0.9-debian-10-r66
Metadata -
Resource statefulset/harbor-redis-master (apps/v1) namespace: default
14 images
Succeeded
```
This output, while very helpful, requires a fair bit of massaging to get into a kbld config format. There is a JSON output, but even that output is a far cry from kbld's config format.
**Describe the solution you'd like**
Something along these lines:
```
$ helm template harbor bitnami/harbor | kbld inspect -f - -o kbld
apiVersion: kbld.k14s.io/v1alpha1
kind: Config
minimumRequiredVersion: 0.24.0
overrides:
- image: docker.io/bitnami/chartmuseum:0.12.0-debian-10-r261
- image: docker.io/bitnami/harbor-adapter-clair:2.1.2-debian-10-r34
- image: docker.io/bitnami/harbor-adapter-trivy:2.1.2-debian-10-r37
- image: docker.io/bitnami/harbor-clair:2.1.2-debian-10-r33
- image: docker.io/bitnami/harbor-core:2.1.2-debian-10-r30
- image: docker.io/bitnami/harbor-jobservice:2.1.2-debian-10-r31
- image: docker.io/bitnami/harbor-notary-server:2.1.2-debian-10-r30
- image: docker.io/bitnami/harbor-notary-signer:2.1.2-debian-10-r31
- image: docker.io/bitnami/harbor-portal:2.1.3-debian-10-r0
- image: docker.io/bitnami/harbor-registry:2.1.2-debian-10-r31
- image: docker.io/bitnami/harbor-registryctl:2.1.2-debian-10-r31
- image: docker.io/bitnami/nginx:1.19.6-debian-10-r25
- image: docker.io/bitnami/postgresql:11.10.0-debian-10-r52
- image: docker.io/bitnami/redis:6.0.9-debian-10-r66
```
(I used `helm template harbor bitnami/harbor | kbld inspect -f - --json | jq -r '.Tables[0].Rows[].image'` to get the list of images)
**This would also need to accept a kbld config as input, since some helm charts or similar manifests hide images in places that need to be added to the `searchRules`**
**Anything else you would like to add:**
For super bonus points, and possibly outside the scope of this request, allow something to keep the original `helm template` in the output as well, so a `--preserve-output ` option or similar:
```
$ helm template harbor bitnami/harbor | kbld inspect -f - --preserve-output -o kbld
---
apiVersion: kbld.k14s.io/v1alpha1
kind: Config
minimumRequiredVersion: 0.24.0
overrides:
- image: docker.io/bitnami/chartmuseum:0.12.0-debian-10-r261
- image: docker.io/bitnami/harbor-adapter-clair:2.1.2-debian-10-r34
- image: docker.io/bitnami/harbor-adapter-trivy:2.1.2-debian-10-r37
- image: docker.io/bitnami/harbor-clair:2.1.2-debian-10-r33
- image: docker.io/bitnami/harbor-core:2.1.2-debian-10-r30
- image: docker.io/bitnami/harbor-jobservice:2.1.2-debian-10-r31
- image: docker.io/bitnami/harbor-notary-server:2.1.2-debian-10-r30
- image: docker.io/bitnami/harbor-notary-signer:2.1.2-debian-10-r31
- image: docker.io/bitnami/harbor-portal:2.1.3-debian-10-r0
- image: docker.io/bitnami/harbor-registry:2.1.2-debian-10-r31
- image: docker.io/bitnami/harbor-registryctl:2.1.2-debian-10-r31
- image: docker.io/bitnami/nginx:1.19.6-debian-10-r25
- image: docker.io/bitnami/postgresql:11.10.0-debian-10-r52
- image: docker.io/bitnami/redis:6.0.9-debian-10-r66
---
# Source: harbor/charts/postgresql/templates/secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: harbor-postgresql
labels:
app.kubernetes.io/name: postgresql
helm.sh/chart: postgresql-10.2.1
app.kubernetes.io/instance: harbor
app.kubernetes.io/managed-by: Helm
type: Opaque
data:
postgresql-postgres-password: "cEhlTzU4RFFRbQ=="
postgresql-password: "bm90LXNlY3VyZS1kYXRhYmFzZS1wYXNzd29yZA=="
---
# Source: harbor/templates/chartmuseum/chartmuseum-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: harbor-chartmuseum-secret
labels:
app.kubernetes.io/name: harbor
helm.sh/chart: harbor-9.3.1
app.kubernetes.io/instance: harbor
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: chartmuseum
type: Opaque
data:
CACHE_REDIS_PASSWORD: ""
---
... [rest removed]
```
Contributor guide
Assessment
This issue has not been assessed yet.