Introducing plugins
Extend HCL™ Accelerate by configuring plugin integrations to external tools.
HCL™ Accelerate uses a containerized microservices architecture. This means that plugins are not run directly from HCL™ Accelerate but from containerized instances managed by a containerization platform. Runtime instances are created from images on the Docker Hub™ repository. HCL™ Accelerate retrieves images from this repository and creates instances as needed.
For Kubernetes-based installations such as OpenShift™, HCL™ Accelerate uses Kubernetes™ as its containerization platform. An Argo Workflow Engine manages plugin workflow. A Kubernetes pod starts when a plugin task is requested and sends the results to HCL™ Accelerate. When complete, the container containing the plugin ends.
For Docker-based installations, HCL™ Accelerate uses Docker Compose as its containerization platform. A Docker container starts when a plug-in task is requested and sends the results to HCL™ Accelerate.
Plug-ins are categorized by data collection and communication methods. Generally, plug-ins are designed to use one of the following communication methods.
- Webhook. These plugins use webhooks to communicate with a defined HCL™ Accelerate API endpoint. The webhook is used to trigger data collection events. Examples include the AppScan™, and SonarQube plugins.
- Poller. These plugins are based on an event defined by the plugin. Queries are performed to determine when to send and update data from the external service. Examples include the GitHub™, and Rally plugins.
- Parser. These plugins integrate functions to parse a specific file type and create a metric document that HCL™ Accelerate can display with other value stream management and portfolio views. Examples include the JUnit, and OneTest plugins.
Available plugins are stored at HCL plugin database.
If you cannot find a plugin for your environment, you can create plugins by using the plugin software development kit (SDK).
If a metrics plugin is not available for your tool, you can upload custom metrics using HCL™ Accelerate API endpoints.
To use a plugin, you configure an integration. "Integration" refers to a user-configured instance. You might use the GitHub plugin to configure an integration with the Service A repository, and then configure another integration with your Service B repository. Although both integrations use the GitHub plugin, each integration provides a unique set of data to HCL™ Accelerate. You manage each integration separately.
Some integrations are termed "native integrations," and are not technically plugin derived. Native integrations are used with deployment plans by defining tasks of a specific type. You can use UrbanCode Deploy data with your deployments and pipelines, for example, by defining UrbanCode Deploy-type tasks.
Some plugins might have a corresponding plugin in the external tool. To integrate Jenkins, for example, you install the " HCL™ Accelerate" plugin into Jenkins™ using the Jenkins plugin manager. Then you configure a corresponding Jenkins integration in HCL™ Accelerate. The two integrations operate in tandem.