|
1 |
| -# EBS |
2 |
| -default['ebs']['volumes']['/var/lib/jenkins']['size'] = 100 # size of the volume correlates to speed (in IOPS) |
3 |
| -default['ebs']['volumes']['/var/lib/jenkins']['dev'] = "/dev/sdj" |
4 |
| -default['ebs']['volumes']['/var/lib/jenkins']['fstype'] = "ext4" |
5 |
| -default['ebs']['volumes']['/var/lib/jenkins']['user'] = "jenkins" |
6 |
| -default['ebs']['volumes']['/var/lib/jenkins']['mountopts'] = 'noatime' |
| 1 | +scalaCiHost = "scala-ci.typesafe.com" |
| 2 | +scalaCiPort = 443 |
7 | 3 |
|
8 |
| -default['ebs']['volumes']['/var/lib/artifactory']['size'] = 200 # size of the volume correlates to speed (in IOPS) |
9 |
| -default['ebs']['volumes']['/var/lib/artifactory']['dev'] = "/dev/sdk" |
10 |
| -default['ebs']['volumes']['/var/lib/artifactory']['fstype'] = "ext4" |
11 |
| -default['ebs']['volumes']['/var/lib/artifactory']['user'] = "artifactory" |
12 |
| -default['ebs']['volumes']['/var/lib/artifactory']['mountopts'] = 'noatime' |
| 4 | +# JENKINS WORKER CONFIG |
| 5 | +default['repos']['private']['realm'] = "Artifactory Realm" |
| 6 | +default['repos']['private']['host'] = "private-repo.typesafe.com" |
| 7 | +default['repos']['private']['pr-snap'] = "http://private-repo.typesafe.com/typesafe/scala-pr-validation-snapshots/" |
| 8 | +default['repos']['private']['release-temp'] = "http://private-repo.typesafe.com/typesafe/scala-release-temp/" |
| 9 | +default['s3']['downloads']['host'] = "downloads.typesafe.com.s3.amazonaws.com" |
13 | 10 |
|
14 |
| -# JENKINS |
15 |
| -override['jenkins']['master']['install_method'] = 'war' |
16 |
| -override['jenkins']['master']['listen_address'] = '127.0.0.1' # external traffic must go through nginx |
17 |
| -override['jenkins']['master']['user'] = 'jenkins' |
18 |
| -override['jenkins']['master']['group'] = 'jenkins' |
19 |
| -override['jenkins']['master']['jvm_options'] = '-server -Xmx4G -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError' # -Dfile.encoding=UTF-8 |
| 11 | +if node.name == "jenkins-master" |
| 12 | + # EBS |
| 13 | + default['ebs']['volumes']['/var/lib/jenkins']['size'] = 100 # size of the volume correlates to speed (in IOPS) |
| 14 | + default['ebs']['volumes']['/var/lib/jenkins']['dev'] = "/dev/sdj" |
| 15 | + default['ebs']['volumes']['/var/lib/jenkins']['fstype'] = "ext4" |
| 16 | + default['ebs']['volumes']['/var/lib/jenkins']['user'] = "jenkins" |
| 17 | + default['ebs']['volumes']['/var/lib/jenkins']['mountopts'] = 'noatime' |
20 | 18 |
|
21 |
| -# To pin the jenkins version, must also override override['jenkins']['master']['source'] !!! |
22 |
| -# override['jenkins']['master']['version'] = '1.555' |
23 |
| -# override['jenkins']['master']['source'] = "#{node['jenkins']['master']['mirror']}/war/#{node['jenkins']['master']['version']}/jenkins.war" |
24 |
| -# override['jenkins']['master']['checksum'] = '31f5c2a3f7e843f7051253d640f07f7c24df5e9ec271de21e92dac0d7ca19431' |
| 19 | + default['ebs']['volumes']['/var/lib/artifactory']['size'] = 200 # size of the volume correlates to speed (in IOPS) |
| 20 | + default['ebs']['volumes']['/var/lib/artifactory']['dev'] = "/dev/sdk" |
| 21 | + default['ebs']['volumes']['/var/lib/artifactory']['fstype'] = "ext4" |
| 22 | + default['ebs']['volumes']['/var/lib/artifactory']['user'] = "artifactory" |
| 23 | + default['ebs']['volumes']['/var/lib/artifactory']['mountopts'] = 'noatime' |
25 | 24 |
|
26 |
| -## GITHUB OAUTH |
27 |
| -default['master']['github']['webUri'] = 'https://github.com/' |
28 |
| -default['master']['github']['apiUri'] = 'https://api.github.com' |
29 |
| -default['master']['github']['adminUserNames'] = 'adriaanm,retronym,lrytz,chef,scala-jenkins' |
30 |
| -default['master']['github']['organizationNames'] = 'scala' |
31 |
| -default['master']['github']['useRepositoryPermissions'] = 'true' |
32 |
| -default['master']['github']['allowAnonymousReadPermission'] = 'true' |
33 |
| -default['master']['github']['authenticatedUserReadPermission'] = 'true' |
34 |
| -default['master']['github']['allowGithubWebHookPermission'] = 'true' |
35 |
| -default['master']['github']['allowCcTrayPermission'] = 'false' |
36 |
| -default['master']['github']['authenticatedUserCreateJobPermission'] = 'false' |
| 25 | + # JAVA |
| 26 | + default['java']['jdk_version'] = '7' |
| 27 | + default['java']['install_flavor'] = 'openjdk' |
37 | 28 |
|
38 |
| -## CONTACT INFO |
39 |
| -default['master']['adminAddress'] = "[email protected]" |
40 |
| -default['master']['jenkinsHost'] = "scala-ci.typesafe.com" # duplicated because attributes can't refer to each other... |
41 |
| -default['master']['jenkinsUrl'] = "https://scala-ci.typesafe.com/" |
42 |
| -default['master']['jenkins']['notifyUrl'] = "http://scala-ci.typesafe.com:8888/jenkins" |
| 29 | + # ARTIFACTORY |
| 30 | + default['artifactory']['zip_url'] = 'http://dl.bintray.com/content/jfrog/artifactory/artifactory-3.6.0.zip?direct' |
| 31 | + default['artifactory']['zip_checksum'] = '72c375ab659d302da0b196349e152f3d799c3cada2f4d09f9399281a06d880e8' |
| 32 | + default['artifactory']['home'] = '/var/lib/artifactory' |
| 33 | + default['artifactory']['log_dir'] = '/var/lib/artifactory/logs' |
| 34 | + default['artifactory']['java']['xmx'] = '2g' |
| 35 | + default['artifactory']['java']['extra_opts'] = '-server' |
| 36 | + default['artifactory']['user'] = 'artifactory' |
| 37 | + default['artifactory']['proxyName'] = scalaCiHost |
| 38 | + default['artifactory']['proxyPort'] = scalaCiPort |
| 39 | + default['artifactory']['address'] = "localhost" |
| 40 | + default['artifactory']['port'] = 8282 # internal use over http |
| 41 | + default['artifactory']['install_java'] = false |
43 | 42 |
|
44 |
| -## WORKER CONFIG |
45 |
| -default['repos']['private']['realm'] = "Artifactory Realm" |
46 |
| -default['repos']['private']['host'] = "private-repo.typesafe.com" |
47 |
| -default['repos']['private']['pr-snap'] = "http://private-repo.typesafe.com/typesafe/scala-pr-validation-snapshots/" |
48 |
| -default['repos']['private']['release-temp'] = "http://private-repo.typesafe.com/typesafe/scala-release-temp/" |
| 43 | + # JENKINS |
| 44 | + override['jenkins']['master']['install_method'] = 'war' |
| 45 | + override['jenkins']['master']['listen_address'] = '127.0.0.1' # external traffic must go through nginx |
| 46 | + override['jenkins']['master']['user'] = 'jenkins' |
| 47 | + override['jenkins']['master']['group'] = 'jenkins' |
| 48 | + override['jenkins']['master']['jvm_options'] = '-server -Xmx4G -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError' # -Dfile.encoding=UTF-8 |
49 | 49 |
|
50 |
| -default['s3']['downloads']['host'] = "downloads.typesafe.com.s3.amazonaws.com" |
| 50 | + # To pin the jenkins version, must also override override['jenkins']['master']['source'] !!! |
| 51 | + # override['jenkins']['master']['version'] = '1.555' |
| 52 | + # override['jenkins']['master']['source'] = "#{node['jenkins']['master']['mirror']}/war/#{node['jenkins']['master']['version']}/jenkins.war" |
| 53 | + # override['jenkins']['master']['checksum'] = '31f5c2a3f7e843f7051253d640f07f7c24df5e9ec271de21e92dac0d7ca19431' |
| 54 | + |
| 55 | + ## GITHUB OAUTH |
| 56 | + default['master']['github']['webUri'] = 'https://github.com/' |
| 57 | + default['master']['github']['apiUri'] = 'https://api.github.com' |
| 58 | + default['master']['github']['adminUserNames'] = 'adriaanm,retronym,lrytz,chef,scala-jenkins' |
| 59 | + default['master']['github']['organizationNames'] = 'scala' |
| 60 | + default['master']['github']['useRepositoryPermissions'] = 'true' |
| 61 | + default['master']['github']['allowAnonymousReadPermission'] = 'true' |
| 62 | + default['master']['github']['authenticatedUserReadPermission'] = 'true' |
| 63 | + default['master']['github']['allowGithubWebHookPermission'] = 'true' |
| 64 | + default['master']['github']['allowCcTrayPermission'] = 'false' |
| 65 | + default['master']['github']['authenticatedUserCreateJobPermission'] = 'false' |
| 66 | + |
| 67 | + ## CONTACT INFO |
| 68 | + default['master']['adminAddress'] = "[email protected]" |
| 69 | + default['master']['jenkinsHost'] = scalaCiHost |
| 70 | + default['master']['jenkinsUrl'] = "https://#{scalaCiHost}/" |
| 71 | + default['master']['jenkins']['notifyUrl'] = "http://#{scalaCiHost}:8888/jenkins" # scabot listens here |
51 | 72 |
|
52 |
| -# see below (note that default['master']['env'] can only indirect through node -- workerJavaOpts is not in scope) |
53 |
| -workerJavaOpts = "-Dfile.encoding=UTF-8 -server -XX:+AggressiveOpts -XX:+UseParNewGC -Xmx2G -Xss1M -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=128M -Dpartest.threads=4" |
54 |
| -default['jenkinsEnv']['JAVA_OPTS'] = workerJavaOpts |
55 |
| -default['jenkinsEnv']['ANT_OPTS'] = workerJavaOpts |
56 |
| -default['jenkinsEnv']['MAVEN_OPTS'] = workerJavaOpts # doesn't technically need the -Dpartest one, but oh well |
| 73 | + # see below (note that default['master']['env'] can only indirect through node -- workerJavaOpts is not in scope) |
| 74 | + workerJavaOpts = "-Dfile.encoding=UTF-8 -server -XX:+AggressiveOpts -XX:+UseParNewGC -Xmx2G -Xss1M -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=128M -Dpartest.threads=4" |
| 75 | + default['jenkinsEnv']['JAVA_OPTS'] = workerJavaOpts |
| 76 | + default['jenkinsEnv']['ANT_OPTS'] = workerJavaOpts |
| 77 | + default['jenkinsEnv']['MAVEN_OPTS'] = workerJavaOpts # doesn't technically need the -Dpartest one, but oh well |
57 | 78 |
|
58 |
| -# NOTE: This is a string that represents a closure that closes over the worker node for which it computes the environment. |
59 |
| -# (by convention -- see `environment((eval node["master"]["env"])...` in _master-config-workers |
60 |
| -# Since we can't marshall closures, while attributes need to be sent from master to workers, we must encode them as something that can be shipped... |
61 |
| -default['master']['env'] = <<-'EOH'.gsub(/^ {2}/, '') |
62 |
| - lambda{| node | Chef::Node::ImmutableMash.new({ |
63 |
| - "JAVA_HOME" => node['java']['java_home'], # we get the jre if we don't do this |
64 |
| - "JAVA_OPTS" => node['jenkinsEnv']['JAVA_OPTS'], |
65 |
| - "ANT_OPTS" => node['jenkinsEnv']['ANT_OPTS'], |
66 |
| - "MAVEN_OPTS" => node['jenkinsEnv']['MAVEN_OPTS'], |
67 |
| - "prRepoUrl" => node['repos']['private']['pr-snap'], |
68 |
| - "releaseTempRepoUrl" => node['repos']['private']['release-temp'] |
69 |
| - })} |
70 |
| - EOH |
| 79 | + # NOTE: This is a string that represents a closure that closes over the worker node for which it computes the environment. |
| 80 | + # (by convention -- see `environment((eval node["master"]["env"])...` in _master-config-workers |
| 81 | + # Since we can't marshall closures, while attributes need to be sent from master to workers, we must encode them as something that can be shipped... |
| 82 | + default['master']['env'] = <<-'EOH'.gsub(/^ {2}/, '') |
| 83 | + lambda{| node | Chef::Node::ImmutableMash.new({ |
| 84 | + "JAVA_HOME" => node['java']['java_home'], # we get the jre if we don't do this |
| 85 | + "JAVA_OPTS" => node['jenkinsEnv']['JAVA_OPTS'], |
| 86 | + "ANT_OPTS" => node['jenkinsEnv']['ANT_OPTS'], |
| 87 | + "MAVEN_OPTS" => node['jenkinsEnv']['MAVEN_OPTS'], |
| 88 | + "prRepoUrl" => node['repos']['private']['pr-snap'], |
| 89 | + "releaseTempRepoUrl" => node['repos']['private']['release-temp'] |
| 90 | + })} |
| 91 | + EOH |
71 | 92 |
|
72 |
| -## PLUGIN |
73 |
| -default['master']['ec2-start-stop']['url'] = 'https://dl.dropboxusercontent.com/u/12862572/ec2-start-stop.hpi' |
| 93 | + ## PLUGIN |
| 94 | + default['master']['ec2-start-stop']['url'] = 'https://dl.dropboxusercontent.com/u/12862572/ec2-start-stop.hpi' |
74 | 95 |
|
75 |
| -# SCABOT |
76 |
| -default['scabot']['jenkins']['user'] = "scala-jenkins" |
77 |
| -default['scabot']['github']['repo_user'] = "scala" |
| 96 | + # SCABOT |
| 97 | + default['scabot']['jenkins']['user'] = "scala-jenkins" |
| 98 | + default['scabot']['github']['repo_user'] = "scala" |
| 99 | +end |
0 commit comments