CI/CD Integration
Studio Conductor provides integration with various CI/CD platforms.
Jenkins Plugin
Introduction to Jenkins' Conductor integration
GitLab CI/CD
Introduction to Conductor's GitLab CI/CD integration
Specifying Conductor Manager Access
(This section does not apply to the Jenkins plugin)
When using the standard Conductor CLI, the user is required to create a CLI profile, describing the location
of the Conductor Manager as well as credentials. This is traditionally done by using the cfy profiles command:
cfy profiles use cloudify-host -u admin -p password -t default_tenant
In order to simplify working in CI/CD platforms, the cfyci utility handles profile creation
automatically by inquiring your job’s environment variables. That way, users of
the Studio Conductor CI/CD integration need not worry about creating a profile; cfyci does this for you.
The following environment variables are used:
| Environment Variable | Purpose |
|---|---|
CLOUDIFY_HOST |
Host name / IP address of the Conductor Manager |
CLOUDIFY_USERNAME |
Username for Conductor Manager authentication |
CLOUDIFY_PASSWORD |
Password for Conductor Manager authentication |
CLOUDIFY_TENANT |
Conductor Manager tenant to operate on (defaults to default_tenant) |
CLOUDIFY_SSL |
false for non-SSL connectivity; any other value is considered as true, which is also the default) |
CLOUDIFY_TOKEN |
Authentication token for Conductor Manager |
to make use of CLOUDIFY_TOKEN you must not set CLOUDIFY_USERNAME and CLOUDIFY_PASSWORD
In addition, you can define the CLOUDIFY_SSL_TRUST_ALL environment variable as
true in order to bypass certificate verification. Note that this is generally a bad
idea, especially in production environments.
Common Inputs
(This section does not apply to the Jenkins plugin)
The following inputs are widely used across the Studio Conductor CI/CD integration features:
| Input Name | Description |
|---|---|
environment-name |
Name of Studio Conductor environment to create, delete or use. This maps to a Studio Conductor Deployment ID. |
outputs-file |
Path to environment’s outputs and capabilities file (see below). |
Default Input Values
(This section does not apply to the Jenkins plugin)
Occasionally, the value “-” is used as a default value for string parameters. This is done in order to simplify the construction of command
lines.
Environment Outputs and Capabilities File
Certain CI/CD operations (such as “create environment”) can generate a JSON file containing the Studio Conductor Environment’s outputs and capabilities. This file can be used by subsequent steps, for the purpose of carrying out the rest of the CI/CD cycle (for example: obtaining the IP address of a created server).
The structure of the JSON file is as follows:
{
"blueprint_id": "<blueprint_id>",
"deployment_id": "<deployment_id>",
"outputs": {
"output_1": "output_value_1",
"output_2": "output_value_2",
...
},
"capabilities": {
"cap_1": "cap_1",
"cap_2": "cap_2",
...
}
}
blueprint_idcontains the ID of the blueprint from which the environment was created.deployment_idcontains the Studio Conductor deployment ID for the environment.outputsis a key-value dictionary, mapping output names to values, as would be returned by thecfy deployments outputscommand.capabilitiesis a key-value dictionary, mapping capability names to values, as would be returned by thecfy deployments capabilitiescommand.
