Audience
Apache Tika Committer or PMC who want to release tika-helm.
Questions/Troubleshooting
Reach out to lewismc[at]apache[dot]org and also on dev@tika mailing list.
Prerequisites
Apache JFrog Artifactory Repository and Access
You need permissions to release the Apache Tika Helm chart to the Apache Infra Artifactory instance. This is controlled by the ASF Infra team and can be requested through a INFRA JIRA ticket. Make sure to tag the ticket with the Artifactory label.
tika-helm repo
This Github repository contains the Chart which needs to be configured for minimal and full Tika Docker images. If you are an Apache Tika Committer or PMC you should already have access to this repository. If not, then you will want to check over on the dev@tika mailing list.
General Information
tika-docker Image Types
There are two image types:
- Minimal - containing just Apache Tika and it's base dependencies (i.e. Java)
- Full - containing Apache Tika, it's dependencies, as well as Tesseract and GDAL.
This is to say that for every stable release of the Apache Tika source binaries, two (minimal and full) Docker images are released.
Release Process
Creating Git Release
Based on the above general information, we therefore make two releases of the corresponding Helm Chart. In order to do this, we need to update 3 lines of code, namely
- https://github.com/apache/tika-helm/blob/main/Chart.yaml#L22
- https://github.com/apache/tika-helm/blob/main/Chart.yaml#L23
- https://github.com/apache/tika-helm/blob/main/values.yaml#L26
appVersion needs to match the corresponding upstream tika-docker release tag.
Once you have examined the changes, you can commit them to main branch. Then tag them from there and push the tag to the tika-helm repository.
$ git add -A $ git commit -m "Release branch for tika-helm ${target_version}" $ git push origin main $ git tag -a ${target_version} -m "Release tika-helm ${target_version}" $ git push --tags
Once this is done, you can navigate to the ${target_version} tag you just pushed and 'release' it (by clicking on the three dots button on the right hand side).
Promoting Release to the Apache JFrog Artifactory Repository
N.B. You should still be in the ${target_version} branch
Prerequisites
- Helm
- helm-push-artifactory-plugin (if you are using Helm v3 (recommended) then add
--version 1.0.2
), for example
# Assuming Mac $ brew install helm # Which will install Helm >=3.X $ helm plugin install https://github.com/belitre/helm-push-artifactory-plugin --version 1.0.2 # Which is required for >= Helm 3.X ... Installing plugin for Helm v3... Downloading and installing helm-push-artifactory v1.0.2 ... https://github.com/belitre/helm-push-artifactory-plugin/releases/download/v1.0.2/helm-push-artifactory-v1.0.2-darwin-amd64.tar.gz Installed plugin: push-artifactory
Promoting the Release
# Add the tika Helm repository $ helm repo add tika https://apache.jfrog.io/artifactory/tika # Push the tika helm artifact to Artifactory $ helm push-artifactory . https://apache.jfrog.io/artifactory/tika --username '${username}' --password "${password}" ... Pushing tika-1.26-full.tgz to https://apache.jfrog.io/artifactory/tika/tika/tika-1.26-full.tgz... Done. Reindex helm repository tika...
Conclusion
Congratulations, by this stage you've just released the tika-helm Helm Chart. Go ahead and make some release announcements... probably on user@ and dev@ tika.apache.org mailing list.
Future Work
As of the following additions can be added to the Chart
- - TIKA-4232Getting issue details... STATUS
- Generate Helm Docs prior to each release
- Automate publishing to Artifactory on each merge commit/push to main branch or maybe via https://github.com/marketplace/actions/helm-publish-action
- Create pull request and allow automerge
- Bump helm chart version
- - TIKA-4233Getting issue details... STATUS