# drone-helm-push
- [Synopsis](#Synopsis)
- [Parameters](#Paramaters)
- [Notes](#Notes)
- [Plugin Image](#Plugin-Image)
- [Examples](#Examples)
## Synopsis
This plugin is designed to streamline the packaging and distribution of Helm charts to a Container registry.
Currently, it supports pushing Helm charts to Docker Hub and Google Artifact Registry.
To learn how to utilize Drone plugins in Harness CI, please consult the provided [documentation](https://developer.harness.io/docs/continuous-integration/use-ci/use-drone-plugins/run-a-drone-plugin-in-ci).
## Parameters
| Parameter | Choices/Defaults | Comments |
| :------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :--------------------------------------------------------- |
| registry_url
`string` `required` | | Docker registry where the packaged chart will be published |
| chart_path
`string` `required` | | Directory containing the helm chart |
| registry_username
`string` `required` | | Username to login to the above registry. |
| registry_password
`string` `required` | | PAT / access token to authenticate |
| registry_namespace
`string` `required` | | Namespace under which the chart will be published |
| gcloud_project_id
`string` | | Google Artifact Repository project ID |
## Notes
If you aim to push Helm Charts to Google Artifact Registry (GAR):
- Set the registry URL to `LOCATION-docker.pkg.dev`
- use `oauth2accesstoken` as username and `access-token` as token. Refer to this documentation for generating an access token.
- use `REPO_ID` as `registry_namespace` and `PROJECT_ID` as `gcloud_project_id`
In case of Docker Hub:
- Set the registry URL to registry.hub.docker.com
Review the "[plugin image](#plugin-image)" section to identify the available tags for supported architectures, and then use these tags in the Docker Image during the plugin step.
For more details check the [examples](#Examples) section.
## Plugin Image
The plugin `plugins/helm-push` is available for the following architectures:
| OS | Tag |
| ------------- | ---------------------------- |
| latest | `linux arm64/amd64, windows` |
| linux/amd64 | `linux-amd64` |
| linux/arm64 | `linux-arm64` |
| windows/amd64 | `windows-amd64` |
## Examples
```
# Plugin YAML
# DockerHub Example
- step:
type: Plugin
name: Push Helm Chart to DockerHub
identifier: helm_chart_docker
spec:
connectorRef: harness-docker-connector
image: plugins/helm-push
settings:
registry_url: registry.hub.docker.com
registry_username: <+variable.docker_username>
registry_password: <+secrets.getValue("docker_pat")>
chart_path: chart
registry_namespace: <+variable.namespace>
- step:
type: Plugin
name: Push Helm Chart to GAR
identifier: helm_chart_gar
spec:
connectorRef: harness-docker-connector
image: plugins/helm-push
settings:
registry_url: LOCATION-docker.pkg.dev
registry_username: oauth2accesstoken
registry_password: <+secrets.getValue("access_token")>
chart_path: chart
gcloud_project_id: PROJECT_ID
registry_namespace: REPO_ID
```
> ℹ️ If you notice any issues in this documentation, you can [edit this document](https://github.com/harness-community/drone-push-helm-chart-docker-registry/blob/main/README.md) to improve it.