All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add
HELM_S3_DYNAMIC_REGION_ENABLEDenvironment variable to disable dynamic bucket region discovery. Useful with custom S3-compatible endpoints or in air-gapped environments where the plugin would otherwise wait for a timeout trying to reachs3.amazonaws.com. (Refs: #599)
- Supported (and tested against) Helm versions updated to
3.20.2and3.21.0.
- Updated dependencies to pull vulnerability fixes
(
google.golang.org/grpc,github.com/containerd/containerd,github.com/moby/spdystream). (Refs: #586 #594 #601 #602)
-
Supported (and tested against) Helm versions updated to
3.18.6and3.19.0. -
Go updated to
1.25.3.
- Add support for signed charts using standard helm provenance mechanism.
The
.provfile is pushed to the S3 bucket along with the chart, and automatically fetched when helm command is used with--verifyflag to verify the chart signature. (Refs: #518 #150)
-
Go updated to
1.24.3. -
Supported (and tested against) Helm versions updated to
3.17.3and3.18.1.
- Helm v2 support is deprecated and will be removed in the next minor release. Helm v2 reached its end of life almost 5 years ago. Switch to Helm v3.
- Go updated to
1.22.11.
- Fixed windows installation that was broken since
0.16.0(Refs: #462 #466 #487 #489. Thanks to @arahmangulov @salehparsa @omerfsen)
Windows installation is broken in this release. Please use 0.16.3 or later.
- Go updated to 1.22.5 [Refs: #448]
Windows installation is broken in this release. Please use 0.16.3 or later.
-
generatedtimestamp field in the index file is now updated with current time on push, reindex and delete. [Refs: #325] thanks to @josephprem -
Supported (and tested against) Helm versions updated to 3.14.4 and 3.15.2. [Refs: #439]
-
Go updated to 1.22. [Refs: #436]
Windows installation is broken in this release. Please use 0.16.3 or later.
- Added
--verboseglobal flag. This flag enables debug output. Currently onlyhelm s3 reindexcommand supports it, but other commands may be updated in the future. [Refs: #320]
-
Supported (and tested against) Helm versions updated to 3.12.3 and 3.13.2.
-
Helm version detection now fallbacks to Helm v3 in case of errors, as Helm v2 is deprecated for 3 years already. [Refs: #334]
-
Refactored install script so now the plugin does not require bash. This solves a few issues with installing the plugin on some distributions. [Refs: #262 #273 #241] thanks to @yonahd and @jouve
-
Fixed issues when the plugin was erroneously detecting Helm v2 instead of Helm v3. [Refs: #269 #221] thanks to @clhuang
-
Added more context info to errors returned by the plugin, so that it is easier to understand what went wrong, e.g. what chart failed during
helm s3 reindex.
- Fixed a bug introduced in 0.15.0 where
helm s3 initfailed if therepositories.yamlfile did not exist, e.g. immediately after helm was installed. [Refs: #301 #300]
-
helm s3 initnow supports--forceand--ignore-if-existsflags.--forceflag replaces the index file if it exists.--ignore-if-existsflag allows to exit normally without triggering an error if the index file already exists. [Refs: #207 #73] -
Added support for AWS IAM Identity Center (aka AWS SSO). See README for instructions. [Refs: #274 #143]
- Supported (and tested against) Helm versions updated to 3.11.3 and 3.12.3.
-
Updated dependencies which fixes potential security vulnerabilities.
-
Introduced minor documentation improvements.
-
The plugin command line interface changed to use cobra instead of kingpin. This provides more compatibility and the same UX as in Helm. [Refs: #202]
-
Go updated to 1.19. [Refs: #199]
-
Supported (and tested against) Helm versions updated to 3.9.3. [Refs: #201]
-
Completed the migration of the CI pipeline to Github Actions. [Refs: #166 #205]
- Fixed a bug where the plugin failed to fetch charts with special characters
in version (e.g.
v1.0.1+build.123). [Refs: #158 #204]
- Added support for Linux ARM. [Refs: #175]
-
Supported (and tested against) Helm versions updated to 3.8.2 and 3.9.2. Deprecated Helm version 2.17.0 is still supported, but will be removed in one of the following plugin releases. [Refs: #176 #194 #195]
-
Fixed an issue where
helm s3 deletefailed on charts previously pushed with--relativeflag. [Refs: #134 #191] -
Fixed an issue where plugin installation failed in Alpine images. [Refs: #152 #159] thanks to @sanyer
- Potentially vulnerable Go module dependencies updated to latest patched versions. [Refs: #169] thanks to @allaryin
-
Added Dependabot to manage dependency updates. [Refs: #178]
- Support for Windows. [Refs: #160] thanks to @jwenz723
- Support for Apple Silicon (Mac ARM). [Refs: #167]
- Some parts of CI pipelines were moved to GitHub Actions. [Refs: #162 #163 #165]
- Go updated to 1.16. [Refs: #162]
- Added dynamic bucket region discovery that removes the need for setting region manually via
HELM_S3_REGIONetc. in the majority of cases. See #146 for details on how this works. [Refs: #146] Many thanks to @pregnor
-
Set supported Helm versions to v2.17, v3.4, v3.5. [Refs: #137]
-
Integration tests were reworked into Go e2e tests, all legacy tests removed. [Refs: #136]
-
AWS SDK updated to v1.37.18 to support AWS SSO [Refs: #123 #138]
-
Added support for
HELM_S3_REGIONenvironment variable to override AWS region for bucket location. [Refs: #51 #117] -
Added support for relative URLs in repository index: charts can be pushed with
--relativeflag. [Refs: #121 #122]
- Update Helm versions the plugin is tested against: v2.16, v2.17, v3.3, v3.4. [Refs: #125]
helm versionnow has optional flag--modethat additionally prints the mode (Helm version) in which the plugin operates, either v2 or v3.- Added
HELM_S3_MODEthat can be used to forcefully change the mode (Helm version), in case when the plugin does not detect Helm version properly.
- Changed the way the plugin detects Helm version. Now it parses
helm versionoutput instead of checkinghelm envcommand existence.
-
Helm v3 support. The plugin can detect Helm version and use the corresponding "mode" to operate properly. This means that Helm v2 is still supported, and will be until the sunset of v2 (approximately until the summer of 2020). [Refs: #95 #98]
-
The plugin is now also distributed as Docker images. Images are pushed to Docker Hub tagged with plugin release version and suffixed with Helm version. The image built from master branch is also available, note that it should be only used for playing and testing, it is strongly discouraged to use that image for production use cases. Refer to https://hub.docker.com/r/hypnoglow/helm-s3 for details and all available tags. [Refs: #79 #88]
-
Migrate to go modules & update Go to 1.12. [Refs: #86] @moeryomenko
-
CI now runs tests on multiple Helm versions: v2.14, v2.15, v2.16, v3.0. [Refs: #89 #97]
-
Huge rework on internal Helm integration code to provide support for both Helm v2 and v3. [Refs: #95 #98]
-
Bumped almost all dependencies to more actual versions. Helm SDK now includes both v2.16.1 and v3.0.0. [Refs: #74 #69 #87] @willejs
- Fixed incorrect s3 url when "proxy" runs on uninitialized repository. [Refs: #77 #78] @horacimacias
-
Added possibility to enable S3 serverside encryption. [Refs: #52] @nexusix
-
Added possibility to specify Content-Type for uploaded charts. [Refs: #59 #60] @bashims
-
Added checksum verification on plugin installation. [Refs: #63]
-
On
helm s3 reindex, only*.tgzfiles in the bucket directory are taken into account, everything else is ignored. [Refs: #57 #58] @kylehodgetts -
Default Content-Type for uploaded charts is set to
application/gzip. [Refs: #59 #60] @bashims -
makeis no longer required to install the plugin. [Refs: #62 #64] @willhayslett
- Added global
--aclflag to address issues for setups with multiple Amazon accounts. Thanks to @razaj92 for the Pull Request! [Ref: #37] - Added
--dry-runflag tohelm s3 pushcommand. It simulates a push, but doesn't actually touch anything. This option is useful, for example, to indicate if a chart upload would fail due to the version not being changed. [Ref: #44] - Added
--ignore-if-existsflag tohelm s3 pushcommand. It allows to exit normally without triggering an error if the pushed chart already exists. A clean exit code may be useful to avoid some error management in the CI/CD. [Ref: #41]
- Moved
helm s3 reindexcommand out of beta, as it seems there are no more issues related to it.