You have created a repository on your Repsy Open Source instance. You are now ready to publish Helm charts to your registry.
Repsy supports two protocols for publishing charts. Use the Classic protocol if you work with the helm cm-push plugin, or the OCI protocol if you prefer the native helm push command available in Helm 3.8+.
Both protocols serve the same repository and use the same address on your instance: https://<your-repsy-host>/<repo-name> for the classic protocol and oci://<your-repsy-host>/<repo-name> for OCI. There is no username in the address, and https://<your-repsy-host> stands for the address of the package protocol port of your instance, for example http://localhost:9090 for a local start, see Ports and Repository URLs. Publishing always needs credentials, also to a public repository: use your username and password, or a deploy token with the Read/Write access type in place of the password.
For complete walk-throughs, including the rules Repsy applies to an upload and what each refusal looks like, see Publishing and Installing Charts the Classic Way and Publishing and Pulling Charts over OCI.
Classic Protocol
Install the helm-push plugin
The classic protocol requires the helm-push plugin from ChartMuseum. Install it once with:
helm plugin install https://github.com/chartmuseum/helm-push
Helm 4 refuses to install a plugin that has no signature, and the plugin publishes none. With Helm 4, add --verify=false to the command above.
Package your chart
Run helm package from the directory that contains your chart. Helm will produce a .tgz archive named after your chart and its version:
helm package ./my-chart
Add your Repsy Helm repository
Register your Repsy repository as a named Helm repository so the plugin knows where to push:
helm repo add <repo-name> https://<your-repsy-host>/<repo-name> \
--username <username> \
--password <password-or-token>
The credentials are needed to push, also when the repository is public. helm cm-push uses the ones stored by helm repo add, and a deploy token goes where the password goes: the username can be any value.
Push the chart
Use helm cm-push to upload the packaged archive to your registry:
helm cm-push my-chart-1.0.0.tgz <repo-name>
If the upload is successful, the chart will be available in your Repsy repository immediately.
OCI Protocol
Log in to the Repsy OCI registry
Authenticate with the Repsy container registry endpoint using the helm registry login command:
helm registry login <your-repsy-host> \
--username <username> \
--password <password-or-token>
The credentials are needed to push, also when the repository is public. A deploy token goes where the password goes: the username can be any value. helm registry login takes the host only, without the repository name. If your instance serves plain HTTP, add --plain-http to helm registry login and to the other OCI commands below.
Package your chart
Run helm package to create a .tgz archive from your chart directory:
helm package ./my-chart
Push the chart
Push the packaged archive to your Repsy OCI repository:
helm push my-chart-1.0.0.tgz \
oci://<your-repsy-host>/<repo-name>
Congratulations, you have published a Helm chart to your registry! You can now install it into any Kubernetes cluster.