Vertica 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:
|
Full image |
24.4.0-0 |
Optimized for Kubernetes, and includes the following packages for machine learning and UDx development:
|
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:
|
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. |
Important
Unlike the other images, security vulnerabilities in the VerticaDB Operator image are fixed only in the latest version. If you're using an older version, upgrade to the newest release of the operator to ensure you receive all security patches. If you notice a security issue with any of the images, report it using the Security Acknowledgements process.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.
Important
When you load the UDx library with CREATE LIBRARY, the DEPENDS clause must specify the location of the Python package in the Vertica server container filesystem.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.
-
Download the package source distribution to the host machine.
-
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
-
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.
-
Download the package source distribution on the machine that builds the container.
-
Create a Dockerfile that includes the Python source distribution. The
ADD
command automatically extracts the contents of the tar file into thetarget-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.
-
Build the Dockerfile:
$ docker build . -t image-name:tag
-
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