configuration-as-code-plugin
job-dsl-gradle-example
configuration-as-code-plugin | job-dsl-gradle-example | |
---|---|---|
12 | 2 | |
2,640 | 439 | |
0.4% | - | |
8.9 | 0.0 | |
13 days ago | about 2 years ago | |
Java | Groovy | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
configuration-as-code-plugin
-
Help! Confused about the relationship between Software Engineering and DevOps
First, developers could be taking care of maintaining the CI/CD tool.. As is (dev)ops will provide a running instance and everything from there is dev's responsibility, eg. Jenkins via https://plugins.jenkins.io/configuration-as-code/ .
- Jenkins CASC plugin
-
The only Jenkins Plugins you need
configuration-as-code https://plugins.jenkins.io/configuration-as-code/
- Fully scripted Jenkins server with terraform
-
Setting up a Jenkins instance with Configuration as Code (using yaml configuration)
Now we are going to use Configuration as Code plugin and some other plugins.
-
Why do y'all hate Jenkins? (What pipeline tools do you use?)
Looks like it does pretty much everything except install plugins ("We don't support installing plugins with JCasC" https://github.com/jenkinsci/configuration-as-code-plugin/blob/master/README.md)
- Separate .yamls for Jenkins Configuration-as-Code
-
My School DevOps Project [part 1] - Jenkins
--- jenkins: numExecutors: 1 systemMessage: "Hi, jenkins setup with jcasc" securityRealm: local: allowsSignup: false # prevents anonymous users from creating an account through the web interface users: - id: ${JENKINS_ADMIN_ID} password: ${JENKINS_ADMIN_PASSWORD} authorizationStrategy: globalMatrix: permissions: #- "View/Delete:authenticated" #- "View/Read:authenticated" #- "View/Configure:authenticated" #- "View/Create:authenticated" - "Job/Read:authenticated" - "Job/Build:authenticated" - "Job/Configure:authenticated" - "Job/Create:authenticated" - "Job/Delete:authenticated" - "Job/Discover:authenticated" - "Job/Move:authenticated" - "Job/Workspace:authenticated" - "Job/Cancel:authenticated" - "Run/Delete:authenticated" - "Run/Replay:authenticated" - "Run/Update:authenticated" - "Overall/Read:admin" - "Overall/Administer:admin" crumbIssuer: "standard" # Docker: https://github.com/jenkinsci/configuration-as-code-plugin/tree/master/demos/docker clouds: - docker: name: "docker" dockerApi: dockerHost: uri: "unix:///var/run/docker.sock" templates: - labelString: "docker-agent" dockerTemplateBase: # TODO: pin sha256 or versions when using in production image: "jenkins/agent" remoteFs: "/home/jenkins/agent" connector: attach: user: "jenkins" instanceCapStr: "10" retentionStrategy: idleMinutes: 1 security: scriptApproval: approvedSignatures: - method java.lang.String indexOf int - method io.jenkins.plugins.casc.ConfigurationAsCode configure - staticMethod io.jenkins.plugins.casc.ConfigurationAsCode get tool: git: installations: - home: "git" name: "Default" jdk: installations: - home: "/opt/java/openjdk" name: "java" maven: installations: - name: "maven" properties: - installSource: installers: - maven: id: "3.6.2" jobs: - file: /var/jenkins_config/jobs/folders.groovy - file: /var/jenkins_config/jobs/jobs.groovy
-
Interesting Task
At my previous job the entirety of Jenkins was all in code. We would blow away our entire Jenkins instance and just copy/paste the config back into Jenkins and it would all be back. I believe that also had all of the configurations for the jobs as well. In that case, that could be ideal. If I remember correctly this was all done in Groovy and not using the Configuration as Code (YAML) plugin.
-
CMV: Jenkins shouldn't be anywhere near a robust, mature application environment
Most of the main plugins are configurable (here are some examples) and the rest you can configure via groovy. If there's good documentation, writing the groovy scripts is fairly easy too
job-dsl-gradle-example
-
Jenkins as code, part 2: Setting up the Jenkins job
Yeah I've tried with the later approach days ago and make it work today, thanks to this helpful repo: https://github.com/sheehan/job-dsl-gradle-example :D
-
CMV: Jenkins shouldn't be anywhere near a robust, mature application environment
Have a look at https://github.com/sheehan/job-dsl-gradle-example it's a nice example that even allows you to test your job configuration.
What are some alternatives?
jenkins-bootstrap-shared - Jenkins as immutable infrastructure made easy. A repository of shared scripts meant to be used as a git submodule. Packing Jenkins, plugins, and scripts into immutable packages and images.
ods-jenkins-shared-library - Shared Jenkins library which all ODS projects & components use - provisioning, SonarQube code scanning, Nexus publishing, OpenShift template based deployments and repository orchestration
artifact-manager-s3-plugin - Artifact manager implementation for Amazon S3
warnings-ng-plugin - Jenkins Warnings Plugin - Next Generation
job-dsl-plugin - A Groovy DSL for Jenkins Jobs - Sweeeeet!
pipeline - A cloud-native Pipeline resource.
jenkins-script-console-scripts - A repository of one-off script console scripts for Jenkins.
Design Patterns - Design patterns implemented in Java
jervis - Self service Jenkins job generation using Jenkins Job DSL plugin groovy scripts. Reads .jervis.yml and generates a job in Jenkins.
docker - Docker official jenkins repo
S3-Upload-JMeter-Groovy - Upload files to AWS S3 in JMeter using Groovy