Skip to main content
Version: 2.13

Ververica Platform Docker Images

For convenience, Ververica hosts a public Docker registry that contains images of all Ververica Platform components. You can either use this registry directly or host the images yourself in a private registry. Please find more details for both options below.


In order to upgrade to 2.13, update to the latest Ververica Platform Kubernetes Operator Docker image by running docker pull

Ververica Platform Public Registry

The registry is hosted at, and the images of a particular Ververica Platform version are published under the specific version prefix.

We use the following base images for the Ververica Platform images:

  • flink: eclipse-temurin:8-jre-focal (or eclipse-temurin:11-jre-focal, depending on the Java version) is used in flink v1.14.6 and from v1.15.2. Other versions (v1.12.7, v1.13.3 and v1.14.X up to v1.14.5) use openjdk:8-jre-slim-bullseye (or openjdk:11-jre-slim-bullseye, depending on the Java version)
  • vvp-appmanager, vvp-artifact-fetcher, vvp-gateway, vvp-result-fetcher-service: eclipse-temurin:11-jre
  • vvp-ui: nginx:latest

For Ververica Platform 2.13, the following images are available and needed to run Ververica Platform:

RepositoryTagAdditional Tags
v2.13/flink1.17.2-stream3-scala_2.12-java81.17, 1.17.2, 1.17.2-stream3
v2.13/flink1.18.1-stream3-scala_2.12-java81.18, 1.18.1, 1.18.1-stream3
v2.13/flink1.19.0-stream1-scala_2.12-java81.19, 1.19.0, 1.19.0-stream1

The registry hosted by Ververica is provided without SLA. If you require availability guarantees, you should import the Ververica Platform images into your own registry.

Private Registry

We recommend using a private registry for all Ververica Platform images. The setup consists of two steps.

Mirroring the Images

If you wish to host the Ververica Platform images yourself, you will have to pull, re-tag, and push all of the images listed above.

Below is a snippet demonstrating this for one of the images used by Ververica Platform. Just update REGISTRY and IMAGE as necessary.; \
IMAGE=v{shortVersion}/vvp-appmanager:{release}; \
docker pull${IMAGE} && \
docker tag${IMAGE} ${REGISTRY}/${IMAGE} && \
docker push ${REGISTRY}/${IMAGE}

These snippets are provided as examples, and may need to be adapted for your particular operating system/environment.

If you're using a private registry that has restricted network access, you may need to be able to fetch the images, move them, and then load them into the target registry. Below is a simple recipe which builds on the one above to accomplish this.; \
IMAGE=v{shortVersion}/vvp-appmanager:{release}; \
ARCHIVE=$(echo ${IMAGE} | sed -e 's/.*\///g' -e 's/:/-/g').tar.gz; \
docker pull${IMAGE} && \
docker tag${IMAGE} ${REGISTRY}/${IMAGE} && \
docker save ${REGISTRY}/${IMAGE} | gzip > ${ARCHIVE}; \
IMAGE=v{shortVersion}/vvp-appmanager:{release}; \
ARCHIVE=$(echo ${IMAGE} | sed -e 's/.*\///g' -e 's/:/-/g').tar.gz; \
gunzip -c ${ARCHIVE} | docker load && \
docker push ${REGISTRY}/${IMAGE}

These snippets are provided as examples, and may need to be adapted for your particular operating system/environment.

Configuring the Helm Chart

To configure Ververica Platform to use your registry you point vvp.registry in your Helm values file to your private registry:


If your private Docker registry requires authentication from within Kubernetes, you first need to create a Kubernetes Secret containing credentials for your registry in every Kubernetes namespace that the platform uses, i.e. the platform's namespace and all namespaces listed under rbac.additionalNamespaces.

Second, you need to configure Ververica Platform as well as your Deployments to use this secret as an imagePullSecret for all pods:

  • The Kubernetes service account used by Ververica Platform needs to use your secret as an imagePullSecret. If you let helm create the service account for you (rbac.create: true), this done by setting rbac.imagePullSecret. If you pass a service account during installation with helm (rbac.serviceAccountName: <existing-service-account>) this service account needs to use your secret, too.

  • For every Apache Flink® Deployment configure your secret as an image pull secret as described in Image Pull Secrets. In order to use this secret as a default for all Deployments, you can use Global Deployment Defaults.