2 # Copyright 2017, whitestar
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 name 'devops-suite-on-docker'
18 description 'DevOps Suite on Docker'
20 dockerd_extra_opts = [
22 '--bip=192.168.100.1/24 --fixed-cidr=192.168.100.0/24',
24 network_mode_bridge = false
25 aptly_port = '7080' # default: 8080
26 aptly_api_port = '7081' # default: 8081
27 athenz_zms_port = '7043' # default: 4443
28 athenz_zts_port = '8043' # default: 8443
29 athenz_ui_port = '9043' # default: 9443
30 concourse_port = '8080'
31 gitlab_http_port = '80' # default: 80, Note: 8080 already in use.
32 gitlab_ssh_port = '2022'
33 halyard_port = '8064' # default: 8064
34 jenkins_port = '9080' # default: 8080
35 jenkins_agent_port = '50000' # default: 50000
36 jenkins_home_path = '/opt/docker-compose/app/jenkins/home'
38 nexus_port = nexus_ver == '3' ? '8081' : '8071'
39 screwdriver_ui_port = '9000' # default: 9000
40 screwdriver_api_port = '9001' # default: 9001
41 screwdriver_store_port = '9002' # default: 9002
42 vault_port = '8200' # default: 8200
46 'role[aptly-on-docker]',
47 'role[athenz-on-docker]',
48 'role[concourse-on-docker]',
49 'role[gitlab-on-docker]',
50 'role[gitlab-runner]',
51 'role[halyard-on-docker]',
52 'role[jenkins-on-docker]',
53 "role[nexus#{nexus_ver}-on-docker]",
54 'role[screwdriver-on-docker]',
55 'role[vault-on-docker]',
63 'skip_setup' => false,
64 'daemon_extra_options' => dockerd_extra_opts
66 # '<your_login_name>',
70 'skip_setup' => false,
81 "#{aptly_api_port}:8081",
97 "#{athenz_zms_port}:4443",
98 "#{athenz_zts_port}:8443",
99 "#{athenz_ui_port}:9443",
109 'docker-compose' => {
111 # Version 1 docker-compose format
116 "#{concourse_port}:8080",
119 #'CONCOURSE_RESOURCE_CHECKING_INTERVAL' => '1m',
120 # If you sepecify no value, Chef will sets "http://#{node['ipaddress']}:8080".
121 #'CONCOURSE_EXTERNAL_URL' => "http://#{node['ipaddress']}:#{concourse_port}",
124 'concourse-worker' => {
133 #'external_url' => "http://#{gitlab_cn}:#{gitlab_http_port}",
135 #'time_zone' => 'Asia/Tokyo',
136 'gitlab_shell_ssh_port' => gitlab_ssh_port.to_i,
139 'shared_buffers' => '128MB', # default: 1975MB
142 'worker_processes' => 1, # default: 5
145 'docker-compose' => {
149 #'hostname' => gitlab_cn,
151 "#{gitlab_http_port}:#{gitlab_http_port}",
152 "#{gitlab_ssh_port}:22",
154 'network_mode' => 'bridge', # for the Container Registry feature.
159 'runner-docker-compose' => {
160 'import_ca' => false,
164 'docker-compose' => {
166 'path' => jenkins_home_path,
172 "#{jenkins_port}:8080",
173 "#{jenkins_agent_port}:50000",
181 'docker-compose' => {
186 "#{nexus_port}:8081",
190 #'image' => 'sonatype/nexus3', # => role[nexus2/3-on-docker]
197 'docker-compose' => {
202 "#{screwdriver_api_port}:80",
209 "#{screwdriver_ui_port}:80",
216 "#{screwdriver_store_port}:80",
226 'halyard-docker-compose' => {
231 "#{halyard_port}:8064",
243 'docker-compose' => {
248 "#{vault_port}:8200",
251 #'VAULT_LOCAL_CONFIG' => '', # expanded to /vault/config/local.json
260 if network_mode_bridge
261 aptly_srvs = attrs['apt_utils']['aptly']['docker-compose']['config']['services']
262 aptly_srvs['reverseproxy']['network_mode'] = 'bridge'
263 aptly_srvs['reverseproxy']['links'] = [
266 aptly_srvs['aptly']['network_mode'] = 'bridge'
268 athenz_srvs = attrs['athenz']['docker-compose']['config']['services']
269 athenz_srvs['athenz']['network_mode'] = 'bridge'
271 jenkins_srvs = attrs['jenkins-grid']['docker-compose']['config']['services']
272 jenkins_srvs['jenkins']['network_mode'] = 'bridge'
274 halyard_srvs = attrs['spinnaker']['halyard-docker-compose']['config']['services']
275 halyard_srvs['halyard']['network_mode'] = 'bridge'
277 nexus_srvs = attrs['nexus-grid']['docker-compose']['config']['services']
278 nexus_srvs['reverseproxy']['network_mode'] = 'bridge'
279 nexus_srvs['reverseproxy']['links'] = [
282 nexus_srvs['nexus']['network_mode'] = 'bridge'
284 screwdriver_srvs = attrs['screwdriver']['docker-compose']['config']['services']
285 unless screwdriver_srvs['reverseproxy'].nil?
286 screwdriver_srvs['reverseproxy']['network_mode'] = 'bridge'
287 screwdriver_srvs['reverseproxy']['links'] = [
291 screwdriver_srvs['api']['network_mode'] = 'bridge'
292 screwdriver_srvs['ui']['network_mode'] = 'bridge'
293 screwdriver_srvs['store']['network_mode'] = 'bridge'
295 vault_srvs = attrs['hc-vault']['docker-compose']['config']['services']
296 vault_srvs['vault']['network_mode'] = 'bridge'
299 #default_attributes()
301 override_attributes(attrs)