Skip to content

xebialabs-community/xlr-ucd-plugin

Repository files navigation

XL Release UCD Plugin

Codacy Badge Code Climate License: MIT Github All Releases

This document describes the functionality provided by the XL Release xlr-ucd-plugin.

See the XL Release reference manual for background information on XL Release and release automation concepts.

This is a 'See It Work' plugin project, meaning the code base includes functionality that makes it easy to spin up and configure a dockerized version of the XebiaLabs platform with this plugin api already installed. Using the provided test data, you can then try out the plugin features. This is useful for familiarizing yourself with the plugin functionality, for demonstrations, for testing and for further plugin development. See the Demo/Dev section.

The plugin code base also includes a gradle task for automatic integration testing.

Overview

This plugin offers an interface from XL Release to Urban Code Deploy Server.

Requirements

Changes introduced in version 2.0.0 - 1. Polling for tasks that retrieve Status information has been replaced with the Release Schedule Task mechanism. This allows tasks to resume even if Release is rebooted. If your template includes polling parameters, you will see an alert indicator in your task, but the task will still work without changes. 2. It is now possible to set a UCD Application Process Request for a future date/time deployment.

Requirements

  • XL Release** 9.8.0+
  • This plugin has been tested with XL Release 9.8.0 and UCD 7.1.0

Installation

  • Copy the latest JAR file from the releases page into the XL_RELEASE_SERVER/plugins/__local__ directory.
  • Restart the XL Release server.

Usage

List System Configuration

The List System Configuration task will list the system attributes as name value pairs.

sys_config sys_config_done

Application Process Request

The Application Process Request task will invoke an Application Process Request in UCD for the given Application, Application Process, Environment and Versions (as defined in UCD). If Future Date and Time is set, UDC will put the request into a pending state until that time. The Date/Time string must be in the format yyyy-mm-dd HH:mm ,use a 24 hour clock for hours. Example: 2021-03-23 13:30 . The Application Process Request ID is retrieved for display or stored in an XL Release variable.

app_process_request

Application Process Request Status

Given an Application Process Request ID, this task will poll UCD for the status of the request. The Request Status and Request Result are then output.

status

Synchronous Application Process

The Synchronous Application Process task will invoke a UCD Application Process Request and then immediately poll for the status of that request. If Future Date and Time is set, UDC will put the request into a pending state until that time. The Date/Time string must be in the format yyyy-mm-dd HH:mm ,use a 24 hour clock for hours. Example: 2021-03-23 13:30 . The Request ID, Request Status and Request Result are output.

sync_process_request

Configure the UCD Server in XL Release

server-configuration

Developers

Build and package the plugins with...

./gradlew assemble

To run demo or dev version (set up docker containers for both XLR and UCD platform)

NOTE:

  1. Clone this git project to your local dev environment
  2. You will need to have Docker and Docker Compose installed.
  3. The XL-Release docker image uses the community trial license
  4. You will need to be able to run a bash script
  5. You will need to have curl and jq installed
  6. XL Release will run on the localhost port 15516.
  7. The XL Release username / password is admin / admin.
  8. The UCD Server runs on the localhost port 8443
  9. The UCD username / password is admin / admin
  • Note: As of June 2021, the UCD images do not appear to be available on DockerHub. Lynn D'Amato and Dave Roberts have local copies.

  • Before running the demo, be sure to create the plugin by opening a terminal, cd into the plugin source code directory, and run

./gradlew clean build
  • To run the dev/demo mode, open a terminal, cd into the src/test/resources/docker directory of the plugin code and run
docker-compose up
  • After XLR and the UCD Platform starts up, open a terminal in the directory src/test/resources/docker/initialize and run
./initialize_demo.sh
  • This will populate both XLR and the UCD Server with the demo data. You can then log into XLR, create and then run a release based upon the imported template name 'ucdTest'.

  • To shut down and remove the docker containers - in a terminal, cd to the src/test/resources/docker directory, and run

docker-compose down

References