4. pure::variants Deployment for Kubernetes

The pure::variants Deployment for Kubernetes is the recommended way to install and manage the pure::variants Services in Kubernetes. This deployment reduces the complexity of installing the various components required for a successful deployment and maintenance of pure::variants. The Kubernetes deployment is based on the Helm Package Manager and includes the same services and possibilities like the pure::variants Deployment Templates for Docker. The Helm Chart can also be used for a deployment into OpenShift. The pure::variants Helm Chart for Kubernetes is included in the pure::variants Deployment Templates for Docker with the name pv-chart-<version>.tgz.

The Kubernetes deployment includes the pure::variants Web Client, Transform Service and Model Server. All pure::variants related services are distributed as a helm chart which can be installed with the helm package manager. In contrast to the pure::variants Deployment Templates for Docker there are no prepared template files but a configuration file for the pure::variants helm chart which is called values.yaml.

Internally a number of additional containers, orchestrated by Kubernetes are communicating among each other using an internal, preconfigured network structure, which is not exposed externally via ingress routes. Connections of internal services to external services not provided by the respective template, are done using encrypted access using TLS. All externally available services as per default are encrypted using TLS.

In general all prerequisites mentioned for the pure::variants Deployment Templates for Docker are still valid

The images referenced in the pure::variants Kubernetes Deployment need to be built first. For building the images the pure::variants Deployment Templates for Docker are used. The detailed build steps are mentioned in ???.

Please provide at least the following prerequisites before running the build process:

  • Set a version tag in the .env file for the images with the PV_VERSION variable.

  • Define the target container registry in the .env file with the variable DOCKER_REGISTRY.

  • Provide all needed root certificates within the folder <docker-deployment-templates>/workspace/rootcertificates.

  • Add the parameter PV_USERID=1000 anywhere in your .env file provided in the pure::variants Deployment Templates for Docker. This will enable the creation of an user in the transformation runner image.

Once the build is done please run docker compose --profile build push to push the images to your container registry.

Opening the extracted pure::variants Helm Chart the contained values.yaml file will contain all parameters to configure the pure::variants Deployment.

To keep the complexity manageable not all parameters available are directly visible in the parameters file but defaulted to a meaningful value which matches common customer needs.

The parameters file is divided into sections for each pure::variants service and one global section which applies to all services. These sections are represented in the following subchapters.

The global parameters are applied to all services installed with the pure::variants Deployment for Kubernetes.

If you want to connect the Model Server to an external database please remove the # in front of the following parameters and provide a reasonable value. The Model Server provided with the pure::variants Deployment for Kubernetes shares the same requirements for its database as our standalone Model Server please see ???. Please note when using an external database, the internal PostgreSQL database needs to be disabled by changing the value of database.enabled to "false".

  • PV_MODEL_SERVER_DB_TYPE

    Provide the type of database the Model Server shall connect to. Options are: PostgreSQL, MSSQL and Oracle.

  • PV_MODEL_SERVER_DB_HOST

    Enter the hostname which provides access to the external database.

  • PV_MODEL_SERVER_DB_PORT

    Enter the port with which the external database can be accessed.

  • PV_MODEL_SERVER_DB_NAME

    Enter the name of the external database which has been initialized with the init SQL script of the Model Server.

  • PV_MODEL_SERVER_DB_USER

    Enter the name of the technical user having access to the external database.

Once the configuration is done and your images are available on the container registry you can proceed installing your pure::variants Deployment for Kubernetes.

For an installation from scratch please navigate into your helm chart and run the following command which will also create the desired namespace if it does not exist yet.

Note: Please make sure to replace <name_of_deployment> with the name helm should list your pure::variants Deployment for Kubernetes.

Also replace <namespace> with the desired namespace in Kubernetes which is defined in the parameter PV_NAMESPACE.

helm install <name_of_deployment> -n <namespace> --create-namespace .

If the command has been successful your console Output should show the following message:

NAME: <name_of_deployment>
LAST DEPLOYED: <Timestamp>
NAMESPACE: <namespace>
STATUS: deployed
REVISION: 1
TEST SUITE: None

Once the installation via helm is done you can verify the deployment by running:

kubectl get all -n <namespace>

You should see your configured pods are pulling their images and starting up. Once the Pod initialization is done all Pods should have the status Running.

  1. Validate Model Server Availability: Use browser to navigate to Model Server URL (make sure to have the slash at the end of the URL), e.g., to https://pv.example.com:443/pv/ . You should now see the basic status page of the Model Server. Try to log in with the password defined in PV_MODEL_SERVER_WEB_PASSWORD.

  2. Validate Model Server Access via Desktop Client: Follow the instructions given in the pure::variants Model Server Administration Manual using the Model Server URL (make sure to have the slash at the end of the URL), e.g., https://pv.example.com:443/pv/ . Create at one pure::variants user with a name matching a valid Single-Sign-On user as described in the manual.

  1. Validate Web Client Availability: Use browser to navigate to Web Client URL (make sure to have the slash at the end of the URL), e.g. to https://pv.example.com/pvweb/ . You should now see the Login page of the Single-Sign-On service. Try to log in with valid user name and credentials from the previous step. Validate Number of available Transformation Runners by switching in the Web Client to the Transformation Dashboard and check that the Idle count is equal to the number of configured Transformation Runners (Default is 1).