Configurable Settings - .NET Viper Controller on Linux for Static Analysis



How to apply changes to the Controller environment

Changes in the installation.yaml can be applied by running the install script or the upgrade script. Note that re-running the install script will delete any information that would have been stored previously.


Required fields in installation.yaml

Variable Name
Key Value
Explanation of the Variable and Key Values
controller.name
String This will be the identifier used in the VF Server UI. So, this should be as precise a name as possible, e.g. "UAT Viper" or "Prod App1"
controller.host
String The controller.host is the address that the vFunction Server address with which the Controller will connect. The value needs to start with http:// or https://. The value can be an IP Address or a FQDN
controller.org_id
controller.app_id
controller.client_id
controller.client_secret
Strings Once the Server is installed, the Admin can log into the UI and create the App. In the UI's Install Controller dialog box, the YAML values for the org_id, app_id, client_id and client_secret will be displayed. The values for this YAML file should be copied for the Server UI to here
controller.type
String "dotnet"
viper.port
Integer Used by the VF Viper process to communication internally with the VF Controller process. This only needs to be modified if multiples instances of a Controller are running on the same Server or if a Port is in use
viper.assemblies
List of Strings Path(s) to the App's directory where the assemblies (DLLs, EXEs, Resource Files) are placed for the Application

Sample with required fields in installation.yaml

controller:
  name: Prod App1
  host: http://10.0.0.143
  org_id: 3cf59199-0a0a-0a0a-0a0a-7c63ffac776e
  app_id: 7b1ab58d-0a0a-0a0a-0a0a-098a113ad721
  client_id: 20761b99-0a0a-0a0a-0a0a-94c2e0bc1859
  client_secret: 6b5b7bc1-0a0a-0a0a-0a0a-2bd10db75e2f
  type: dotnet
  instrconf_additions:
    inclusions:
    exclusions:
server_application:
agent:
  version: dotnet
  environment: iis
viper:
  port: 8091
  aseemblies:
    - /opt/vfunction/assemblies/

Optional fields in installation.yaml


controller.instance_id
Installation.yaml Configuration
Details
controller:
   instance_id: containerized
  • Used for containerized vFunction controllers
  • Can be set to any String value (e.g., ID1234)
  • Used to prevent an ongoing increase in the number of Down Controllers in the vFunction Server UI's Select Controllers page when Controllers are down
  • Maps a restarted controllers (i.e., a container that went down and came back up) with a controller in the down state that has the same ID

viper.debug_mode
Installation.yaml Configuration
Details
viper:
   debug_mode: true
  • Adds additional logging to the output of the vfviper.log

viper.jvm_memory_params
Installation.yaml Configuration
Details
viper:
   jvm_memory_params: "-Xms300m -Xmx4g -Xss50m"
  • By default, the Viper service is started with the Memory-related settings:
    -Xms300m -Xmx3g -Xss50m
  • For larger applications, this may cause the static analysis to run slowly
  • Increase the Max Heap Size (Xmx setting) to speed up the static analysis
Classes in Namespaces(s) Recommended RAM
Less than 8k 2gb
8k-20k 4gb
20k-100k 8gb

viper.port
Installation.yaml Configuration
Details
viper:
   port: 8091
  • If the Viper port identified is in use, change the port to use an unused port