- 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
Valid since:
XL Release 8.6.1
XL Deploy 8.6.1
XL JetPack 8.6.1
Manage XL Release environments and applications in YAML
You can specify and maintain applications and environments in YAML, enabling you to manage these aspects of your XL Release configuration “as code”. In the XL CLI, two flags allow you to manage applications and environments when using xl generate
:
-a --applications
Add to the generated file all applications in the system-e --environments
Add to the generated file all environments
These flags will generate YAML files which can be applied to applications or environments in your XL Release servers. They also allow you to define dashboard filters and task attributes (facets).
The following example will allow you to use the XL CLI to create new applications and environments in XL Release.
Note: The instructions in this topic use the default installation of XL Release. If you already have custom configurations, you can adapt the instructions for your setup.
Create YAML for applications and environments
Let’s create a file export.yaml
which will add the following new elements:
- An environment named
Environment1
and an application namedApplication1
, with two labels, greenLabel1
and blueLabel2
. - A folder named
Testfolder
and a template namedTemplate1
. - A
Current applications
dashboard tile in theTemplate1
template with the following filters: a. Application matchesApplication1
b. Environment matchesEnvironment1
. - A
Preparation
phase in theTemplate1
template with aPlanning
task, with aDeployment
attribute where Application isApplication1
, Version is1
, and Environment isEnvironment1
.
apiVersion: xl-release/v1
kind: Environments
spec:
labels:
- name: Label1
color: '#08b153'
- name: Label2
color: '#0099cc'
environments:
- name: Environment1
description: Test environment 1
stage: Acceptance
labels:
- Label1
- Label2
---
apiVersion: xl-release/v1
kind: Applications
spec:
- name: Application1
environments:
- Environment1
---
apiVersion: xl-release/v1
kind: Templates
spec:
- directory: Testfolder
children:
- name: Template1
type: xlrelease.Release
---
apiVersion: xl-release/v1
kind: Templates
metadata:
home: Testfolder
spec:
- template: Template1
phases:
- phase: Preparation
tasks:
- name: Planning
type: xlrelease.Task
facets:
- type: udm.DeploymentTaskFacet
version: "1"
application: Application1
environment: Environment1
- type: xlrelease.Dashboard
owner: admin
tiles:
- name: Current applications
type: deployment.CurrentApplicationsTile
row: 0
col: 0
filters:
- type: xlrelease.ApplicationFilter
application: Application1
- type: xlrelease.EnvironmentFilter
environment: Environment1
- type: xlrelease.DateFilter
parentTemplate: Template1
Now apply it:
xl apply -f export.yaml -v
Log in to check the results in the UI.
Modify the YAML
Now let’s change the YAML to add the following new elements:
- A third label
Newlabel1
. - Change
Environment1
so that it containsNewlabel1
and is used in theTest
stage. - An environment
Newenvironment2
which usesLabel2
andNewlabel1
. - An application
Newapplication2
which usesNewenvironment2
. - Modify the Planning task attribute so that it uses
Newapplication2
andNewenvironment2
. - Modify the Current applications tile so that the filters use
Newapplication2
andNewenvironment2
Replace the contents of export.yaml
with this specification:
apiVersion: xl-release/v1
kind: Environments
spec:
labels:
- name: Newlabel1
color: '#991C71'
environments:
- name: Environment1
description: Test environment 1
stage: Test
labels:
- Label1
- Newlabel1
- name: Newenvironment2
description: New test environment 2
stage: Acceptance
labels:
- Label2
- Newlabel1
---
apiVersion: xl-release/v1
kind: Applications
spec:
- name: Application1
environments:
- Environment1
- name: Newapplication2
environments:
- Newenvironment2
---
apiVersion: xl-release/v1
kind: Templates
metadata:
home: Testfolder
spec:
- template: Template1
phases:
- phase: Preparation
tasks:
- name: Planning
type: xlrelease.Task
facets:
- type: udm.DeploymentTaskFacet
version: "1"
application: Newapplication2
environment: Newenvironment2
- type: xlrelease.Dashboard
owner: admin
tiles:
- name: Current applications
type: deployment.CurrentApplicationsTile
row: 0
col: 0
filters:
- type: xlrelease.ApplicationFilter
application: Newapplication2
- type: xlrelease.EnvironmentFilter
environment: Newenvironment2
- type: xlrelease.DateFilter
parentTemplate: Template1
Now apply the YAML:
xl apply -f export.yaml -v
Log into XL Release. You will see that your environments and applications have been changed to match the new specifications.
You will also see that the Current Applications dashboard tile and the Wait for dependencies task are now associated with the new environment and application.