v0.3.0
Major changes:
- More and better docs: all docs have been rewritten and moved to the docs/directory. These new docs (especiallydeveloping.md) are geared around making it far easier for new developers to understand how to work with the scripts.
- Support for nested packages: instead of forcing all packages to live in packages/PACKAGE, you can now nest packages within folders. This feature can be used to nest versions of packages, e.g.packages/longhorn/longhorn-1.1andpackages/longhorn/longhorn-1.2. In addition, thePACKAGEenv var now supports preparing all packages under the path defined (e.g.PACKAGE=longhornwould prepare both versions of longhorn in the example given above).
- charts/and- assets/directories are indexed on Chart, not Package: For example, now if you prepare- packages/my-longhorn/longhorn-1.1and- packages/my-longhorn/longhorn-1.2, both charts will be located under- charts/longhorn/VERSIONand- assets/longhorn/CHART-VERSION.tgz; the name of the package that generated the chart (e.g.- my-longhorn) will not be considered.
- Moving to rancher/system-charts model for releases: Instead of using specific scripts that need to be run for a release to move contents from a dev branch to a release branch, the dev branch will simply be a fork of the release branch.
- make zip,- make unzip,- make index: to make it easier to work with charts that have already been released, utility commands have been provided to automatically dump the contents of- charts/into- assets/(i.e.- make zip), dump the contents of- assets/into- charts/(i.e.- make unzip), or update the- index.yamlwhile preserving changes such as timestamps (e.g.- make index).
- Complete redesign of make validateand introducingrelease.yaml: The validation process has been refactored to support the new single branch system-charts model and a newrelease.yamlfile will need to be updated every time a chart is added, updated, or modified from the perspective of the release branch. Please see the docs for more information!
- Standardized Chart.yamlpatches: Before producing a patch, the upstream chart'sChart.yamlis standardized (e.g. orders annotations and keys alphabetically) to ensure that the patches produced are more clean.
Experimental major features:
- Local caching for GitHub-Repo-based Packages: setting USE_CACHE=1will ensure that any GH repo that is pulled will be cached in./.charts-build-scripts/.cache/.gitrepos/*, which speeds upmake prepare,make patch, andmake charts
- Support for non-Helm sources (e.g. manifests): package.yamlnow supports pointing to a set of manifests.
Misc updates:
- make list: a new utility command that allows you to list packages that are currently being targeted by the script, based on the contents of the- PACKAGEenv var
- make standardize: a new utility command that standardizes any repository with Helm charts under- charts/to a charts-build-scripts friendly repository. Used under the hood for the new validate process.
- make chartsand- make cleando not fail if no packages are found
- packageVersionsare now enforced to be 1+
- ./bin/charts-build-scripts validatenow supports- --localor- --remotevalidation
- make preparewill fail if the commit hash is invalid
- Added a migration script to cherry-pick changes on Git to the packages/directory
- ./scripts/pull-scriptsis more friendly to dev builds
- ./scripts/package-cican now be run from the repository root