norwoodj/helm-docs

[Feat]: pre-commit helm-docs-container pin docker version by default

umarhussain15 opened this issue · 0 comments

Is your feature request related to a problem? Please describe and/or link to a bug issue

Currently, pre-commit hook helm-docs-container is configured to use latest tag of the docker image. This has the implication that if the version of hook is updated (for example from v1.12.0 to v1.13.0) the local docker image latest is still pointing to v1.12.0. The user has to manually call the docker pull jnorwood/helm-docs:latest to get a newer image.

Expected Behavior

When the version of hook is updated, it will also trigger the latest image pull from docker registry.

Current Behavior

When the hook version is updated, the latest version of image is not pulled locally with latest tag

Possible Solution

Use specific tag in pre-commit-hooks.yaml matching the release version of helm-docs. This will ensure that always the correct version of docker image is used matching the rev value in pre-commit.

For helm-docs release v1.13.0 the pre-commit-hooks.yaml will be:

- id: helm-docs-container
  args: []
  description: Uses the container image of 'helm-docs' to create documentation from the Helm chart's 'values.yaml' file, and inserts the result into a corresponding 'README.md' file.
  entry: jnorwood/helm-docs:v1.13.0 # <--- Here the version matches the helm-docs release
  files: (README\.md\.gotmpl|(Chart|requirements|values)\.yaml)$
  language: docker_image
  name: Helm Docs Container
  require_serial: true

Now when user uses the v1.13.0 of pre-commit hook helm-docs-container, they will get jnorwood/helm-docs:v1.13.0 version.

repo:
- repo: https://github.com/norwoodj/helm-docs
  rev: v1.13.0
  hooks:
  - id: helm-docs-container
    args:
      # Make the tool search for charts only under the `charts` directory
    - --chart-search-root=charts

Context

The issue came to light when one developer updated the hook version to v1.13.0, and they didn't have the docker image locally, so the latest image was downloaded. When another developer (who already had the latest docker image pointing to v1.12.0) pulled the commit with newer hook version and ran pre-commit, the autogenerated version value in README was reverted to v1.12.0 from v1.13.0.


I'm not sure how it can be automated? I'm thinking that it can be done when new tag is calculated, then a new commit is created with modified pre-commit-hooks.yaml containing new version tag and finally this commit is tagged with new tag.
Maybe this can be added as hook in goreleaser which can use .Tag?