helm-hub-sync
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 used to be a proper repository that contained all charts themselves and in essence was a central registry for Helm charts. While the new UI is super awesome, 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.
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
, anddebug
) - 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
orapikey
) - 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_AUTHTYPE
tobasic
andARTIFACTORY_AUTH
to<username>:<password>
- Set
- Basic authentication using your username and API Key.
- Set
ARTIFACTORY_AUTHTYPE
tobasic
andARTIFACTORY_AUTH
to<username>:<apikey>
- Set
- Using an access token instead of a password for basic authentication.
- Set
ARTIFACTORY_AUTHTYPE
tobasic
andARTIFACTORY_AUTH
to<username>:<token>
- Set
- Using a dedicated header (X-JFrog-Art-Api) with your API Key.
- Set
ARTIFACTORY_AUTHTYPE
toapikey
andARTIFACTORY_AUTH
toyour api key>
- Set