- Docs Home
- Getting started
- XL Release
- Overview
- Installation
- Get started with XL Release
- Manage your installation
- Model your releases
- Release your software
- Release overview
- Create and start releases
- Configure release properties
- Schedule releases
- Start a release from an archived release
- Start a release from a template
- Start a release from another release
- Create a release from a Git repository
- Add a phase to a release or template
- Add a task to a phase in a release or template
- Import a release template
- Trigger releases
- Work with running releases
- Work with plugins
- Using reports
- Customize XL Release
- API and scripting overview
- Create custom task types
- Create custom configuration types
- Create custom trigger types
- Extend the XL Release GUI
- Declare custom REST endpoints
- Create custom tiles
- Create custom task types
- Create custom configuration types
- Using scheduling in scripts to connect to long running jobs
- Implement a custom failure handler
- Listen to XL Release events
- Configuration settings
- Release manuals
- XL Deploy
- Overview
- Installation
- Get started with XL Deploy
- Manage your installation
- Logging
- Start XL Deploy
- Shut down XL Deploy
- Back up XL Deploy
- Upgrade XL Deploy
- The XL Deploy repository
- Configure the repository
- Configure XL Deploy to fetch artifacts from a Maven repository
- Manage security
- Manage system settings
- XL Deploy configuration files
- Configure failover for XL Deploy
- High availability with master-worker setup
- Add, start, and use workers
- Configure active/hot-standby mode
- Configure the task execution engine
- Troubleshoot the Jackrabbit JCR repository
- Configure XL Deploy client settings
- Enable XL Deploy maintenance mode
- Update the XL Deploy digital certificate
- The XL Deploy work directory
- Reclaim disk space on an XL Deploy server
- Hide internal XL Deploy server errors
- Automatically purge packages according to a user-defined policy
- Automatically purge the task archive according to a user-defined policy
- Specify file encoding on the XL Deploy server
- Automatically archive tasks according to a user-defined policy
- Best practices for maintaining XebiaLabs tools
- Connect to your infrastructure
- Set up applications and environments
- Prepare your application for XL Deploy
- Create a deployment package
- Define application dependencies
- Configure an environment
- Using placeholders and dictionaries
- Working with deployment packages
- Preparing your application for XL Deploy
- Understanding deployables and deployeds
- XL Deploy manifest format
- Deprecated XL Deploy manifest format
- Using the XL Deploy Manifest Editor
- Understanding archives and folders in XL Deploy
- Add an externally stored artifact to a package
- Extend the external artifact storage feature
- Add a package to XL Deploy
- Export a deployment package
- XL Deploy for developers
- Tips and tricks for deployment packages
- Deploy an application
- Deployment overview
- Understanding the XL Deploy planning phase
- Steps and step lists in XL Deploy
- Understanding tasks in XL Deploy
- Deploy an application
- Use tags to configure deployments
- Preview the deployment plan
- Use orchestration
- Working with deployments
- Stopping, aborting, or canceling a deployment
- Schedule a deployment
- Update a deployed application
- Staging artifacts in XL Deploy
- Monitor and reassign deployment tasks
- Make previously deployed property values available in a PowerShell script
- Undeploy an application or deprovision an environment
- Perform canary deployments
- Perform dark launch deployments
- Perform hot deployments
- Deploying an externally stored artifact using the XL Deploy CLI
- Schedule or reschedule a task
- Using the deployment pipeline view
- Deploy to remote datacenters
- Get started with provisioning
- Introduction to the release dashboard
- Work with the CLI
- Work with plugins
- Create an XL Deploy plugin
- Base plugins and the deployed object
- Implement custom XL Deploy plugpoints
- Add a checkpoint to a custom plugin
- Step options for the Generic, PowerShell, and Python plugins
- Sample Java-based XL Deploy plugin
- XL Deploy plugin tutorial
- Standard plugins
- Middleware plugins
- Apache Tomcat
- BizTalk
- F5 BIG-IP
- GlassFish
- IBM WebSphere Application Server
- IBM WebSphere Process Server
- IBM WebSphere Liberty Profile Server
- IBM WebSphere MQ
- JBoss Application Server 5 and 6
- JBoss Application Server 7 and up
- Microsoft Internet Information Services
- Microsoft Windows
- NetScaler
- Oracle Service Bus
- Oracle Service-Oriented Architecture
- Oracle WebLogic Application Server
- Provisioning plugins
- Container platform plugins
- Tools
- Community plugins
- Using control tasks
- Using the explorer
- Using XL Deploy reports
- Customize XL Deploy
- Release manuals
- DevOps as Code
- Get started with DevOps as Code
- Install the XL CLI
- XL CLI command reference
- Work with the YAML format
- YAML snippets reference
- Manage values in DevOps as Code
- Track progress using XL CLI output
- Manage risk profiles
- Manage XL Deploy permissions in YAML
- Manage XL Release permissions in YAML
- Manage XL Release folder permissions in YAML
- Tutorial: Managing an XL Release template as code
- Blueprints
- API and CI references
- Plugins
- XL Release plugins
- XL Deploy plugins
- Standard plugins
- Middleware plugins
- Apache Tomcat
- BizTalk
- F5 BIG-IP
- GlassFish
- IBM WebSphere Application Server
- IBM WebSphere Process Server
- IBM WebSphere Liberty Profile Server
- IBM WebSphere MQ
- JBoss Application Server 5 and 6
- JBoss Application Server 7 and up
- Microsoft Internet Information Services
- Microsoft Windows
- NetScaler
- Oracle Service Bus
- Oracle Service-Oriented Architecture
- Oracle WebLogic Application Server
- Provisioning plugins
- Container platform plugins
- Tools
- Community plugins
- Videos
- Community
- Fix Trackers
- Archive
Manage values in DevOps as Code
You can manage values separately from your DevOps as Code YAML files so that they can be pulled in when applying XL YAML files. DevOps as Code supports multiple methods to configure and manage values including a dedicated file format using the .xlvals
extension, environment variables or by explicitly specifying a value in XL CLI command syntax.
Methods to manage values
Each of the following methods are parsed in the order presented below.
- Method 1: One or more
.xlvals
files in the/.xebialabs
folder in your home directory. Multiple files in this folder are parsed in alphabetical order. - Method 2: One or more
.xlvals
files in your project directory alongside your YAML files.- A YAML file can only parse
.xvals
files stored in the same directory. - You can have a YAML file stored at a higher level in the directory structure that imports one or more YAML files that reside in a subdirectory. However, any
.xvals
files related to a YAML file in a subdirectory must be in the same directory. - Multiple
.xvals
files in this directory are parsed in alphabetical order.
- A YAML file can only parse
- Method 3: Environment variables that are prefixed with
XL_VALUE_
; for example,XL_VALUE_mykey=myvalue
. - Method 4: Invoked explicitly as a parameter when using the XL CLI; for example, by adding the global flag
--values mykey=myvalue
.
How value methods are parsed
The XL CLI will parse the methods for managing values in the order implied in the method order described above.
- If there are multiple
.xvals
files in a directory, each file will be parsed in alphabetical order. - If you have multiple environment variables defined that are prefixed with
XL_VALUE_
, each variable will be parsed in alphabetical order. - If a duplicate key is encountered as parsing continues through the method order, the last encountered key is used. For example, if you have a value defined for
USER
in an.xvals
file in your.xebialabs
directory (method 1), and you have the different value forUSER
defined in an.xvals
file in your project directory (method 2), then the value in the project directory is used and the value in the.xebialabs
directory is ignored.
.xvals
file format
An .xvals
file is simply a list of keys and values, and follows the standard implementation of the Java .properties
file format.
Here is an example of key/value definitions using the =
delimiter:
# my keys and values
appversion=1.0.2
environmentName=myenv
hostname=myhostname
port=443
Environment variables
You can configure and use environment variables on your system by using the XL_VALUE_
prefix. For example:
XL_VALUE_mykey=myvalue
Command line syntax for values
You can specify a key “on the fly” during execution of an XL CLI command using the --values
global flag. This example shows how to pass multiple keys:
xl apply -f xldeploy/application.yaml --values myvar1=val1,myvar2=val2
Using values in your YAML files
Once you have defined your values using one of the methods described above, you can use !value
and !format
tags in your YAML files to specify a key for which the corresponding value will be pulled in when the YAML file is applied.
!value
tag
The !value
tag simply takes the name as a parameter. For example:
environment: !value environmentName
!format
tag
You can use the !format
tag for more complex values such as URLs or path names. You can use a string and encapsulate using the %
symbol to mark the value name. For example:
apiServerURL: !format https://%hostname%:%port%
You can escape %
characters by doubling them. For example, if value
is 15
, the following line:
percentage: !format %value%%%
results in:
percentage: 15%