Vertica images

The following table describes Vertica server and automation tool images:.

The following table describes Vertica server and automation tool images:

Image Tags Description
Minimal image 24.4.0-0-minimal

Optimized for Kubernetes.

This image includes the following packages for UDx development:

  • C++
  • Python
Full image 24.4.0-0

Optimized for Kubernetes, and includes the following packages for machine learning and UDx development:

  • TensorFlow
  • Java 8
  • C++
  • Python
Community Edition 24.4.0-0

A single-node Enterprise Mode image for test environments. For more information, see Vertica community edition (CE).

This image includes the following packages for UDx development:

  • C++
  • Python
VerticaDB operator 24.4.0 The operator monitors the state of your custom resources and automates lifecycle tasks for Vertica on Kubernetes. For installation instructions, see Installing the VerticaDB operator.
Vertica logger 1.0.1 Lightweight image for sidecar logging. The logger sends the contents of vertica.log to STDOUT on the host node. For implementation details, see VerticaDB custom resource definition.
Kafka Scheduler 24.4.0-0 Containerized version of the Vertica Kafka Scheduler, a mechanism that automatically loads data from Kafka into a Vertica database. For details, see Containerized Kafka Scheduler.

Creating a custom Vertica image

The Creating a Vertica Image tutorial in the Vertica Integrator's Guide provides a line-by-line description of the Dockerfile hosted on GitHub. You can add dependencies to replicate your development and production environments.

Python container UDx

The Vertica images with Python UDx development capabilities include the vertica_sdk package and the Python Standard Library.

If your UDx depends on a Python package that is not included in the image, you must make the package available to the Vertica process during runtime. You can either mount a volume that contains the package dependencies, or you can create a custom Vertica server image.

Use the Python Package Index to download Python package source distributions.

Mounting Python libraries as volumes

You can mount a Python package dependency as a volume in the Vertica server container filesystem. A Python UDx can access the contents of the volume at runtime.

  1. Download the package source distribution to the host machine.

  2. On the host machine, extract the tar file contents into a mountable volume:

    $ tar -xvf lib-name.version.tar.gz -C /path/to/py-dependency-vol
    
  3. Mount the volume that contains the extracted source distribution in the custom resource (CR). The following snippet mounts the py-dependency-vol volume in the Vertica server container:

    spec:
      ...
      volumeMounts:
      - name: nfs
        mountPath: /path/to/py-dependency-vol
      volumes:
      - name: nfs
        nfs:
          path: /nfs
          server: nfs.example.com
      ...
    

    For details about mounting custom volumes in a CR, see VerticaDB custom resource definition.

Adding a Python library to a custom Vertica image

Create a custom image that includes any Python package dependencies in the Vertica server base image.

For a comprehensive guide about creating a custom Vertica image, see the Creating a Vertica Image tutorial in the Vertica Integrator's Guide.

  1. Download the package source distribution on the machine that builds the container.

  2. Create a Dockerfile that includes the Python source distribution. The ADD command automatically extracts the contents of the tar file into the target-dir directory:

    FROM opentext/vertica-k8s:version
    ADD lib-name.version.tar.gz /path/to/target-dir
    ...
    

    For a complete list of available Vertica server images, see opentext/vertica-k8s Docker Hub repository.

  3. Build the Dockerfile:

    $ docker build . -t image-name:tag
    
  4. Push the image to a container registry so that you can add the image to a Vertica custom resource:

    $ docker image push registry-host:port/registry-username/image-name:tag