Shared cloud configuration

3 minute read

The operations center enables the sharing of cloud configuration across the controllers in the operations center cluster.

The sharing model used for shared cloud configuration is similar to the shared configuration propagation.

Unlike shared clouds or shared agents, shared cloud configuration replicates the configuration of the cloud provider to the specified controllers such that each controller has separate control of the cloud rather than leasing agents from the operations center server.

Shared cloud configuration can also be complished via Configuration as Code (CasC).

Supported cloud providers

Amazon Elastic Compute Cloud (EC2) from Amazon EC2 Plugin is supported for shared cloud configuration.

The shared cloud configuration is licensed individually for each cloud type.

Limitations

  1. The plugin defining the configuration must be installed on the controllers to which the configuration will be propogated.

  2. The plugin versions on the controller(s) and the operations center server must be compatible in terms of configuration data model.

Violations of the requirements above may have a serious impact on cloud provisioners on controllers.

Shared configuration setup

Shared configurations should be created as Jenkins items like controllers, folders and templates using the New Item action on the left hand menu in operations center. Items can be created at the root of the instance or within a folder.

  • If you create in the root of operations center, the cloud will be available to all controllers

  • If you create a shared cloud configuration item in a folder, the cloud will be available only to controllers within the folder or within the folder’s sub-folders.

Step 1. Create a new configuration item

  1. Click on the "New Item" action in Jenkins root or a folder. In both cases you will be presented with the standard new item screen.

  2. Provide a configuration name.

  3. Select the Cloud Configuration type that you wish to create.

  4. Click on OK button. A new configuration window will appear.

Step 2. Enter the required configuration for the selected cloud

Options are similar to the standard Jenkins cloud configuration options.

If a cloud provider requires configuration of native tools or libraries, then this location must be the same on all controllers that receive this configuration in order to operate correctly.

Step 3. Apply changes

When the shared cloud configuration is complete, save or apply the configuration.

The cloud configuration will be pushed to all online controllers that have not opted out of receiving the shared configuration. If a controller is offline, the new configuration will be applied when this controller connects to operations center.

Supported configurations

Below you can find configuration examples for the supported clouds.

As mentioned earlier, prior to configuring a shared-cloud ensure that the plugin defining the launcher is installed on all the controllers within scope for using the shared cloud.

Amazon Elastic Compute Cloud (EC2)

This Shared cloud configuration allows you to share settings for Amazon EC2 cloud, which is the part of Amazon Web Services platform (AWS).

Please refer to the Amazon EC2 plugin Wiki page to find setup guidelines and information about supported configurations. This section describes the operations center specifics only.

The following apply to both CloudBees CI on modern cloud platforms and CloudBees CI on traditional platforms:

  • Instance caps are being managed individually for each controller, there is no global limitation for the entire operations center cluster.

  • If you use Access Key ID and Secret Access Key to define EC2 credentials, these credentials will be shared across all CloudBees CI instances. EC2 must allow multiple logins from different places if you have multiple controllers.

The following apply to CloudBees CI on traditional platforms only:

  • If all target CloudBees CI instances are running on EC2 instances, you can use EC2 instance profile to obtain credentials from the instance’s metadata.

  • Currently there is no opportunity to set up different Regions for CloudBees CI instances in AWS EC2 Shared Cloud Configuration. In such cases, use individual setups of EC2 Cloud on each controller.

ec2 top configuration
Figure 1. AWS EC2 shared cloud configuration setup

Testing the configuration

  • If you click on the Test Connection button in the configuration, the test will be launched on operations center. Make sure that the AWS EC2 cloud is available to operations center.

  • If the instance is configured to obtain credentials from EC2 instance profile, operations center must be running on a properly configured Amazon Machine Image

  • You can also test the connection from one of Jenkins controllers when the configuration gets synchronized. It’s highly recommended if your AWS EC2 Shared Cloud Configuration uses EC2 instance profile to obtain credentials