Generic plugin
This topic describes the Generic model plugin that provides the possibility to extend Deploy with new middleware support without having to write Java code.
Using Deploy's flexible type system and the base CIs from the Generic model plugin, new CIs can be defined by writing XML and providing scripts for functionality.
Multiple Deploy standard plugins are also built from the Generic Model plugin.
Features
- Define custom containers
- Stop, start, restart capabilities
- Define and copy custom artifacts to a custom container
- Define, copy and execute custom scripts and folders on a custom container
- Define resources to be processed by a template and copied to a custom container
- Define and execute control tasks on containers and deployeds
- Flexible templating engine
Plugin concepts
The Generic Model plugin provides multiple CIs that can be used as base classes for creating Deploy extensions. There are base CIs for each of Deploy's CI types (deployables, deployeds, and containers). Example: Create custom, synthetic CIs, based on one of the provided CIs, and using them to invoke the required behavior (scripts) in a deployment plan.
The deployeds in the Generic Model Plugin can target containers that implement the overthere.HostContainer
interface. In addition to the generic.Container
and derived CIs, they can also be targeted to CIs derived from overthere.Host
.
Container
A generic.Container
is a topology CI and models middleware in your infrastructure. This can be used to model middleware within Deploy that does not have out of the box support or is custom to your environment. The other CIs in the plugin can be deployed to (subclasses of) the container. The behavior of the container in a deployment is configured by specifying scripts to be executed when it is started, stopped, or restarted. Deploy will invoke these scripts as needed.
Nested container
A generic.NestedContainer
is a topology CI and models middleware in your infrastructure. The nested container enables modeling of abstract middleware concepts as containers to which items can be deployed.
Copied artifact
A generic.CopiedArtifact
is an artifact as copied over to a generic.Container
. It manages the copying of any generic artifact (generic.File
, generic.Folder
, generic.Archive
, generic.Resource
) in the deployment package to the container. You can indicate that this copied artifact requires a container restart.
Executed script
An generic.ExecutedScript
is a script that is executed on a generic.Container
. The script is processed by the templating engine before being copied to the target container. The behavior of the script is configured by specifying scripts to be executed when it is deployed, upgraded, or undeployed.
Manual process
A generic.ManualProcess
consists of a script containing manual instructions for the operator to perform before the deployment can continue. The script is processed by the templating engine and is displayed to the operator in the step logs. Once the instructions have been carried out, the operator can continue the deployment. The instructions can also be automatically emailed.
Executed folder
A generic.ExecutedFolder
is a folder containing installation and rollback scripts that are executed on a generic.Container
. Installation scripts are executed when the folder is deployed or updated. Rollback scripts are executed when the folder is undeployed. Execution of the scripts happens in order. Scripts are processed by the templating engine before being copied to the target container.
Processed template
A generic.ProcessedTemplate
is a FreeMarker template that is processed by the templating engine and then copied to a generic.Container
. For information about the templating engine, see Templating in the Deploy Generic plugin.
Control task delegates
For information about control task delegates, see Control task delegates in the Deploy Generic plugin.