Adding external client controllers

2 minute read

Occasionally administrators will need to connect existing controllers to a CloudBees CI cluster, such as in the case of a team requiring a controller on Windows.

Existing controllers that are connected to the operations center lack key benefits of managed controllers like high availability and automatic agent management. Whenever possible, administrators should use a managed controller with CloudBees CI rather than connecting an existing controller.

  • Client controllers are monitored by the operations center just as managed controllers are monitored.

  • Administrators can see the status of all their managed controllers, team controllers, and client controllers from the operations center controllers page.

  • Client controllers can receive configuration updates from the operations center with configuration snippets.

  • Client controllers can share agents hosted in the cluster, offloading the burden of agent management from teams.

To add an external client controller:

  1. Sign in.

  2. Navigate to the operations center dashboard.

  3. In the left menu, select New Item.

  4. Complete the following information:

    • In Item name, type the name of the existing client controller to connect to the cluster.

    • Select client controller. Just as with managed controllers, client controllers offer some customization and configuration options on creation:

    • On-controller executors: Number of builds to execute concurrently on the client controller itself. The default setting is 2.

    • Email addresses: Contact information for the administrator who is responsible for maintaining the client controller.

    • Use WebSocket: Select this option to use a WebSocket for the connection. For details about WebSockets, see Using WebSockets to connect controllers to operations center. Once these settings are saved, the operations center will attempt to connect the client controller to the CloudBees CI cluster.

Verify that the operations center and the existing client controller can communicate with each other over both HTTP and JNLP ports. The host and port to use for JNLP is advertised through HTTP headers by each Jenkins controller.

You can connect an existing client controller to operations center by giving that client controller the TLS certificate for the operations center, typically through the Configure Global Security page in operations center. For more information, see How to programmatically connect a client controller to operations center.

If you are connecting multiple client controllers to your cluster, it is a good idea to automate that task using Shared configurations.

Once the client controller is connected, administrators should configure security and access controls for the controller.

Also refer to Managing controllers.