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:
The “default-java” Instance was used during the installation and both Agent and Viper YAML values were populated by the end user:
The installation script was run by the end user in “agent and viper mode”:
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:
After
Running the Upgrade.sh script splits the two instances into an $INSTANCE_NAME in agentMode and $INSTANCE_NAME-viper in viperMode:
The directory structure of vFunction reflects the creation of a new instance:
The original retains its own installation.yaml:
The new instance is in viperMode and also has its own installation.yaml:
The new instance can be seen in the UI in viperMode. The original instance will display as down: