helm-hub-sync

command module
v0.0.0-...-5f0b9cd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2020 License: Apache-2.0 Imports: 11 Imported by: 0

README

Deprecation Notice

Note: helm-hub-sync is no longer maintained or supported by JFrog. Feel free to review this code for your own POC concepts, but we are not continuing to update it or add features.

For helm-hub-sync replacement we do suggest to use JFrog ChartCenter which is a free Helm chart central repository that was built to help the Helm community find immutable, secure, and reliable charts and have a single source of truth to proxy all the charts from one location.

helm-hub-sync

License Go Report Card Go Doc Release

logo

A command line tool to synchronize Helm Hub repositories with JFrog Artifactory

Why do I need this

That's a really good question to begin with! Helm Hub with the new UI is super awesome, but it only can be used as distributed public repository to search for charts in UI. You might still want to have a single central location where you can find the Helm charts for your organization. helm-hub-sync helps you maintain a virtual repository in Artifactory that can be that single source of truth, using the configuration from Helm Hub.

architecture

Environment variables

To run the app, you'll need to set a few command line variables

  • TIMEINTERVAL: The time in seconds between two successive runs (if not set, or set to -1, only one run will be done)
  • LOGLEVEL: The log level to use (possible values are panic, fatal, error, warn, info, and debug)
  • CONSOLELOG: Boolean value to create human-friendly, colorized output (set to true for console logging)
  • ARTIFACTORY_HOST: The hostname of JFrog Artifactory to connect to (like http://jfrog.local/artifactory)
  • ARTIFACTORY_HELM_REPO: The Helm Virtual Repository to use (like helm)
  • ARTIFACTORY_AUTH_TYPE: The authentication type to use (either basic or apikey)
  • ARTIFACTORY_AUTH_DATA: The authentication data to use (see below for details)
  • ARTIFACTORY_KEEP_LIST: A comma separated list containing Helm Remote repos that will never be removed (like myAwesomeRepo, stable)
  • ARTIFACTORY_KEEP_DELETED_REPOS: Boolean value whether to keep repos that have been removed from the GitHub data (defaults to false)
  • GITHUB_IGNORE_LIST: A comma separated list containing Helm repos that should never be created (like stable, another-repo)

Authentication

helm-hub-sync uses JFrog Artifactory's REST API to update the Helm repositories. The JFrog Artifactory REST API supports a few forms of authentication:

  • Basic authentication using your username and password
    • Set ARTIFACTORY_AUTH_TYPE to basic and ARTIFACTORY_AUTH_DATA to <username>:<password>
  • Basic authentication using your username and API Key.
    • Set ARTIFACTORY_AUTH_TYPE to basic and ARTIFACTORY_AUTH_DATA to <username>:<apikey>
  • Using an access token instead of a password for basic authentication.
    • Set ARTIFACTORY_AUTH_TYPE to basic and ARTIFACTORY_AUTH_DATA to <username>:<token>
  • Using a dedicated header (X-JFrog-Art-Api) with your API Key.
    • Set ARTIFACTORY_AUTH_TYPE to apikey and ARTIFACTORY_AUTH_DATA to your api key>

Install Instructions

The easiest way to install Helm-hub-sync is using the Helm chart

Please follow install instruction from chart's readme

For non Kubernetes environments export the necessary environment variables and run it

./helm-hub-sync

Local development and testing

Building binary

To build helm-hub-sync locally

make build
Docker

To build helm-hub-sync docker image locally (testing docker image build)

make image

Contributing Code

We welcome community contribution through pull requests.

License

This tool is available under the Apache License, Version 2.0.

(c) All rights reserved JFrog

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL