Update docs
This commit is contained in:
parent
74db7aa6bb
commit
6ae7b3267a
|
|
@ -206,9 +206,116 @@ You can verify if deploy keys were successfully configured in Jenkins **Credenti
|
|||
|
||||

|
||||
|
||||
You can verify if your pipelines were successfully configured in Jenkins Seed Job console output.
|
||||
|
||||

|
||||
|
||||
## Jenkins Customisation
|
||||
|
||||
Jenkins can be customized using groovy scripts or configuration as code plugin. All custom configuration is stored in
|
||||
the **jenkins-operator-user-configuration-example** ConfigMap which is automatically created by **jenkins-operator**.
|
||||
|
||||
```
|
||||
kubectl get configmap jenkins-operator-user-configuration-example -o yaml
|
||||
|
||||
apiVersion: v1
|
||||
data:
|
||||
1-configure-theme.groovy: |2
|
||||
|
||||
import jenkins.*
|
||||
import jenkins.model.*
|
||||
import hudson.*
|
||||
import hudson.model.*
|
||||
import org.jenkinsci.plugins.simpletheme.ThemeElement
|
||||
import org.jenkinsci.plugins.simpletheme.CssTextThemeElement
|
||||
import org.jenkinsci.plugins.simpletheme.CssUrlThemeElement
|
||||
|
||||
Jenkins jenkins = Jenkins.getInstance()
|
||||
|
||||
def decorator = Jenkins.instance.getDescriptorByType(org.codefirst.SimpleThemeDecorator.class)
|
||||
|
||||
List<ThemeElement> configElements = new ArrayList<>();
|
||||
configElements.add(new CssTextThemeElement("DEFAULT"));
|
||||
configElements.add(new CssUrlThemeElement("https://cdn.rawgit.com/afonsof/jenkins-material-theme/gh-pages/dist/material-light-green.css"));
|
||||
decorator.setElements(configElements);
|
||||
decorator.save();
|
||||
|
||||
jenkins.save()
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app: jenkins-operator
|
||||
jenkins-cr: example
|
||||
watch: "true"
|
||||
name: jenkins-operator-user-configuration-example
|
||||
namespace: default
|
||||
```
|
||||
|
||||
When **jenkins-operator-user-configuration-example** ConfigMap is updated Jenkins automatically runs the **jenkins-operator-user-configuration** Jenkins Job which executes all scripts.
|
||||
|
||||
## Install Plugins
|
||||
|
||||
## Configure Authorization
|
||||
To install a plugin please add **2-install-slack-plugin.groovy** script to the **jenkins-operator-user-configuration-example** ConfigMap:
|
||||
|
||||
```
|
||||
apiVersion: v1
|
||||
data:
|
||||
1-configure-theme.groovy: |2
|
||||
|
||||
import jenkins.*
|
||||
import jenkins.model.*
|
||||
import hudson.*
|
||||
import hudson.model.*
|
||||
import org.jenkinsci.plugins.simpletheme.ThemeElement
|
||||
import org.jenkinsci.plugins.simpletheme.CssTextThemeElement
|
||||
import org.jenkinsci.plugins.simpletheme.CssUrlThemeElement
|
||||
|
||||
Jenkins jenkins = Jenkins.getInstance()
|
||||
|
||||
def decorator = Jenkins.instance.getDescriptorByType(org.codefirst.SimpleThemeDecorator.class)
|
||||
|
||||
List<ThemeElement> configElements = new ArrayList<>();
|
||||
configElements.add(new CssTextThemeElement("DEFAULT"));
|
||||
configElements.add(new CssUrlThemeElement("https://cdn.rawgit.com/afonsof/jenkins-material-theme/gh-pages/dist/material-light-green.css"));
|
||||
decorator.setElements(configElements);
|
||||
decorator.save();
|
||||
|
||||
jenkins.save()
|
||||
2-install-slack-plugin.groovy: |2
|
||||
|
||||
import jenkins.model.*
|
||||
import java.util.logging.Level
|
||||
import java.util.logging.Logger
|
||||
|
||||
def instance = Jenkins.getInstance()
|
||||
def plugins = instance.getPluginManager()
|
||||
def updateCenter = instance.getUpdateCenter()
|
||||
def hasInstalledPlugins = false
|
||||
|
||||
Logger logger = Logger.getLogger('jenkins.instance.restart')
|
||||
|
||||
if (!plugins.getPlugin("slack")) {
|
||||
logger.log(Level.INFO, "Installing plugin: slack")
|
||||
|
||||
updateCenter.updateAllSites()
|
||||
def plugin = updateCenter.getPlugin("slack")
|
||||
def installResult = plugin.deploy()
|
||||
while (!installResult.isDone()) sleep(10)
|
||||
hasInstalledPlugins = true
|
||||
instance.save()
|
||||
}
|
||||
|
||||
if (hasInstalledPlugins) {
|
||||
logger.log(Level.INFO, "Successfully installed slack plugin, restarting ...")
|
||||
// Queue a restart of the instance
|
||||
instance.save()
|
||||
instance.doSafeRestart(null)
|
||||
} else {
|
||||
logger.log(Level.INFO, "No plugins need installing.")
|
||||
}
|
||||
```
|
||||
|
||||
Then **jenkins-operator** will automatically trigger **jenkins-operator-user-configuration** Jenkins Job again.
|
||||
|
||||
## Configure Backup & Restore (work in progress)
|
||||
|
||||
|
|
@ -216,5 +323,17 @@ Not implemented yet.
|
|||
|
||||
## Debugging
|
||||
|
||||
Watch Kubernetes events:
|
||||
|
||||
```bash
|
||||
kubectl get events --sort-by='{.lastTimestamp}'
|
||||
```
|
||||
|
||||
Verify Jenkins master logs:
|
||||
|
||||
```bash
|
||||
kubectl logs -f jenkins-master-example
|
||||
```
|
||||
|
||||
[job-dsl]:https://github.com/jenkinsci/job-dsl-plugin
|
||||
[ssh-credentials]:https://github.com/jenkinsci/ssh-credentials-plugin
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
Loading…
Reference in New Issue