https://github.com/rimusz/helm-hub-sync
https://github.com/rimusz/helm-hub-sync
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rimusz/helm-hub-sync
- Owner: rimusz
- License: apache-2.0
- Created: 2019-08-14T07:28:35.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-08-26T16:36:15.000Z (about 6 years ago)
- Last Synced: 2025-02-14T08:51:49.215Z (8 months ago)
- Language: Go
- Size: 83 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# helm-hub-sync
[](https://goreportcard.com/report/github.com/rimusz/helm-hub-sync)
[](http://godoc.org/github.com/rimusz/helm-hub-sync)
[](https://github.com/rimusz/helm-hub-sync/releases/latest)
A command line tool to synchronize [Helm Hub](https://github.com/helm/hub) repositories with [JFrog Artifactory](https://jfrog.com/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`, 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_AUTHTYPE` to `basic` and `ARTIFACTORY_AUTH` to `:`
* Basic authentication using your username and API Key.
* Set `ARTIFACTORY_AUTHTYPE` to `basic` and `ARTIFACTORY_AUTH` to `:`
* Using an access token instead of a password for basic authentication.
* Set `ARTIFACTORY_AUTHTYPE` to `basic` and `ARTIFACTORY_AUTH` to `:`
* Using a dedicated header (X-JFrog-Art-Api) with your API Key.
* Set `ARTIFACTORY_AUTHTYPE` to `apikey` and `ARTIFACTORY_AUTH` to `your api key>`