Audience

Apache Tika Committer or PMC who want to release tika-helm; the official Apache Tika Helm Chart.

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, GDAL, etc.

Although these two upstream container images exist, only one Helm Chart is required. This is because the tika-docker image can be defined dynamically when the tika-helm chart is deployed into a K8s environment.

The tika-helm Chart uses the tika-docker FULL image by default.

Semantic Versioning

tika-helm Charts follow the Semantic Versioning 2.0.0 specification. This is to say that regardless of the upstream tika-docker container image versioning scheme, each tika-helm release version complies with Semver 2.0.0.

Release Process

Creating Git Release

For each new upstream tika-docker FULL release we need to update 3 lines of code, namely

appVersion needs to match the corresponding upstream tika-docker FULL 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.

Tag and pushb to tika-helm origin
export RELEASE_VERSION=v3.2.2

git add -A && \
git commit -m "Release tika-helm $RELEASE_VERSION" && \
git push origin main && \
git tag -a $RELEASE_VERSION -m "Release tika-helm $RELEASE_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

Install prerequisites
# 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

Create helm chart package

Push the Helm Chart to Apache JFrog
# Add the tika Helm repository
helm repo add tika https://apache.jfrog.io/artifactory/tika

# Define your username and password for the Apache JFrog service
export HELM_REPO_USERNAME="myuser"
export HELM_REPO_PASSWORD="mypass"

# Push the tika helm artifact to Artifactory
helm push-artifactory . https://apache.jfrog.io/artifactory/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