You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org

ChartMuseum

From Wikitech-static
Revision as of 12:47, 2 July 2020 by imported>JMeybohm (Initial version)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

ChartMuseum is an open-source Helm Chart Repository written in Go, with support for cloud storage backends like Swift.

It is used to store and serve Helm charts, which are packages of Kubernetes resources that are used to deploy apps to a Kubernetes cluster.

Packaging

The code is hosted in chartmusem and uses Git-buildpackage flow.

Importing a new version

The imported upstream tarballs should include the complete vendor directory.

  • Check out the version (git tag) to import
$ ./debian/repack vX.Y.Z
  • This drops you into a shell with the git tag checked out. Do necessary changes here and commit
$ glide install --strip-vendor
# or
$ go mod vendor
$ git add -f vendor
# git diff --name-status --cached | grep -v 'vendor/' to make sure you only changed vendor
$ git commit -m "added vendor"
  • Exiting the shell will build a tarball to import
$ gbp import-orig /path/to/tarball.tar.xz
  • Push changes (including the tag crated by gpb) to gerrit
$ git push gerrit --all
$ git push gerrit --tags
  • Rebuild the example config file
$ go run generate_config_example.go > usr/share/doc/chartmuseum/examples/chartmuseum.yaml
  • Add a debian/changelog entry (as CR)
$ gbp dch
# Edit debian/changelog
$ git commit
$ git review

Building a new version

  • Check out the git repo on the build host
  • Build the package
$BACKPORTS=yes WIKIMEDIA=yes gbp buildpackage --git-pbuilder --git-no-pbuilder-autoconf --git-dist=buster -sa -uc -us

Resources