Skip to content

XL Deploy integration with Docker Universal Control Plane (part of Docker EE)

License

Notifications You must be signed in to change notification settings

xebialabs-community/xld-ucp-plugin

Repository files navigation

Docker Universal Control Plane integration for XL Deploy (BETA)

Build Status License MIT standard-readme compliant GitHub All Releases

The UCP XL Deploy plugin enables the creation of objects through UCP.

Important Notes

  1. This is a first-steps beta version
  2. The plugin automatically handles session tokens, so provide just a username and password in the UCP instance configuration
    1. The user must have permission to generate session tokens, and also carry out any operations that XL Deploy will execute (such as service creation and deletion)
  3. To enable easy connection with sandbox/test UCP instances, SSL certificate verifications are skipped. To resume strict checking of SSL certificates change http_request.py from:
sslContext = SSLContextBuilder.create().loadTrustMaterial(TrustSelfSignedStrategy()).build()
allowAllHosts = NoopHostnameVerifier()
connectionFactory = SSLConnectionSocketFactory(sslContext, allowAllHosts)

client = HttpClients.custom().setSSLSocketFactory(connectionFactory).build()

to

client = HttpClients.createDefault()

Concept

The example use case below combines the XL Platform with Docker EE systems.

XL and UCP

Since Kubernetes and Swarm use a declarative model for application deployments, upgrade deployments are handled simply by removing the object spec and replacing it with the new one.

Native control of Docker Swarm and Kubernetes through XL Deploy

The XL Deploy Kubernetes plugin and Docker plugin enable direct control of Swarm and Kubernetes objects.

Installation

Building the Plugin

The gradle wrapper facilitates building the plugin. Use the following command to build using Gradle:

./gradlew clean build

The built plugin, along with other files from the build, can then be found in the build folder.

Adding the Plugin to XL Deploy

For the latest instructions on installing XL Deploy plugins, consult the associated documentation on docs.xebialabs.com.

Setup

Infrastructure

Create a new infrastructure container in the Library. The path is ucp > instance. The "common" section is probably the only place where properties need to be changed. UCP requires HTTPS communication. Provide the https:// protocol in the URL. Keys/tokens should not be used in the configuration - only a username and password which will then be used to fetch session tokens.

Application Deployment Packages

Deployment packages can contain Swarm Service Specs (ucp>swarm>ServiceSpec) and Swarm Network Specs (ucp>swarm>NetworkSpec). Service Port Specs (ucp>swarm>ServicePortSpec) are handled as an embedded deployable under ServiceSpec.

Usage

The configuration items for this plugin:

  1. Docker Swarm Services (type ucp.swarm.Service)
  2. Docker Swarm Service Ports (type ucp.swarm.ServicePort)
  3. Docker Swarm Networks (type ucp.swarm.Network)

Contributing

Please review the contributing guidelines for xebialabs-community at http://xebialabs-community.github.io/

License

This community plugin is licensed under the MIT license.

See license in LICENSE.md

About

XL Deploy integration with Docker Universal Control Plane (part of Docker EE)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages