Upgrading a vFunction Controller from a version 4.0 to a version above 4.0 creates a new instance



Overview

In vFunction Controller version 4.0, the Controller process / service was removed from the workflow that sends data from the vFunction Dynamic or Static Agent to the vFunction Server. With this change, two separate and distinct types of installation modes were created for every instance: agentMode (Dynamic) and viperMode (Static). Before Controller version 4.0, an instance could be created without defining the installation mode. In this circumstance, the instance would have both the Dynamic and Static Agents installed and running.


High-Level Changes in Controller version 4.0

The following changes were implemented in Controller version 4.0 and later:

  • A vFunction Instance must have agentMode or viperMode defined
  • A user defines the Mode of the Instance in the vFunction create-instance.sh script by adding a flag while running this script
  • The default instances (default-java and default-dotnet) are configured in agentMode after Controller version 4.0
  • The installation.yaml used to create a vFunction instance is unique depending on whether the instance is in agentMode or viperMode
  • If an instance was created before Controller version 4.0 and did not have a mode defined, a new instance will be created when running the upgrade.sh script from Controller version 4.0 and later. The upgrade.sh workflow will create:
  • The original $INSTANCE_NAME is changed to be in agentMode
  • A new instance is created with instance name $INSTANCE_NAME-viper and is created in viperMode

A Before and After Example

Before

During the initial installation of the vFunction Controller v3.8.1555 (for example), only the default instances were created:

List of Instances

The “default-java” Instance was used during the installation and both Agent and Viper YAML values were populated by the end user:

Default-Java Installation.yaml configuration

The installation script was run by the end user in “agent and viper mode”:

Install.sh workflow

The vFunction Server UI’s Select Controller page shows the Instance is in “agent and viper mode” as indicated by the A and V icons:

Select Controllers after initial install

After

Running the Upgrade.sh script splits the two instances into an $INSTANCE_NAME in agentMode and $INSTANCE_NAME-viper in viperMode:

Split Instances after Upgrade.sh script

The directory structure of vFunction reflects the creation of a new instance:

Directory Structure after Upgrade

The original retains its own installation.yaml:

Original Instance Installation.yaml

The new instance is in viperMode and also has its own installation.yaml:

New Instance Installation.yaml

The new instance can be seen in the UI in viperMode. The original instance will display as down:

New Instance in viperMode in the UI