This extension provides Import and Deploy tasks to integrate with DROPS Release.
DROPS is a single solution to orchestrate the deployment of your applications across data center, hybrid, and multi-cloud infrastructures.
DROPS orchestrates a continuous value stream from business owner to end-user, with release visibility and control across all teams, technologies, and tools.
Unlike other solutions on the market, DROPS manages releases at the ‘application’ level, deploying functions, rather than just technical components. This makes DROPS intuitive and easy to use, allowing development and operations teams to work closely together to increase deployment frequency and respond smoothly to the demands of the business while guaranteeing service continuity in production.
Thanks to a powerful ‘platform abstraction’ layer, DROPS manages releases across multiple platforms such as Windows, UNIX, Linux, IBM i and also private, public, hybrid and multi-cloud environments.
The DROPS for Azure DevOps guide provides all the required documentation for usiing these tasks.
Available tasks
This Azure DevOps Extension provides the following tasks
- DROPS Import Task
- DROPS Deploy Task
How to use these tasks
After installing the extension, you can add one (or more) of the tasks to a new or existing release definition
Add a DROPS service connection
Before using any Impot or Deploy tasks, yau have to configure a DROPS Server Connection in the Project Settings, section Service Connection.
Be aware that you will need the target DROPS Server public key to be able the use a secured connection.
Field Description
Server URL (required)
- Enter the DROPS server URL including the port number
- Note that the server must be the one used in the certificate
Server Key
- The DROPS Server Certificate in .pem format
Accept untrusted SSL Certificates
- Cheks this box if you want to allow the DROPS clients to accept self-signed SSL server certificates without installing them into the Azure DevOps service role and/or Build Agent computers.
Username (required)
- The name of the user used to connect the DROPS Server
Password (required)
- The password of the user used to connect the DROPS Server
DROPS Import Task
The DROPS Import task is used to import heterogeneous applications artifacts into the DROPS Release Artifacts Repository.
DROPS Server (required)
- The name of the DROPS Server Connection
Application Code (required)
- The code of the application that owns the target version.
Create Release
- Indicates if a new version should be created if it does not exist
Release Number
- Available only if Create Release is false. The Number of the release in which the artifacts must be imported
Increment Part
- The Release Number part that will be incremented while the release creation|
Release Description
- The release description. If you use an exiting release, its dscription will be updated
Reset Release
- Indicates if the target release should be resetted before import
Display Execution Log
- Indicates if the execution log entries should be displayed
Component Options Section
Component Filters
- The type of filter you want to appply. There are 4 available values:
- No Filter: will execute the Import using the default definition of the application
- File: will execute the Import filtering the component/strategy/external version based on the content on the file passed as parameter
- Filtered: will execute the Import filtering the component/strategy/external version based on the content of the *** Filter Component field
- Azure DevOps: will execute the Import using only the strategy of components that has been defined uising the AZURE-PIPELINES Strategy.
File Path
- Only if the filter type is File. The absolute name of the file name that contains the component filters
Filtered Component
components:
- code: <The Component Code #1>
strategy: <The strategy code of the component #i>
externalVersion: <The source external version>
...
- code: <The Component Code #n>
strategy: <The strategy code of the component #j>
externalVersion: <The source external version>
DROPS Entities Property Update Section
Warning: This feature needs a DROPS Server version 23.2 or upper to work.
Properties Provider Type
- The type of property provider you want to use. There are 2 available values:
- Manual: The properties have to be defined manually
- File: The properties have to be defined into a property file
Property Definition List
- Only if the Properties Provider Type is Manual.The list of properties that need to be managed
- Declare Each property on a unique line using the following syntax:
[entity].[property_key]=[property_value]
where [entity] could be application or release
Property File
- Only if the Properties Provider Type is File.The path of the file that contains the property list
- In this file declare each property on a unique line using the following syntax:
[entity].[property_key]=[property_value]
where [entity] could be application or release
Execution Process Description
- Prepare the DROPS server Connection
- Search for an Application with the defined code
- IF no application found THEN Abort the task
- Manage the release
- IF the release creation has been requested THEN
- Request for a release creation using the defined Increment part
- IF the creation failed THEN
- ELSE
- Use this newly created release as the target release
- ENDIF
- ELSE
- Retrieve the release of the application based on its Release Number
- IF a release has been found THEN
- ELSE
- ENDIF
- ENDIF
- Read the Release Properties
- Assign the drops.release.number with the release version number
- Manage the properties
- Parse the provided properties
- Call the Properties Management Service
- IF the management failed THEN Abort the task
- Create the Import Process Instance
- IF the creation failed THEN Abort the task
- Manage the Component Options
- IF option == "Filtered" THEN
- parse the YAML Definition
- IF the YAML Definition is correct THEN
FOR EACH different filter entries
*Add a component filter to the import process for each entry found
ENDFOR
- ELSE
- ENDIF
- ELSE IF option == "Azure DevOps" THEN
- Search for components with a AZURE-PIPELINES Strategy
- IF no component found THEN
- ELSE
- FOR each component
- Add a component filter to the import process
- ENDFOR
ENDIF
- ENDIF
- Execute the Import Process Instance
- Display the execution Status and Result.
- Manage the Execution Log Display
- IF the display Execution Log Option has been set to true THEN
- Display the execution Log
- ENDIF
DROPS Deploy Task
The DROPS Deploy task is used to deploy Application's Releases on the organization environments
DROPS Server (required)
- The name of the DROPS Server Connection
Application Code (required)
- The code of the application that owns the target version.
Release Number
- The Number of the release taht be be deployed
Environment Code
- The code of the environment on which the release must be deployed
Transaction ID
- The ID of the transaction linked to the Deployment Process Instance
Deployment Process Options Section
Deployment Process Type
- The type of Deployment Process you want to use. There are 2 available values:
- Existing Process: will execute the Deployment Process Identified by its code
- File: will execute a Deployment Process whose definition is defined in the specified file
Deployment Process Code
- Only if the Deployment Process Type is Existing Process.The code of the process used to deploy the release on the environment
Repository File Name
- Only if the Deployment Process Type is File.The code of the process used to deploy the release on the environment for the related application
DROPS Entities Property Update Section
Properties Provider Type
- The type of property provider you want to use. There are 2 available values:
- Manual: The properties have to be defined manually
- File: The properties have to be defined into a property file
Property Definition List
- Only if the Properties Provider Type is Manual.The list of properties that need to be managed
- Declare Each property on a unique line using the following syntax:
[entity].[property_key]=[property_value]
where [entity] could be environment or application
Property File
- Only if the Properties Provider Type is File.The path of the file that contains the property list
- In this file declare each property on a unique line using the following syntax:
[entity].[property_key]=[property_value]
where [entity] could be environment or application
Execution Process Description
- Prepare the DROPS server Connection
- Search for an Application with the defined code
- IF no application found THEN Abort the task
- Search for a release with the defined release number AND linked to the application
- IF no release has been found THEN Abort the task
- Search for an environment the defined code
- IF no Environment found THEN Abort the task
- Manage the Deployment Process
- IF the Deployment Type is Existing Process
- Search for Deployment Process with the defined code AND linked with the Application AND with the Environment
- IF no Deployment Process found THEN Abort the task
- IF the Deployment Type is FILE
- Search for Definition File according to the input Parameter
- IF
- the file does not exist OR
- the content of the file is empty OR
- the content is not a valid YAML OR
- the Environment Code is different from those defined in the task OR
- the Application Code is different from those defined in the task THEN Abort the task
- Register the Process Definition
- IF the registration failed THEN
- ELSE
- Retrieve the related Process Id.
- Manage the properties
- Parse the provided properties
- Call the Properties Management Service
- IF the management failed THEN Abort the task
- Create the Deployment Process Instance
- IF the creation failed THEN Abort the task
- Execute the Deployment Process Instance
- Display the execution Status and Result.
- Manage the Execution Log Display
- IF the display Execution Log Option has been set to true THEN
- Display the execution Log
- ENDIF
Property Management Process Description
- Extract Property List from the selected Property Provider
- Read each Line to extract a property definition
- Check the syntax
- IF the syntax is not valid THEN Abort the task
- Group each property for the environment and for the application
- Call the related web service
- On the server, for the each entity (Environement or Application)
- Read the existing properties
- Check if the property already exists
- IF exist THEN
- update the property valye
- ELSE
- create a new property for the related entity
- Display the opration result in the execution log