Jenkins plugin for 1&1 Cloud Server
This plugin allows Jenkins to start nodes on the 1&1 Cloud Server API on demand, and delete them when they are unused.
Jenkins plugin for 1&1 Cloud Server has the following requirements:
- 1&1 account (API key)
Before you begin, you need to have a 1&1 account.
To enable the API token:
- Log in to your 1&1 Control Panel and select the relevant package.
- Click 1&1 Cloud Panel from the Cloud Server section of the control panel.
- Select Users from the Management section of the Infrastructure menu.
- Select the user.
- In the API section in the lower part of the screen, click Disabled next to the API KEY.
- Click OK to activate the API key.
After the plugin is installed, navigate to the main Manage Jenkins > Configure System page, and scroll down to the Cloudsection. Click Add a new cloud and select the 1&1 option. This will display the UI for configuring the 1&1 Cloud Server plugin.
Cloud Option Reference
The following table lists the cloud options and their brief descriptions:
|Unique name||yes||The unique name for the cloud|
|API Token||yes||The 1&1 authentication key|
|SSH public key||yes||A valid public SSH Key to be copied into the server during creation|
|SSH private key||yes||A valid private SSH key to permit SSHing into the instances that are started|
|Instance cap||yes||The upper limit to the number of 1&1 servers that Jenkins is allowed to launch|
|Timeout in minutes||yes||Time reserved for the operations on this cloud to complete before triggering a timeout, expressed in minutes|
Fill out the options fields, then use Test Connection to verify that Jenkins can successfully connect to the 1&1 Cloud Server API.
After verifying the API connection, a new node template can be added by clicking Add button. Node templates will be used to create servers and launch them as nodes.
Server Option Reference
The following table lists the server options and their brief descriptions:
|Unique name||yes||An unique name for the node template/server. Note that no two node templates should have the same name within a Cloud. Each node template name must be unique. As the node template name is used in generating the server, name, only the characters A-Z, a-z. 0-9 and . can be used in the name.|
|Fixed instance size||Yes||The size used for provisioning new servers from this template.|
|Run as user||Yes||Jekins will SSH into the server as the user provided in this field. If you specify anything other than |
|Jenkins workspace directory path||Yes||Absolute path to a directory in which Jenkins will put the workspace directory. Make sure that the user Jenkins runs as has enough permissions to write into that directory.|
|SSH port||Yes||The port at which the SSH daemon is listening for the incoming SSH connections.|
|Labels||Yes||Labels (also called "tags") are used for grouping multiple nodes into one logical group. Use spaces between each label. For instance 'regression centos7' will assign a node the labels 'regression' and 'centos7'. For example, if you have multiple CentOS 7 nodes and you have jobs that require CentOS 7, then you can configure all your CentOS 7 nodes to have the label 'centos7', then tie the job to the 'centos7' label. This allows your job to run on any of your CentOS 7 nodes but not anywhere else.|
|Number of executors||Yes||Determines how many executors can run on the node. Should be an integer greater than zero.|
|Idle termination time||Yes||Determines how long nodes can remain idle before being terminated and the server destroyed.|
Times are expressed in minutes. A value of 0 indicates that idle nodes should never be terminated.
As Jenkins doesn't check the idle status of nodes every minute even if you tell it to (it might skip checks for a few minutes), Jenkins might terminate the node a few minutes later than what you specify in this field.
|Instance cap||Yes||The upper limit to the number of 1&1 servers that Jenkins is allowed to launch for this node template.|
|Init script||No||Initialization script used for node setup.|
|Allow jobs with no label restriction||No||If a non-empty set of labels is specified and this is checked, jobs that are not restricted to run on any specific node will trigger creation of a server based on this node template.|
If a non-empty set of labels is specified and this is not checked, jobs that are not restricted to run on any specific node will not trigger creation of a server based on this node Template.
If no labels for this node template are specified, then regardless of whether this option is checked or not, jobs that are not restricted to run on any specific node will trigger creation of a server based on this node Template.
You are welcome to contact us with questions or comments using the Community section of the 1&1 Cloud Community. Please report any feature requests or issues using GitHub issue tracker.
- Fork the repository (https://github.com/jenkinsci/oneandone-cloudserver-plugin/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request