Vertica images

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

The following table describes Vertica server and automation tool images:

Image Description
Vertica Kubernetes minimal image

Optimized for Kubernetes. This image includes the following UDx development capabilities:

  • C++

  • Python

Image names:

Vertica Kubernetes (Full image)

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

  • TensorFlow

  • Java 8

  • C++

  • Python

Image name: vertica/vertica-k8s:12.0.4-0

Vertica Kubernetes (No keys)

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

  • TensorFlow

  • Java 8

  • C++

  • Python

Image name: vertica/vertica-k8s:12.0.4-0-nokeys

Vertica Community Edition

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

This image includes the following UDx development capabilities:

  • C++

  • Python

Image name: vertica/vertica-ce:12.0.4-0

VerticaDB Operator

The operator monitors the state of your custom resources and automates lifecycle tasks for Vertica on Kubernetes. For installation instructions, see Installing the Vertica DB operator.

Image name: vertica/verticadb-operator:1.11.1

Vertica vlogger

Lightweight image for sidecar logging. The vlogger sends the contents of vertica.log to stdout on the host node. For implementation details, see VerticaDB CRD.

Image name: vertica/vertica-logger:1.0.0

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 CRD.

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:

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

    In the preceding example, the ADD command automatically extracts the contents of the tar file into the target-dir directory.

  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