installNode

This operation installs a Gateway Node on endpoints configured with the resource 'Oracle API Platform Node Server' on the environment instance.  The operation requires a gateway-props.json file for configuration.  See the special considerations below for more information on the gateway-props.json file.

Environment/Instance Properties

Property NameProperty CodeRequiredDescription
Oracle API Platform AccountFDOAP_CLOUD_ACCOUNT_CODEYThe Oracle API Platform cloud account to use for this operation. 
Oracle Gateway Install HomeFDOAP_GATEWAY_INSTALL_HOMEY

Absolute location of where to install the gateway node configuration.  This is where the executable and libraries will be located.  This should be empty prior to running this operation.  

Note that this is different compared to the 'nodeInstallDir' property in the gateway-props.json

Node Weblogic UserFDOAP_NODE_WL_ADMIN_USERYWeblogic admin user to configure when creating the node.  Oracle API Platform Nodes are weblogic servers and this is your admin user.
Node Weblogic PasswordFDOAP_NODE_WL_ADMIN_PASSWORDYWeblogic admin password to configure when creating the node.


Inputs

Input NameInput CodeRequiredDescription
Gateway FileFDOAP_INP_GATEWAY_NODEPROPS_FILEYJson node properties file to use for creation. Can be absolute path or relative to artifacts directory.  See Special Considerations below for more information.
Copy Node PropertiesFDOAP_INP_COPY_NODE_PROPSNIf true, the 'Gateway File' input specified will be copied to the Node Install home.  This will allow you to reuse this node properties file in other workflow steps, like 'executeNodeAction'.
Auto Approve RegistrationFDOAP_INP_APPROVE_NODE_REGN

By default, when a Node is installed a request is sent to the Logical Gateway for Approval to join the Logical Gateway.  If this is true, the request will be auto approved.  

In order for this to work the Oracle API Platform user must have 'NodeServiceAccount' grant on the Gateway.  This can be automatically added if using the 'ImportGateway' operation.

Install Action OverrideFDOAP_INP_INSTALL_ACTION_OVERRIDEN

By default, 'install-configure-start-join' is used when installing the Node.  This means it expects the Logical Gateway to be existing ahead of time. 

You can override this to 'install-configure-start-create-join' which will create the Logical Gateway and Gateway Node in one shot.  Depending on the action chosen, different or additional properties may be required in the Gateway File.


Outputs

Output NameDescription
FDOAP_OUT_GATEWAY_IDLogical Gateway Id after installation.  Useful if your install action is overridden to create and join
FDOAP_OUT_NODE_IDGateway Node Id that was installed.

Artifacts

This operation consumes artifacts from the artifacts repository.


Endpoint Selection

This operation will select all available endpoints associated to the environment instance which have resource type of Oracle API Platform Node Server.


Endpoint Execution

This operation will select all available endpoints associated to the environment instance which have resource type of Oracle API Platform Node Server.


Special Considerations

Gateway File (gateway-props.json)

The gateway-props.json file provided is the same file required by Oracle for Node installation:  https://docs.oracle.com/en/cloud/paas/api-platform-cloud/apfad/install-gateway-node.html#GUID-A02059C9-37B4-40F0-9FEA-C648804BB98F

FlexDeploy however derives certain properties to help make the configuration easier.  Below are the required properties for installation through FlexDeploy.


Required Properties

Property KeyDescriptionRequiredExample ValueRecommendation
logicalGatewayIdLogical Gateway Id to join the Node to.  Only required if using the default Node install action.Sometimes117FlexDeploy property ${{FDOAP_GATEWAY_ID}}.
logicalGatewayLogical Gateway Name to create during installation.  Only required when running 'install-configure-start-create-join'SometimesDevelopmentEither create your own FD property or some variation on FD_ENVIRONMENT_NAME
gatewayNodeNameThe name of the Gateway Node to create.YesNode MyDevServerNode ${{FD_ENDPOINT_NAME}}
gatewayNodeDescriptionThe description you see when inspecting the node.YesCreated through FlexDeployInclude ${{FD_PROJECT_VERSION}} somewhere
listenIpAddressThe internal IP used for configurationYesyourinternalhostCould potentially use ${{FD_ENDPOINT_ADDRESS}}
publishAddressThe public IP used for configurationYesyourhostCould potentially use ${{FD_ENDPOINT_ADDRESS}}
nodeInstallDirDirectory where to install the node.  This is different than 'Oracle Gateway Install Home' above.Yes/opt/apiplatform/nodeKeep this the same across Nodes for consistency.
gatewayExecutionModeDevelopment|Production.  Development has certain networking security disabled.YesDevelopmentCreate a user defined input


Derived Properties

The following fields are dynamically added and removed from the file.  If you do not wish to change the values then you can safely ignore this section.  If you want to set custom values for any of the below fields you can simply set them in your gateway-props.json file and they will take precedence.

Property KeyDerived Value
gatewayadminNameNode Weblogic User Environment Instance Property
gatewayadminPasswordNode Weblogic Password Environment Instance Property
gatewayManagerUserOracle API Username Cloud Account Property
gatewayManagerPasswordOracle API Password Cloud Account Property
clientIdOracle API Client Id Cloud Account Property
clientSecretOracle API Client Secret Cloud Account Property
gatewayRuntimeUserOracle API Username Cloud Account Property
gatewayRuntimePasswordOracle API Password Cloud Account Property
managementServiceUrlOracle API Platform Url Cloud Account Property
idcsUrlOracle Identity Url Cloud Account Property
requestScopeCombination of Audience and Scope Cloud Account Properties.  Also adds 'offline_access'.

One file with FlexDeploy Properties or one file per environment

If you do not want to use FlexDeploy properties in your file then I would suggest creating one file per environment and using an expression to resolve the Gateway File input.

For example you could have the following files in source control:

  • gateway-props-dev.json
  • gateway-props-test.json
  • gateway-props-prod.json

Your input would then be the following expression: "gateway-props-"+FD_ENVIRONMENT_CODE.toLowerCase()+".json"


There are several additional optional fields that can be specified in the gateway-props.json.  Any field in the Oracle documentation is allowed.

Sample gateway-props.json file

{
    "logicalGatewayId" : "${{FDOAP_GATEWAY_ID}}",
    "gatewayNodeName" : "Node ${{FD_ENDPOINT_NAME}}",
    "gatewayNodeDescription" : "Installed through FlexDeploy.  Version: ${{FD_PROJECT_VERSION}}",
    "listenIpAddress" : "${{FD_ENDPOINT_ADDRESS}}",
    "publishAddress" : "${{FD_ENDPOINT_ADDRESS}}",
    "nodeInstallDir" : "/opt/apiplatform/node",
    "gatewayExecutionMode" : "Development"
}