diff --git a/.github/stale.yml b/.github/stale.yml index 2e673a38..54099982 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -20,7 +20,7 @@ markComment: > This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. - + pulls: markComment: > This pull request has been automatically marked as stale because it has not had diff --git a/README.md b/README.md index 82cd996b..9a11fa2d 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,6 @@ mvn hpi:run ```text ... -... INFO: Jenkins is fully up and running ``` diff --git a/demos/alauda-devops-sync/README.md b/demos/alauda-devops-sync/README.md index 0e2c4097..b2c0119e 100644 --- a/demos/alauda-devops-sync/README.md +++ b/demos/alauda-devops-sync/README.md @@ -5,10 +5,7 @@ Alauda DevOps Sync plugin configuration belongs under `unclassified` root elemen ## sample configuration ```yaml -jenkins: - [...] unclassified: - [...] alaudaSync: enabled: true jenkinsService: jenkins diff --git a/demos/artifactory/README.md b/demos/artifactory/README.md index 13f0dde6..36e260f2 100644 --- a/demos/artifactory/README.md +++ b/demos/artifactory/README.md @@ -5,17 +5,14 @@ Artifactory plugin configuration belongs under `unclassified` root element ## sample configuration ```yaml -jenkins: - [...] unclassified: - [...] artifactorybuilder: useCredentialsPlugin: true artifactoryServers: - serverId: artifactory artifactoryUrl: http://acme.com/artifactory deployerCredentialsConfig: - credentialsId: 'artifactory' + credentialsId: "artifactory" resolverCredentialsConfig: username: artifactory_user password: ${ARTIFACTORY_PASSWORD} @@ -25,4 +22,4 @@ unclassified: Currently setting credentials causes ERROR & `Enable Push to Bintray` is not supported (always enabled). -see [https://www.jfrog.com/jira/browse/HAP-1018] +see [jfrog/HAP-1018](https://www.jfrog.com/jira/browse/HAP-1018) diff --git a/demos/build_agents/README.md b/demos/build_agents/README.md index 6f7016f8..f4bdf7e6 100644 --- a/demos/build_agents/README.md +++ b/demos/build_agents/README.md @@ -6,7 +6,6 @@ Build agents configuration belongs (currently) under `jenkins` root element ```yaml jenkins: - (...) nodes: - permanent: labelString: "linux docker test" diff --git a/demos/credentials/credentials.yaml b/demos/credentials/credentials.yaml index 9ba84185..541e06ab 100644 --- a/demos/credentials/credentials.yaml +++ b/demos/credentials/credentials.yaml @@ -1,8 +1,6 @@ jenkins: systemMessage: "Example of configuring credentials in Jenkins" -[..] - credentials: system: domainCredentials: diff --git a/demos/ec2/README.md b/demos/ec2/README.md index f35bc06c..1bb26a39 100644 --- a/demos/ec2/README.md +++ b/demos/ec2/README.md @@ -1,6 +1,6 @@ # configure Amazon EC2 plugin -https://wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin +[Amazon EC2 Plugin](https://wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin) ## sample configuration diff --git a/demos/jenkins/README.md b/demos/jenkins/README.md index df6365fa..f49f3e8d 100644 --- a/demos/jenkins/README.md +++ b/demos/jenkins/README.md @@ -35,6 +35,6 @@ jenkins: numExecutors: 1 # This is just a random example entry to show that there is no "end token" for the multiline string apart from un-indent to the next YAML property. ``` -# implementation note +## implementation note The example above is only a subset of commonly used settings. The full list is available in the generated documentation. diff --git a/demos/jenkins/jenkins.yaml b/demos/jenkins/jenkins.yaml index 90fc8d65..b6e9269f 100644 --- a/demos/jenkins/jenkins.yaml +++ b/demos/jenkins/jenkins.yaml @@ -3,7 +3,7 @@ jenkins: numExecutors: 5 scmCheckoutRetryCount: 2 mode: NORMAL - + globalNodeProperties: - envVars: env: @@ -36,8 +36,6 @@ jenkins: user: "jenkins" instanceCapStr: "10" - - tool: git: installations: @@ -45,11 +43,10 @@ tool: home: /usr/local/bin/git security: - remotingCLI: - enabled: false + remotingCLI: + enabled: false unclassified: - artifactorybuilder: useCredentialsPlugin: true artifactoryServers: @@ -59,7 +56,7 @@ unclassified: resolverCredentialsConfig: username: artifactory_user password: ${ARTIFACTORY_PASSWORD} - + globalLibraries: libraries: - name: "awesome-lib" diff --git a/demos/jobs/bitbucket.yaml b/demos/jobs/bitbucket.yaml index adeadbe5..51f92f09 100644 --- a/demos/jobs/bitbucket.yaml +++ b/demos/jobs/bitbucket.yaml @@ -6,7 +6,7 @@ jobs: organizationFolder('Bitbucket Organization Folder') { description("Bitbucket orga folder configured with JCasC") displayName('My Project') - + // "Projects" organizations { bitbucket { @@ -15,11 +15,11 @@ jobs: repoOwner("OWN") credentialsId("bitbucket-http") - // "Traits" ("Behaviours" in the GUI) that are "declarative-compatible" - traits { + // "Traits" ("Behaviours" in the GUI) that are "declarative-compatible" + traits { webhookRegistrationTrait { mode('ITEM') - } + } submoduleOptionTrait { extension { disableSubmodules(false) @@ -35,20 +35,20 @@ jobs: } - // "Traits" ("Behaviours" in the GUI) that are NOT "declarative-compatible" + // "Traits" ("Behaviours" in the GUI) that are NOT "declarative-compatible" // For some 'traits, we need to configure this stuff by hand until JobDSL handles it // https://issues.jenkins.io/browse/JENKINS-45504 configure { node -> def traits = node / navigators / 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator' / traits traits << 'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait' { - strategyId('3') + strategyId('3') } traits << 'com.cloudbees.jenkins.plugins.bitbucket.SSHCheckoutTrait' { - credentialsId('bitbucket-ssh') + credentialsId('bitbucket-ssh') } - } - + } + // "Project Recognizers" projectFactories { workflowMultiBranchProjectFactory { diff --git a/demos/jobs/multibranch-github.yaml b/demos/jobs/multibranch-github.yaml index 3d524a0c..c01ac9e2 100644 --- a/demos/jobs/multibranch-github.yaml +++ b/demos/jobs/multibranch-github.yaml @@ -1,19 +1,19 @@ jobs: - script: > - multibranchPipelineJob('image-jenkins') { - branchSources { - github { - scanCredentialsId('github') - repoOwner('my-org') - repository('my-repository') - } - } - orphanedItemStrategy { - discardOldItems { - numToKeep(1) - } - } - triggers { - periodic(5) - } - } + multibranchPipelineJob('image-jenkins') { + branchSources { + github { + scanCredentialsId('github') + repoOwner('my-org') + repository('my-repository') + } + } + orphanedItemStrategy { + discardOldItems { + numToKeep(1) + } + } + triggers { + periodic(5) + } + } diff --git a/demos/jobs/pipeline.yaml b/demos/jobs/pipeline.yaml index c52b3ec5..f4bfa995 100644 --- a/demos/jobs/pipeline.yaml +++ b/demos/jobs/pipeline.yaml @@ -1,21 +1,21 @@ jobs: - script: > - folder('testjobs') + folder('testjobs') - script: > - pipelineJob('testjobs/default-agent') { - definition { - cps { - script("""\ - pipeline { - agent any - stages { - stage ('test') { - steps { - echo "hello" - } - } - } - }""".stripIndent()) - } - } - } + pipelineJob('testjobs/default-agent') { + definition { + cps { + script("""\ + pipeline { + agent any + stages { + stage ('test') { + steps { + echo "hello" + } + } + } + }""".stripIndent()) + } + } + } diff --git a/demos/kubernetes-helm/README.md b/demos/kubernetes-helm/README.md index 3288b6b5..ab034937 100644 --- a/demos/kubernetes-helm/README.md +++ b/demos/kubernetes-helm/README.md @@ -92,7 +92,7 @@ Master: Now, deploy the Helm chart with those customized values: -``` +```bash helm install --name jenkins stable/jenkins -f values.yaml ``` diff --git a/demos/kubernetes-helm/values.yaml b/demos/kubernetes-helm/values.yaml index 51aae21c..29bd345c 100644 --- a/demos/kubernetes-helm/values.yaml +++ b/demos/kubernetes-helm/values.yaml @@ -8,11 +8,11 @@ Master: Image: "jenkins/jenkins" ImageTag: "lts" ImagePullPolicy: "Always" -# ImagePullSecret: jenkins + # ImagePullSecret: jenkins Component: "jenkins-master" UseSecurity: true AdminUser: admin -# AdminPassword: "" + # AdminPassword: "" OwnSshKey: false # If CasC auto-reload is enabled, an SSH (RSA) keypair is needed. Can either provide your own, or leave unconfigured\false to allow a random key to be auto-generated. # If you choose to use your own, you must upload your decrypted RSA private key (not the public key above) to a Kubernetes secret using the following command: @@ -76,52 +76,51 @@ Master: ContainerEnv: InitContainerEnv: -# Set min/max heap here if needed with: -# JavaOpts: "-Xms512m -Xmx512m" -# Optionally configure a JMX port -# requires additional JavaOpts, ie -# JavaOpts: > -# -Dcom.sun.management.jmxremote.port=4000 -# -Dcom.sun.management.jmxremote.authenticate=false -# -Dcom.sun.management.jmxremote.ssl=false -# JMXPort: 4000 -# List of plugins to be install during Jenkins master start + # Set min/max heap here if needed with: + # JavaOpts: "-Xms512m -Xmx512m" + # Optionally configure a JMX port + # requires additional JavaOpts, ie + # JavaOpts: > + # -Dcom.sun.management.jmxremote.port=4000 + # -Dcom.sun.management.jmxremote.authenticate=false + # -Dcom.sun.management.jmxremote.ssl=false + # JMXPort: 4000 + # List of plugins to be install during Jenkins master start InstallPlugins: - - kubernetes:latest - - kubernetes-credentials:latest - - workflow-aggregator:latest - - workflow-job:latest - - credentials-binding:latest - - git:latest + - kubernetes:latest + - kubernetes-credentials:latest + - workflow-aggregator:latest + - workflow-job:latest + - credentials-binding:latest + - git:latest - # - saml:1.0.5 - # - docker-custom-build-environment:latest -# Used to approve a list of groovy functions in pipelines used the script-security plugin. Can be viewed under /scriptApproval + # - saml:1.0.5 + # - docker-custom-build-environment:latest + # Used to approve a list of groovy functions in pipelines used the script-security plugin. Can be viewed under /scriptApproval # ScriptApproval: # - "method groovy.json.JsonSlurperClassic parseText java.lang.String" # - "new groovy.json.JsonSlurperClassic" -# List of groovy init scripts to be executed during Jenkins master start + # List of groovy init scripts to be executed during Jenkins master start InitScripts: -# - | -# print 'adding global pipeline libraries, register properties, bootstrap jobs...' + # - | + # print 'adding global pipeline libraries, register properties, bootstrap jobs...' CustomConfigMap: false ServicePort: 8080 -# For minikube, set this to NodePort, elsewhere use LoadBalancer -# Use ClusterIP if your setup includes ingress controller + # For minikube, set this to NodePort, elsewhere use LoadBalancer + # Use ClusterIP if your setup includes ingress controller ServiceType: ClusterIP ServiceAnnotations: {} ContainerPort: 8080 SlaveListenerPort: 50000 LoadBalancerSourceRanges: - - 0.0.0.0/0 + - 0.0.0.0/0 # HostName: jenkins.cicd.your.cloud Ingress: Enabled: false # Annotations: # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "false" - # TLS: # - secretName: jenkins.cicd.your.cloud # hosts: diff --git a/demos/kubernetes-secrets/README.md b/demos/kubernetes-secrets/README.md index 6d862cff..d7540669 100644 --- a/demos/kubernetes-secrets/README.md +++ b/demos/kubernetes-secrets/README.md @@ -1,14 +1,14 @@ # Configure Kubernetes secrets for Jenkins Configuration as Code plugin -### Prerequisites +## Prerequisites 1. `SECRETS` environment variable should provide a path to mounted secret volume. 2. Kubernetes secrets with all required values. 3. `volumeMounts` and `volumes` directives of Kubernetes manifest should have records for Kubernetes secrets mounts. -### Sample configuration +## Sample configuration -``` +```yml --- apiVersion: v1 kind: ConfigMap @@ -32,11 +32,9 @@ data: --- apiVersion: apps/v1beta1 kind: StatefulSet -... spec: containers: - name: jenkins - ... env: # Read the configuration-as-code from the ConfigMap - name: CASC_JENKINS_CONFIG @@ -45,7 +43,6 @@ kind: StatefulSet # we point Jenkins Configuration as Code plugin the location of the secrets - name: SECRETS value: /secrets/jenkins - ... # Mount the configuration-as-code ConfigMap volumeMounts: - name: jenkins-configuration-as-code @@ -53,7 +50,6 @@ kind: StatefulSet - name: jenkins-secrets mountPath: /secrets/jenkins readOnly: true - ... volumes: # The configuration-as-code ConfigMap - name: jenkins-configuration-as-code diff --git a/demos/kubernetes/README.md b/demos/kubernetes/README.md index 09566d6a..d6693fbf 100644 --- a/demos/kubernetes/README.md +++ b/demos/kubernetes/README.md @@ -6,7 +6,7 @@ See [config.yml](config.yml) for the `ConfigMap` definition. Example installation on Kubernetes: -``` +```bash kubectl apply -f service-account.yml kubectl apply -f config.yml kubectl apply -f jenkins.yml diff --git a/demos/kubernetes/jenkins.yml b/demos/kubernetes/jenkins.yml index 9be60b38..d38db62c 100644 --- a/demos/kubernetes/jenkins.yml +++ b/demos/kubernetes/jenkins.yml @@ -1,5 +1,4 @@ # jenkins - --- apiVersion: apps/v1beta1 kind: StatefulSet @@ -68,22 +67,21 @@ spec: securityContext: fsGroup: 1000 volumes: - # The configuration-as-code ConfigMap - name: jenkins-configuration-as-code configMap: name: jenkins-configuration-as-code volumeClaimTemplates: - - metadata: - name: jenkins-home - # annotations: - # volume.beta.kubernetes.io/storage-class: anything - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi + - metadata: + name: jenkins-home + # annotations: + # volume.beta.kubernetes.io/storage-class: anything + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 1Gi --- apiVersion: v1 @@ -100,12 +98,10 @@ spec: # k8s 1.7+ externalTrafficPolicy: Local ports: - - - name: http + - name: http port: 80 targetPort: 8080 protocol: TCP - - - name: agent + - name: agent port: 50000 protocol: TCP diff --git a/demos/kubernetes/service-account.yml b/demos/kubernetes/service-account.yml index ecfe04a5..9a2a710a 100644 --- a/demos/kubernetes/service-account.yml +++ b/demos/kubernetes/service-account.yml @@ -13,18 +13,18 @@ apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: jenkins rules: -- apiGroups: [""] - resources: ["pods"] - verbs: ["create","delete","get","list","patch","update","watch"] -- apiGroups: [""] - resources: ["pods/exec"] - verbs: ["create","delete","get","list","patch","update","watch"] -- apiGroups: [""] - resources: ["pods/log"] - verbs: ["get","list","watch"] -- apiGroups: [""] - resources: ["secrets"] - verbs: ["get"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["create", "delete", "get", "list", "patch", "update", "watch"] + - apiGroups: [""] + resources: ["pods/exec"] + verbs: ["create", "delete", "get", "list", "patch", "update", "watch"] + - apiGroups: [""] + resources: ["pods/log"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1beta1 @@ -36,5 +36,5 @@ roleRef: kind: Role name: jenkins subjects: -- kind: ServiceAccount - name: jenkins + - kind: ServiceAccount + name: jenkins diff --git a/demos/mailer/README.md b/demos/mailer/README.md index 9df08534..41aac15a 100644 --- a/demos/mailer/README.md +++ b/demos/mailer/README.md @@ -23,5 +23,4 @@ It is identified as YAML root element `mailer` as this descriptor has a `global. assumes it makes sense to expose it as a root element extension. Descriptor defines setters so we can inject configuration, but for SMTP authentication parameters. -See https://github.com/jenkinsci/configuration-as-code-plugin/issues/2. -See https://github.com/jenkinsci/mailer-plugin/pull/39 +See [jenknisci/mailer-plugin#39](https://github.com/jenkinsci/mailer-plugin/pull/39) diff --git a/demos/proxy/proxy.yaml b/demos/proxy/proxy.yaml index 080ef4da..10ce507b 100644 --- a/demos/proxy/proxy.yaml +++ b/demos/proxy/proxy.yaml @@ -5,4 +5,4 @@ jenkins: userName: "login" password: "password" noProxyHost: "externalhost" - testUrl: "http://google.com" \ No newline at end of file + testUrl: "http://google.com" diff --git a/demos/proxy/proxyMinimal.yaml b/demos/proxy/proxyMinimal.yaml index 49c5d81e..9617f9f1 100644 --- a/demos/proxy/proxyMinimal.yaml +++ b/demos/proxy/proxyMinimal.yaml @@ -1,4 +1,4 @@ jenkins: proxy: name: "proxyhost" - port: 80 \ No newline at end of file + port: 80 diff --git a/demos/role-strategy-auth/README.md b/demos/role-strategy-auth/README.md index a2b500da..f8a1b9ef 100644 --- a/demos/role-strategy-auth/README.md +++ b/demos/role-strategy-auth/README.md @@ -4,4 +4,76 @@ Basic configuration of the [Role-based Authorization Strategy plugin](https://pl ## sample -Check out the example YAML file [role-strategy-auth.yaml] which is taken from the plugins' integration test resources +```yml +jenkins: + authorizationStrategy: + roleBased: + roles: + global: + - name: "admin" + description: "Jenkins administrators" + permissions: + - "Overall/Administer" + assignments: + - "admin" + - name: "readonly" + description: "Read-only users" + permissions: + - "Overall/Read" + - "Job/Read" + assignments: + - "authenticated" + items: + - name: "FolderA" + description: "Jobs in Folder A, but not the folder itself" + pattern: "A/.*" + permissions: + - "Job/Configure" + - "Job/Build" + - "Job/Delete" + assignments: + - "user1" + - "user2" + - name: "FolderB" + description: "Jobs in Folder B, but not the folder itself" + pattern: "B.*" + permissions: + - "Job/Configure" + - "Job/Build" + assignments: + - "user2" + agents: + - name: "Agent1" + description: "Agent 1" + pattern: "agent1" + permissions: + - "Agent/Build" + assignments: + - "user1" + + securityRealm: + local: + allowsSignup: false + users: + - id: "admin" + password: "1234" + - id: "user1" + password: "" + - id: "user_hashed" + # password is password + password: "#jbcrypt:$2a$10$3bnAsorIxhl9kTYvNHa2hOJQwPzwT4bv9Vs.9KdXkh9ySANjJKm5u" + + nodes: + - dumb: + mode: NORMAL + name: "agent1" + remoteFS: "/home/user1" + launcher: jnlp + - dumb: + mode: NORMAL + name: "agent2" + remoteFS: "/home/user1" + launcher: jnlp +``` + +which is taken from the plugins' [integration test resources](../../integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy1.yml) diff --git a/demos/role-strategy-auth/role-strategy-auth.yaml b/demos/role-strategy-auth/role-strategy-auth.yaml deleted file mode 100644 index caa86862..00000000 --- a/demos/role-strategy-auth/role-strategy-auth.yaml +++ /dev/null @@ -1,70 +0,0 @@ -jenkins: - [..] - authorizationStrategy: - roleBased: - roles: - global: - - name: "admin" - description: "Jenkins administrators" - permissions: - - "Overall/Administer" - assignments: - - "admin" - - name: "readonly" - description: "Read-only users" - permissions: - - "Overall/Read" - - "Job/Read" - assignments: - - "authenticated" - items: - - name: "FolderA" - description: "Jobs in Folder A, but not the folder itself" - pattern: "A/.*" - permissions: - - "Job/Configure" - - "Job/Build" - - "Job/Delete" - assignments: - - "user1" - - "user2" - - name: "FolderB" - description: "Jobs in Folder B, but not the folder itself" - pattern: "B.*" - permissions: - - "Job/Configure" - - "Job/Build" - assignments: - - "user2" - agents: - - name: "Agent1" - description: "Agent 1" - pattern: "agent1" - permissions: - - "Agent/Build" - assignments: - - "user1" - - securityRealm: - local: - allowsSignup: false - users: - - id: "admin" - password: "1234" - - id: "user1" - password: "" - - id: "user_hashed" - # password is password - password: "#jbcrypt:$2a$10$3bnAsorIxhl9kTYvNHa2hOJQwPzwT4bv9Vs.9KdXkh9ySANjJKm5u" - - nodes: - - dumb: - mode: NORMAL - name: "agent1" - remoteFS: "/home/user1" - launcher: jnlp - - dumb: - mode: NORMAL - name: "agent2" - remoteFS: "/home/user1" - launcher: jnlp \ No newline at end of file diff --git a/demos/sonarqube/README.md b/demos/sonarqube/README.md index e18fa932..d5efe2a1 100644 --- a/demos/sonarqube/README.md +++ b/demos/sonarqube/README.md @@ -5,9 +5,6 @@ Sample configuration for the SonarQube plugin ```yaml -jenkins: - [...] - unclassified: sonarglobalconfiguration: # mandatory buildWrapperEnabled: true diff --git a/demos/terraform/README.md b/demos/terraform/README.md index 2812a1e8..12b17516 100644 --- a/demos/terraform/README.md +++ b/demos/terraform/README.md @@ -1,8 +1,10 @@ # example of how to configure terraform plugin +## Prerequisites + to test it from root of the current repository: -``` +```bash export CASC_JENKINS_CONFIG=$(PWD)/demos/terraform/jenkins.yaml mvn hpi:run ``` @@ -13,3 +15,44 @@ You need to install the following plugins to make it work (you can do it before - Configuration As Code Support - Job DSL - SSH Credentials + +## Sample + +```yml +jenkins: + systemMessage: "Jenkins configured automatically by Jenkins Configuration as Code plugin\n\n" + +tool: + terraforminstallation: + installations: + - name: terraform + home: "" + properties: + - installSource: + installers: + - terraformInstaller: + id: "0.11.9-linux-amd64" + +jobs: + - script: > + job("terraform-job") { + description() + keepDependencies(false) + disabled(false) + concurrentBuild(false) + wrappers { + terraformBuildWrapper { + variables("") + terraformInstallation("terraform") + doGetUpdate(true) + doNotApply(false) + doDestroy(false) + config { + value("inline") + inlineConfig("") + fileConfig("") + } + } + } + } +``` diff --git a/demos/terraform/jenkins.yaml b/demos/terraform/jenkins.yaml deleted file mode 100644 index 3987cdc8..00000000 --- a/demos/terraform/jenkins.yaml +++ /dev/null @@ -1,36 +0,0 @@ -jenkins: - systemMessage: "Jenkins configured automatically by Jenkins Configuration as Code plugin\n\n" - -tool: - terraforminstallation: - installations: - - name: terraform - home: "" - properties: - - installSource: - installers: - - terraformInstaller: - id: '0.11.9-linux-amd64' - -jobs: - - script: > - job("terraform-job") { - description() - keepDependencies(false) - disabled(false) - concurrentBuild(false) - wrappers { - terraformBuildWrapper { - variables("") - terraformInstallation("terraform") - doGetUpdate(true) - doNotApply(false) - doDestroy(false) - config { - value("inline") - inlineConfig("") - fileConfig("") - } - } - } - } diff --git a/docs/DEVELOPER.md b/docs/DEVELOPER.md index 2cff65da..506f94cd 100644 --- a/docs/DEVELOPER.md +++ b/docs/DEVELOPER.md @@ -4,9 +4,9 @@ This document describes the JCasC API and design for plugin developers who are i extending JCasC by implementing custom Configurators or re-using the configuration mechanism in another context. -# Using Configuration as Code +## Using Configuration as Code -## Configurators +### Configurators Third party code to rely on JCasC has to create a key:value hierarchical representation of the target component and its sub-components. This representation is defined by the `io.jenkins.plugins.casc.model` package, @@ -16,7 +16,7 @@ The main API is the `Configurator` which encapsulates access to the target compo Such a data model is exposed to external usage as a set of `Attribute`s via the `Configurator.describe()` method. Each key in the key:value representation used as configuration input, has to match an `Attribute`. -## ConfigurationContext +### ConfigurationContext The configuration process only relies on `ConfigurationContext` to convert the key:value representation into a live component instance. Third party components to use this mechanism can provide a custom context, while @@ -28,13 +28,13 @@ JCasC relies on registered Jenkins components. - defines registry to retrieve Configurator for various component and classes to be configured - offers option to register `Listener`s to get notified about the configuration process and react on errors -## YAML support +### YAML support `io.jenkins.plugins.casc.yaml` package defines the implementation for loading the configuration from YAML sources. `YamlUtils.loadFrom` encapsulates the YAML parsing and merge process from a set of YAML documents, while `YamlSource` abstracts the way we load documents from files, URLs, or any other sources. -# Extending Configuration as Code +## Extending Configuration as Code `Configurator` and `Attribute` are the core abstraction of Configuration as Code to offer implementation flexibility. JCasC offers an implementation based on introspecting Java classes, relying on web UI data-binding diff --git a/docs/migrate.md b/docs/migrate.md index 0aaecc3d..888b36b2 100644 --- a/docs/migrate.md +++ b/docs/migrate.md @@ -10,10 +10,10 @@ Jenkins Configuration as Code solves both problems - you don't need to access Je We've decided to use the YAML format so writing the configuration "by hand" should be easy. Your existing Jenkins can be also used as a documentation - the YAML file tries to mimic the UI you're used to as much as possible. Plugin provides documentation generated for your specific Jenkins instance - after you install it, and it is available at: -http://[your_jenkins_url]/configuration-as-code/ +`http://[your_jenkins_url]/configuration-as-code/` Various samples of plugins' configuration can be found in [demos](../demos) folder ## Export existing configuration -To be able to do that, you need to install the plugin manually on your working Jenkins instance and use the export function under http://[your_jenkins_url]/configuration-as-code/. Please note that export is not intended to offer a directly usable jenkins.yaml configuration. It can be used for inspiration writing your own, but be aware that export can be partial, or fail for some components. +To be able to do that, you need to install the plugin manually on your working Jenkins instance and use the export function under `http://[your_jenkins_url]/configuration-as-code/`. Please note that export is not intended to offer a directly usable jenkins.yaml configuration. It can be used for inspiration writing your own, but be aware that export can be partial, or fail for some components. diff --git a/docs/vault/setup-vault-using-docker.md b/docs/vault/setup-vault-using-docker.md index 1af633ae..1c2484a3 100644 --- a/docs/vault/setup-vault-using-docker.md +++ b/docs/vault/setup-vault-using-docker.md @@ -68,22 +68,22 @@ ## Run it -1. Set execute permissions on the newly created scripts: `chmod u+x run-consul-agent.sh` -1. Set execute permissions on the newly created scripts: `chmod u+x run-vault-server.sh` -1. Execute: `./run-consul-agent.sh` to start the consul agent locally - - Verify that the consul agent is up and running, connected to the cluster. -1. Execute: `./run-vault-server.sh` to start the vault server -1. Configure the vault server - - Execute: `docker exec -it vault /bin/sh` to access the vault docker container - - Execute: `vault operator init` to initialize the vault server. Take note of the _Unseal Keys_ and the _Initial Root Token_. Without these, the vault is lost when sealed/locked - - Execute: `vault operator unseal` to unseal/open the vault. Follow the onscreen instructions and use 3 of the five _Unseal Keys_ - - Execute: `exit` to log out of the vault docker container +- Set execute permissions on the newly created scripts: `chmod u+x run-consul-agent.sh` +- Set execute permissions on the newly created scripts: `chmod u+x run-vault-server.sh` +- Execute: `./run-consul-agent.sh` to start the consul agent locally + - Verify that the consul agent is up and running, connected to the cluster. +- Execute: `./run-vault-server.sh` to start the vault server +- Configure the vault server + - Execute: `docker exec -it vault /bin/sh` to access the vault docker container + - Execute: `vault operator init` to initialize the vault server. Take note of the _Unseal Keys_ and the _Initial Root Token_. Without these, the vault is lost when sealed/locked + - Execute: `vault operator unseal` to unseal/open the vault. Follow the onscreen instructions and use 3 of the five _Unseal Keys_ + - Execute: `exit` to log out of the vault docker container ## Test it -1. Execute: `export VAULT_TOKEN="[VAULT_TOKEN]"` where _Vault Token_ is used -1. Execute: `curl --header "X-Vault-Token: $VAULT_TOKEN" --request POST --data '{"bar": "Baz"}' http://vault.domain.local:8200/v1/secret/foo` to put test data into the vault. No output is returned if it works -1. Execute: `curl --header "X-Vault-Token: $VAULT_TOKEN" http://vault.domain.local:8200/v1/secret/foo` to get test data from the vault. Expected output is JSON formatted: +- Execute: `export VAULT_TOKEN="[VAULT_TOKEN]"` where _Vault Token_ is used +- Execute: `curl --header "X-Vault-Token: $VAULT_TOKEN" --request POST --data '{"bar": "Baz"}' http://vault.domain.local:8200/v1/secret/foo` to put test data into the vault. No output is returned if it works +- Execute: `curl --header "X-Vault-Token: $VAULT_TOKEN" http://vault.domain.local:8200/v1/secret/foo` to get test data from the vault. Expected output is JSON formatted: ```json { diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/ActiveDirectoryTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/ActiveDirectoryTest.yml index cc96e444..0331e9e7 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/ActiveDirectoryTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/ActiveDirectoryTest.yml @@ -1,13 +1,12 @@ jenkins: - securityRealm: activeDirectory: domains: - - name: "acme" - servers: "ad1.acme.com:123,ad2.acme.com:456" - site: "site" - bindName: "admin" - bindPassword: "${BIND_PASSWORD}" + - name: "acme" + servers: "ad1.acme.com:123,ad2.acme.com:456" + site: "site" + bindName: "admin" + bindPassword: "${BIND_PASSWORD}" groupLookupStrategy: "RECURSIVE" removeIrrelevantGroups: true customDomain: true @@ -17,4 +16,4 @@ jenkins: startTls: true tlsConfiguration: JDK_TRUSTSTORE internalUsersDatabase: - jenkinsInternalUser: "jenkins" \ No newline at end of file + jenkinsInternalUser: "jenkins" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/CredentialsWithDomain.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/CredentialsWithDomain.yml index ef89ddaf..fa5a9f4b 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/CredentialsWithDomain.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/CredentialsWithDomain.yml @@ -3,7 +3,7 @@ jenkins: credentials: system: domainCredentials: - - domain : + - domain: name: "test.com" description: "test.com domain" specifications: @@ -11,7 +11,7 @@ credentials: includes: "*.test.com" credentials: - usernamePassword: - scope: SYSTEM - id: user1 + scope: SYSTEM + id: user1 username: Administrator - password: secret \ No newline at end of file + password: secret diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/CustomToolsTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/CustomToolsTest.yml index fcf05269..c3a8e8e5 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/CustomToolsTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/CustomToolsTest.yml @@ -5,8 +5,8 @@ tool: home: "" properties: - installSource: - - command: - toolHome: "/bin/my-tool" - command: > - curl -o my-tool.tar.bz2 -L https://github.com/my/tool/releases/download/v0.1.0/linux-amd64-my-tool.tar.bz2 - tar -xvjf my-tool.tar.bz2 \ No newline at end of file + - command: + toolHome: "/bin/my-tool" + command: > + curl -o my-tool.tar.bz2 -L https://github.com/my/tool/releases/download/v0.1.0/linux-amd64-my-tool.tar.bz2 + tar -xvjf my-tool.tar.bz2 diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest.yml index 69abd1ae..0eeaba8e 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest.yml @@ -21,4 +21,4 @@ jenkins: user: "jenkins" instanceCapStr: "10" retentionStrategy: - idleMinutes: 1 \ No newline at end of file + idleMinutes: 1 diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest2.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest2.yml index aae9efc6..2f73c59c 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest2.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/DockerCloudTest2.yml @@ -34,4 +34,4 @@ jenkins: connector: attach: user: "jenkins" - instanceCapStr: "5" \ No newline at end of file + instanceCapStr: "5" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/EssentialsTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/EssentialsTest.yml index 7edaf3ae..45fe446b 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/EssentialsTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/EssentialsTest.yml @@ -9,10 +9,10 @@ jenkins: unclassified: metricsaccesskey: accessKeys: - - key: "evergreen" - description: "Key for evergreen health-check" + - key: "evergreen" + description: "Key for evergreen health-check" canHealthCheck: true - canPing: false - canThreadDump: false - canMetrics: false - origins: "*" + canPing: false + canThreadDump: false + canMetrics: false + origins: "*" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/GitLabTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/GitLabTest.yml index 2d7b1ccc..de41d090 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/GitLabTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/GitLabTest.yml @@ -10,10 +10,10 @@ credentials: unclassified: gitlabconnectionconfig: connections: - - apiTokenId: gitlab_token - clientBuilderId: "autodetect" - connectionTimeout: 20 - ignoreCertificateErrors: true - name: "my_gitlab_server" - readTimeout: 10 - url: "https://gitlab.com/" \ No newline at end of file + - apiTokenId: gitlab_token + clientBuilderId: "autodetect" + connectionTimeout: 20 + ignoreCertificateErrors: true + name: "my_gitlab_server" + readTimeout: 10 + url: "https://gitlab.com/" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/GitToolInstallationTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/GitToolInstallationTest.yml index 5bf12297..a1f9b45d 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/GitToolInstallationTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/GitToolInstallationTest.yml @@ -5,4 +5,3 @@ tool: home: /bin/git - name: another_git home: /usr/local/bin/git - diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/GithubOAuth.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/GithubOAuth.yml index 91720d45..210c5632 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/GithubOAuth.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/GithubOAuth.yml @@ -5,4 +5,4 @@ jenkins: githubApiUri: "https://api.github.com" clientID: "someId" clientSecret: "${GITHUB_SECRET}" - oauthScopes: "read:org,user:email" \ No newline at end of file + oauthScopes: "read:org,user:email" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalCredentials.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalCredentials.yml index 33f2c257..a370af0d 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalCredentials.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalCredentials.yml @@ -14,7 +14,7 @@ credentials: scope: SYSTEM id: agent-private-key username: agentuser - passphrase: password + passphrase: password description: "ssh private key used to connect ssh slaves" privateKeySource: directEntry: diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalLibrariesTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalLibrariesTest.yml index 07adfcdf..79cca42a 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalLibrariesTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalLibrariesTest.yml @@ -6,4 +6,4 @@ unclassified: modernSCM: scm: git: - remote: "https://github.com/jenkins-infra/pipeline-library.git" \ No newline at end of file + remote: "https://github.com/jenkins-infra/pipeline-library.git" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalMatrixStrategy.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalMatrixStrategy.yml index 5c7442eb..56111021 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalMatrixStrategy.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/GlobalMatrixStrategy.yml @@ -7,12 +7,11 @@ jenkins: local: allowsSignup: false users: - - id: test - password: test + - id: test + password: test authorizationStrategy: globalMatrix: grantedPermissions: - "Overall/Read:anonymous" - "Overall/Administer:authenticated" - diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/JobDslGlobalSecurityConfigurationTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/JobDslGlobalSecurityConfigurationTest.yml index 08859579..d93a48ca 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/JobDslGlobalSecurityConfigurationTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/JobDslGlobalSecurityConfigurationTest.yml @@ -1,3 +1,3 @@ security: GlobalJobDslSecurityConfiguration: - useScriptSecurity: false \ No newline at end of file + useScriptSecurity: false diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/LDAPSecurityRealmTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/LDAPSecurityRealmTest.yml index ecb634d7..4205435e 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/LDAPSecurityRealmTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/LDAPSecurityRealmTest.yml @@ -1,5 +1,4 @@ jenkins: - securityRealm: ldap: configurations: @@ -10,4 +9,4 @@ jenkins: size: 100 ttl: 10 userIdStrategy: CaseInsensitive - groupIdStrategy: CaseSensitive \ No newline at end of file + groupIdStrategy: CaseSensitive diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/MailerTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/MailerTest.yml index 570eea00..5b48c0f7 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/MailerTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/MailerTest.yml @@ -3,4 +3,4 @@ unclassified: adminAddress: admin@acme.org replyToAddress: do-not-reply@acme.org #smtpHost: smtp.acme.org - smtpPort: 4441 \ No newline at end of file + smtpPort: 4441 diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/ProjectMatrixStrategy.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/ProjectMatrixStrategy.yml index f870893c..7d5085fa 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/ProjectMatrixStrategy.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/ProjectMatrixStrategy.yml @@ -7,12 +7,11 @@ jenkins: local: allowsSignup: false users: - - id: test - password: test + - id: test + password: test authorizationStrategy: projectMatrix: grantedPermissions: - "Overall/Read:anonymous" - "Overall/Administer:authenticated" - diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy1.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy1.yml index 66997e1f..c12b5358 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy1.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy1.yml @@ -1,5 +1,4 @@ jenkins: - authorizationStrategy: roleBased: roles: diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy2.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy2.yml index 7a55e933..34be3737 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy2.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/RoleStrategy2.yml @@ -1,5 +1,4 @@ jenkins: - authorizationStrategy: roleBased: roles: diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest.yml index 7fbb9d11..e6af2975 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest.yml @@ -12,4 +12,4 @@ jobs: } } - - file: ./src/test/resources/io/jenkins/plugins/casc/testJob2.groovy \ No newline at end of file + - file: ./src/test/resources/io/jenkins/plugins/casc/testJob2.groovy diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest_withEnvVars.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest_withEnvVars.yml index 7064152c..402a2e1f 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest_withEnvVars.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/SeedJobTest_withEnvVars.yml @@ -1,13 +1,13 @@ jobs: - - script: > - job('seedJobWithEnvVars') { - scm { - git("$REPO_URL") - } - triggers { - scm('H/15 * * * *') - } - steps { - maven('-e clean test') - } - } \ No newline at end of file + - script: > + job('seedJobWithEnvVars') { + scm { + git("$REPO_URL") + } + triggers { + scm('H/15 * * * *') + } + steps { + maven('-e clean test') + } + } diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/SonarQubeTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/SonarQubeTest.yml index 5699317b..6f8ff54c 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/SonarQubeTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/SonarQubeTest.yml @@ -10,4 +10,4 @@ unclassified: triggers: skipScmCause: true skipUpstreamCause: true - envVar: "envVar" \ No newline at end of file + envVar: "envVar" diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/SystemCredentialsTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/SystemCredentialsTest.yml index 22515dd2..0397e20d 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/SystemCredentialsTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/SystemCredentialsTest.yml @@ -1,7 +1,7 @@ credentials: system: domainCredentials: - - domain : + - domain: name: "test.com" description: "test.com domain" specifications: @@ -9,16 +9,16 @@ credentials: includes: "*.test.com" credentials: - usernamePassword: - scope: SYSTEM - id: sudo_password + scope: SYSTEM + id: sudo_password username: root password: ${SUDO_PASSWORD} # global credentials - credentials: - certificate: - scope: SYSTEM - id: ssh_private_key + scope: SYSTEM + id: ssh_private_key password: ${SSH_KEY_PASSWORD} keyStoreSource: fileOnMaster: @@ -41,8 +41,3 @@ credentials: privateKeySource: directEntry: privateKey: ${SSH_PRIVATE_KEY} - - - - - diff --git a/integrations/src/test/resources/io/jenkins/plugins/casc/core/JdkConfiguratorTest.yml b/integrations/src/test/resources/io/jenkins/plugins/casc/core/JdkConfiguratorTest.yml index 4945792f..7757beec 100644 --- a/integrations/src/test/resources/io/jenkins/plugins/casc/core/JdkConfiguratorTest.yml +++ b/integrations/src/test/resources/io/jenkins/plugins/casc/core/JdkConfiguratorTest.yml @@ -7,5 +7,5 @@ tool: - installSource: installers: - jdkInstaller: - id: 'jdk-8u181-oth-JPR' + id: "jdk-8u181-oth-JPR" acceptLicense: true diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/BackwardCompatibilityTest.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/BackwardCompatibilityTest.yml index f233ffe9..693ddaf2 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/BackwardCompatibilityTest.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/BackwardCompatibilityTest.yml @@ -8,4 +8,4 @@ jenkins: name: "qix" # see https://github.com/jenkinsci/jenkins/pull/3475 # - permanent: -# name: "zot" \ No newline at end of file +# name: "zot" diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/GlobalSecurityConfiguration.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/GlobalSecurityConfiguration.yml index f9b720bf..1f9b7a30 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/GlobalSecurityConfiguration.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/GlobalSecurityConfiguration.yml @@ -1,3 +1,2 @@ securityConfig: markupFormatter: plainText - diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/JenkinsConfigTest.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/JenkinsConfigTest.yml index dae278ed..4a322447 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/JenkinsConfigTest.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/JenkinsConfigTest.yml @@ -1,3 +1,3 @@ jenkins: systemMessage: "configuration as code - JenkinsConfigTest" - quietPeriod: 10 \ No newline at end of file + quietPeriod: 10 diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/core/HudsonPrivateSecurityRealmConfiguratorTest.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/core/HudsonPrivateSecurityRealmConfiguratorTest.yml index 24af8add..22512134 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/core/HudsonPrivateSecurityRealmConfiguratorTest.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/core/HudsonPrivateSecurityRealmConfiguratorTest.yml @@ -8,4 +8,4 @@ jenkins: - id: "hashedadmin" # password is 'password' password: "#jbcrypt:$2a$10$LP4bMhwyCPnsDm.XRcTZSuBqWYKGAiDAsQXrSrJGYcEd9padaPgsC" - authorizationStrategy: loggedInUsersCanDoAnything \ No newline at end of file + authorizationStrategy: loggedInUsersCanDoAnything diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/core/MavenConfiguratorTest.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/core/MavenConfiguratorTest.yml index 648c7198..0b49484b 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/core/MavenConfiguratorTest.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/core/MavenConfiguratorTest.yml @@ -9,5 +9,5 @@ tool: properties: - installSourceProperty: installers: - - mavenInstaller: - id: '3.5.0' \ No newline at end of file + - mavenInstaller: + id: "3.5.0" diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/core/Proxy.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/core/Proxy.yml index 080ef4da..10ce507b 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/core/Proxy.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/core/Proxy.yml @@ -5,4 +5,4 @@ jenkins: userName: "login" password: "password" noProxyHost: "externalhost" - testUrl: "http://google.com" \ No newline at end of file + testUrl: "http://google.com" diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/core/ProxyMinimal.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/core/ProxyMinimal.yml index 49c5d81e..9617f9f1 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/core/ProxyMinimal.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/core/ProxyMinimal.yml @@ -1,4 +1,4 @@ jenkins: proxy: name: "proxyhost" - port: 80 \ No newline at end of file + port: 80 diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/core/SetEnvironmentVariable.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/core/SetEnvironmentVariable.yml index f1d34f3a..81bf214d 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/core/SetEnvironmentVariable.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/core/SetEnvironmentVariable.yml @@ -3,4 +3,4 @@ jenkins: - envVars: env: - key: FOO - value: BAR \ No newline at end of file + value: BAR diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.yml index 6f287638..16f5d103 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/core/UnsecuredAuthorizationStrategyConfiguratorTest.yml @@ -2,4 +2,4 @@ jenkins: securityRealm: local: allowsSignup: false - authorizationStrategy: unsecured \ No newline at end of file + authorizationStrategy: unsecured diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/DataBoundDescriptorNonNull.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/DataBoundDescriptorNonNull.yml index b0b1a5cf..a916c748 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/DataBoundDescriptorNonNull.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/DataBoundDescriptorNonNull.yml @@ -28,9 +28,9 @@ jenkins: - "lastDuration" - "buildButton" name: "other list view" -# Currently not possible due to missing getter/setter in Jenkins Core -# jobNames: -# - "testJob1" + # Currently not possible due to missing getter/setter in Jenkins Core + # jobNames: + # - "testJob1" viewsTabBar: "standard" authorizationStrategy: "loggedInUsersCanDoAnything" securityRealm: diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.yml index ac0b149d..bdb4ea3d 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/impl/configurators/MissingConfiguratorTest.yml @@ -3,9 +3,9 @@ jenkins: local: allowsSignup: false users: - - id: admin - password: ${adminpw:-passw0rd} + - id: admin + password: ${adminpw:-passw0rd} authorizationStrategy: globalMatrix: grantedPermissions: - - "Overall/Administer:authenticated" \ No newline at end of file + - "Overall/Administer:authenticated" diff --git a/plugin/src/test/resources/io/jenkins/plugins/casc/merge1.yml b/plugin/src/test/resources/io/jenkins/plugins/casc/merge1.yml index 76143c7f..deaebbaf 100644 --- a/plugin/src/test/resources/io/jenkins/plugins/casc/merge1.yml +++ b/plugin/src/test/resources/io/jenkins/plugins/casc/merge1.yml @@ -4,4 +4,4 @@ jenkins: nodes: - dumb: mode: NORMAL - name: "agent1" \ No newline at end of file + name: "agent1"