Skip to content

v0.3.0

Compare
Choose a tag to compare
@aiyengar2 aiyengar2 released this 04 Jan 18:22
· 348 commits to master since this release
b21b7fd

Major changes:

  • More and better docs: all docs have been rewritten and moved to the docs/ directory. These new docs (especially developing.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.1 and packages/longhorn/longhorn-1.2. In addition, the PACKAGE env var now supports preparing all packages under the path defined (e.g. PACKAGE=longhorn would 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.1 and packages/my-longhorn/longhorn-1.2, both charts will be located under charts/longhorn/VERSION and 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.yaml while preserving changes such as timestamps (e.g. make index).
  • Complete redesign of make validate and introducing release.yaml: The validation process has been refactored to support the new single branch system-charts model and a new release.yaml file 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.yaml patches: Before producing a patch, the upstream chart's Chart.yaml is 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=1 will ensure that any GH repo that is pulled will be cached in ./.charts-build-scripts/.cache/.gitrepos/*, which speeds up make prepare, make patch, and make charts
  • Support for non-Helm sources (e.g. manifests): package.yaml now 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 PACKAGE env 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 charts and make clean do not fail if no packages are found
  • packageVersions are now enforced to be 1+
  • ./bin/charts-build-scripts validate now supports --local or --remote validation
  • make prepare will fail if the commit hash is invalid
  • Added a migration script to cherry-pick changes on Git to the packages/ directory
  • ./scripts/pull-scripts is more friendly to dev builds
  • ./scripts/package-ci can now be run from the repository root