{"id":16737207,"url":"https://github.com/tycooon/helmsnap","last_synced_at":"2025-07-31T02:39:53.286Z","repository":{"id":56876227,"uuid":"432421640","full_name":"tycooon/helmsnap","owner":"tycooon","description":"A tool for creating and checking helmfile snapshots.","archived":false,"fork":false,"pushed_at":"2024-12-28T12:45:58.000Z","size":77,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-15T08:48:57.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tycooon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-27T09:43:43.000Z","updated_at":"2024-12-28T12:46:02.000Z","dependencies_parsed_at":"2023-01-31T02:30:27.992Z","dependency_job_id":null,"html_url":"https://github.com/tycooon/helmsnap","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tycooon%2Fhelmsnap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tycooon%2Fhelmsnap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tycooon%2Fhelmsnap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tycooon%2Fhelmsnap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tycooon","download_url":"https://codeload.github.com/tycooon/helmsnap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244164810,"owners_count":20408989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T00:25:19.012Z","updated_at":"2025-03-21T22:31:28.720Z","avatar_url":"https://github.com/tycooon.png","language":"Ruby","readme":"# Helmsnap\n\n## About\n\nHelmsnap is a tool for generating and checking helmfile snapshots. Example:\n\nGenerate snapshots (uses `helmfile template` under the hood):\n\n```sh\nhelmsnap generate\n```\n\nGenerate snapshots in a temporary directory and check (diff) them against existing snapshots in `helm/snapshots` directory:\n\n```sh\nhelmsnap check\n```\n\nJust build dependencies for each release in a helmfile:\n\n```sh\nhelmsnap dependencies # or `helmsnap deps`\n```\n\nGet the full description of possible arguments:\n\n```sh\nhelmsnap --help\n```\n\nThe typical usage flow:\n\n1. You generate some snapshots using `helmsnap generate` command and check them into your git repo.\n2. You add `helmsnap check` command to your CI (or run it manually on every commit).\n3. In case snapshots differ, you should carefully check the updates and either fix your chart or update the snapshots using `helmsnap generate`.\n\nThis tool can also be useful when you are developing a new chart or updating an existing one: you can generate snapshots and see what is rendered without need to deploy the chart in your cluster.\n\n## Configuration\n\nBy default, helmsnap will render your helmfile using `default` environment and will place snapshots in `helm/snapshots` directory. If you want to configure that, or you need to provide credentials for access to private helm repos, you can create a `.helmsnap.yaml` file and put there configuration that looks like this:\n\n```yaml\nenvs: [staging, production] # `[default]` by default\nsnapshotsPath: somedir/snapshots # `helm/snapshots` by default\ncredentials: # [] by default\n- repo: https://example.com/some/path/to/repo\n  username: someuser\n  password: somepassword\n```\n\nCredentials will be matched by prefix, so if your repo URL is `https://example.com/some/path/to/repo`, you can also put values like `https://example.com/some/path` or `https://example.com` in `credentials.[].repo`.\n\nYou can also override configuration file location using `--config` option.\n\n## Dependencies\n\n- Ruby 3.0+.\n- [Helmfile](https://github.com/roboll/helmfile), which in turn relies on [Helm](https://github.com/helm/helm).\n- Colordiff or diff utility.\n\n## Features\n\n### Helm dependency management\n\nHelmsnap will automatically rebuild your chart dependencies on every snapshot generation or check. In case your dependency is using url to some local helm repo and you don't have a proper repo added, it will add it automatically which is useful in CI. It also will detect local dependencies (those that start with `file://`) and rebuild their dependencies as well.\n\n### Timestamp replacement\n\nHelmsnap will automatically replace all occurencies of patterns that look like timestamps (format like `2022-01-01 00:00:00.000`) in your templates. This is useful in case you have some annotations like `releaseTime` that would break your snapshots checks otherwise.\n\n## Installation\n\nJust install the gem and use the provided `helmsnap` binary.\n\n```sh\ngem install helmsnap\n```\n\nAlaternatively, you can use the [Docker image](https://github.com/tycooon/helmsnap/pkgs/container/helmsnap) with Ruby, helm and helmsnap gem preinstalled. This is useful for CIs or if you don't want to install Ruby and Helmfile on your machine. Here is an example docker command that can be used to generate snapshots:\n\n```sh\ndocker run --rm -it -w /wd -v $PWD:/wd ghcr.io/tycooon/helmsnap helmsnap generate\n```\n\n## CI example\n\nExample job for Gitlab CI:\n\n```yaml\ncheck-snapshots:\n  stage: test\n  image: ghcr.io/tycooon/helmsnap:latest\n  script: helmsnap check\n```\n\n## Contributing\n\nBug reports and pull requests are welcome.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftycooon%2Fhelmsnap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftycooon%2Fhelmsnap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftycooon%2Fhelmsnap/lists"}