+ ``` shell
+ ./ci.sh cleanup-after-kud
+ logout
+ ```
+
+2. Install the Jenkins server into the machine. If the VM verifier
+ Jenkins job will not be added later, set `WITH_VAGRANT=no` in the
+ environment before running the install step.
+
+ ``` shell
+ # Use one of the following
+ WITH_VAGRANT=no ./ci.sh install-jenkins
+ ./ci.sh install-jenkins
+ ```
+
+ After the script has completed, the Jenkins server can be visited
+ at http://<listen_address>:8080.
+
+3. Add the Gerrit ssh key as Jenkins credential, so that the jobs can
+ pull code from Gerrit. `JENKINS_SSH_PRIVATE_KEY` is the path to the
+ private key file of the `icn.jenkins` Gerrit account.
+
+ ``` shell
+ JENKINS_SSH_PRIVATE_KEY="path/to/icn.jenkins/id_rsa"
+ ./ci.sh install-credentials
+ ```
+
+ To use a different account, edit `git-url` in `jjb/defaults.yaml`
+ with the account name and execute the above command with the
+ username specified.
+
+ ``` shell
+ JENKINS_SSH_USERNAME="username"
+ JENKINS_SSH_PRIVATE_KEY="path/to/username/id_rsa"
+ ./ci.sh install-credentials
+ ```
+
+4. To push the logs to Akraino Nexus server, we need to create the
+ authentication file for lftools.
+
+ ``` shell
+ JENKINS_LFTOOLS_USERNAME="username"
+ JENKINS_LFTOOLS_PASSWORD="password"
+ ./ci.sh install-lftools-credentials
+ ```
+
+5. Add the ICN Jenkins jobs to Jenkins. The script adds only a subset
+ of the available jobs; review the script for information about
+ other jobs.
+
+ ``` shell
+ ./ci.sh update-jobs
+ ```
+
+## Job specific instructions
+
+### icn-bluval
+
+The Bluval job requires that Jenkins ssh into the cluster control
+plane. The script can be used to create a new keypair for the
+`jenkins` user and install the credentials into an existing cluster.
+
+For example, where the control plane endpoint is at `192.168.151.254`
+and there exists `/home/ubuntu/.kube/config`:
+
+``` shell
+CLUSTER_MASTER_IP=192.168.151.254
+CLUSTER_SSH_USER=root
+./ci.sh install-jenkins-id