Giter Club home page Giter Club logo

concourse-chartmuseum-resource's Introduction

Fetches, verifies and publishes Helm Charts from a running ChartMuseum instance. Harbor works as well, since it uses ChartMuseum under the hood.

This resource works probably best in conjunction with the Helm resource which can be used to perform Helm deployments into Kubernetes clusters.

Requirements

  • A running ChartMuseum instance (this resource has been tested with v0.9.0)

Installation

Add a new resource type to your Concourse CI pipeline:

resource_types:
- name: chartmuseum
  type: docker-image
  source:
    repository: cathive/concourse-chartmuseum-resource
    tag: latest # For reproducible builds use a specific tag and don't rely on "latest".

Source Configuration

  • server_url: Required. The address of the Chartmuseum/Harbor API. For chartmuseum, this'll be something like https://chartmuseum.yourdomain.com/api/charts. For harbor (which uses chartmuseum but changes the API and path), this'll be something like https://harbor.yourdomain.com/api/chartrepo/charts (for the default "library" project) or https://harbor.yourdomain.com/api/chartrepo/<project name>/charts for other projects.

  • chart_name: Required The name of the chart to operate upon.

  • version_range: Optional parameter that can be used to specify a (SemVer) version range that must match when checking for new charts, e.g. =1.2.0, ^2.0.0, ~0.2.3 or *.

  • basic_auth_username: Optional username to be used if your ChartMuseum is username/password protected. If provided, the paramter basic_auth_password must also be specified.

  • basic_auth_password: Optional password to be used if your ChartMuseum is username/password protected. If provided, the paramter basic_auth_username must also be specified.

  • harbor_api: Optional, set to true use the Harbor API (which is different enough to the standard ChartMuseum API not to work)

Behavior

The resource implements all three actions (check, in and out).

check: Check for new versions of the Helm chart

Checks for new versions of the specified Helm chart. If a semver version range has been specified in the sourceconfiguration it will be honored when checking new versions.

in: Fetches the chart and (optionally) verifies it's provenance

Places the JSON object that describes the Helm chart into the destination directory along with the package and it's provenance file.

The basename of these three files will be in the format ${chart_name}-${chart_version} unless overwritten by the parameter target_basename.

"in" Parameters

  • target_basename: Optional parameter that can be used to change the name of the input files that will be written.

out: Push an updated version of the Helm chart

"out" Parameters

  • chart: Required Path to the tgz-archive or a folder that contains the chart to be uploaded. If a folder has been specified instead of a ".tgz" file, this folder will be packaged up prior to uploading it's contents to the ChartMuseum instance.

  • force: Optional parameter that can be used to force the upload of the chart, even if the version to be uploaded does already exist on the server. Enforcement only works, if the ChartMuseum server has not been started with the --disable-force-overwrite flag, though.

  • version: Optional parameter that can be used to override the "version" field in the chart's Chart.yaml file. If the override version is stored in a file, you can use the parameter version_file instead.

  • version_file: Optional parameter that points to a file that contains a version string that should be used to override the version specified in the chart's Chart.yaml file.

  • sign: Optional parameter that indicates if the chart package should be signed using a GPG key. If set to true either key_data or key_file must be specified as well.

  • key_data: If sign has been set to true, this parameter can be used to pass the key to be used to sign the chart package.

  • key_file: If sign has been set to true, this parameter can be used to pass the location of a file that contains the GPG key that shall be used to sign the chart package.

  • key_passphrase: If sign has been set to true this parameter can be used to specifcy the passphrase that protects the GPG signing key to be used to sign the chart package.

concourse-chartmuseum-resource's People

Contributors

dan1el avatar doughoke avatar funkypenguin avatar headcr4sh avatar maxdaten avatar samrees avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.