Grid環境構築用のChefリポジトリです。
Revisión | 42cc7bd84b8eaa605858fd93a1d017d033b00d00 (tree) |
---|---|
Tiempo | 2018-09-17 13:42:57 |
Autor | whitestar <whitestar@user...> |
Commiter | whitestar |
adds autopilot features.
@@ -1,6 +1,10 @@ | ||
1 | 1 | concourse-ci CHANGELOG |
2 | 2 | ====================== |
3 | 3 | |
4 | +0.3.0 | |
5 | +----- | |
6 | +- adds autopilot features. | |
7 | + | |
4 | 8 | 0.2.9 |
5 | 9 | ----- |
6 | 10 | - improves the utility scripts. |
@@ -0,0 +1,22 @@ | ||
1 | +GEM | |
2 | + remote: https://rubygems.org/ | |
3 | + specs: | |
4 | + chef-api (0.8.0) | |
5 | + logify (~> 0.1) | |
6 | + mime-types | |
7 | + logify (0.2.0) | |
8 | + mime-types (3.2.2) | |
9 | + mime-types-data (~> 3.2015) | |
10 | + mime-types-data (3.2018.0812) | |
11 | + stove (6.0.0) | |
12 | + chef-api (~> 0.5) | |
13 | + logify (~> 0.2) | |
14 | + | |
15 | +PLATFORMS | |
16 | + ruby | |
17 | + | |
18 | +DEPENDENCIES | |
19 | + stove | |
20 | + | |
21 | +BUNDLED WITH | |
22 | + 1.16.0 |
@@ -46,6 +46,7 @@ This cookbook sets up a Concourse CI service by Docker Compose. | ||
46 | 46 | |`['concourse-ci']['ssl_cert']['ca_names']`|Array|Internal CA names that are imported by the ssl_cert cookbook.|`[]`| |
47 | 47 | |`['concourse-ci']['ssl_cert']['common_name']`|String|Server common name for TLS|`node['fqdn']`| |
48 | 48 | |`['concourse-ci']['docker-image']['entrypoint']`|String|Concourse Docker image's entrypoint setting to import an internal CA certificate.|`'/usr/local/bin/dumb-init /usr/local/bin/concourse'`| |
49 | +|`['concourse-ci']['docker-compose']['autopilot']`|Hash|Concourse autopilot configurations.|See `attributes/default.rb`|`false`| | |
49 | 50 | |`['concourse-ci']['docker-compose']['import_ca']`|Boolean|whether import internal CA certificates or not.|`false`| |
50 | 51 | |`['concourse-ci']['docker-compose']['app_dir']`|String||`"#{node['docker-grid']['compose']['app_dir']}/concourse"`| |
51 | 52 | |`['concourse-ci']['docker-compose']['pgdata_dir']`|String|Path string or nil (unset).|`"#{node['concourse-ci']['docker-compose']['app_dir']}/database"`| |
@@ -88,6 +89,7 @@ name 'concourse' | ||
88 | 89 | description 'Concourse' |
89 | 90 | |
90 | 91 | run_list( |
92 | + # see https://osdn.net/projects/metasearch/scm/git/grid-chef-repo/blobs/master/roles/docker-new-repo.rb | |
91 | 93 | 'role[docker]', |
92 | 94 | 'recipe[concourse-ci::docker-compose]', |
93 | 95 | ) |
@@ -3,12 +3,56 @@ require 'rubocop/rake_task' | ||
3 | 3 | require 'foodcritic' |
4 | 4 | require 'stove/rake_task' |
5 | 5 | |
6 | +tpl_cookbook = '00cookbook' | |
7 | +cookbook_name = File.basename(Dir.pwd) | |
8 | + | |
9 | +desc 'Initialize project' | |
10 | +task :init do | |
11 | + next if cookbook_name == tpl_cookbook | |
12 | + | |
13 | + [ | |
14 | + '.foodcritic', | |
15 | + '.rubocop.yml', | |
16 | + 'Berksfile', | |
17 | + 'concourse.yml', | |
18 | + 'fly-vars.yml', | |
19 | + 'fly-vars.local.yml', | |
20 | + 'Gemfile', | |
21 | + 'Gemfile.lock', | |
22 | + 'version', | |
23 | + ].each {|conf| | |
24 | + sh "cp ../#{tpl_cookbook}/#{conf} ./" unless File.exist?(conf) | |
25 | + } | |
26 | + | |
27 | + ruby [ | |
28 | + %(-pne '$_.gsub!(/^cookbook-name: .*$/, "cookbook-name: #{cookbook_name}")'), | |
29 | + '-i fly-vars.local.yml', | |
30 | + ].join(' ') | |
31 | +end | |
32 | + | |
33 | +desc 'Update project' | |
34 | +task :update do | |
35 | + next if cookbook_name == tpl_cookbook | |
36 | + | |
37 | + [ | |
38 | + 'Rakefile', | |
39 | + 'concourse.yml', | |
40 | + 'fly-vars.yml', | |
41 | + 'Gemfile', | |
42 | + 'Gemfile.lock', | |
43 | + ].each {|conf| | |
44 | + sh "cp ../#{tpl_cookbook}/#{conf} ./" | |
45 | + } | |
46 | +end | |
47 | + | |
48 | +desc 'fly set-pipeline' | |
6 | 49 | task :'set-pipeline' do |
7 | 50 | sh [ |
8 | - "fly -t $CC_TARGET sp -p #{File.basename(Dir.pwd)}-cookbook -c concourse.yml", | |
9 | - '-l fly-vars.yml -l ~/sec/credentials-prod.yml', | |
51 | + "fly -t $CC_TARGET sp -p #{cookbook_name}-cookbook -c concourse.yml", | |
52 | + '-l fly-vars.yml -l fly-vars.local.yml -l ~/sec/credentials-prod.yml', | |
10 | 53 | ].join(' ') |
11 | 54 | end |
55 | +desc 'rake set-pipeline alias' | |
12 | 56 | task sp: 'set-pipeline' |
13 | 57 | |
14 | 58 | namespace :style do |
@@ -30,6 +30,12 @@ default['concourse-ci']['with_ssl_cert_cookbook'] = false | ||
30 | 30 | default['concourse-ci']['ssl_cert']['ca_names'] = [] |
31 | 31 | default['concourse-ci']['ssl_cert']['common_name'] = node['fqdn'] |
32 | 32 | default['concourse-ci']['docker-image']['entrypoint'] = '/usr/local/bin/dumb-init /usr/local/bin/concourse' |
33 | +default['concourse-ci']['docker-compose']['autopilot'] = { | |
34 | + 'enabled' => false, | |
35 | + 'log_dir' => '/var/log', | |
36 | + 'wait_time' => '180s', | |
37 | + 'workers_prune_period' => '30 */4 * * *', | |
38 | +} | |
33 | 39 | default['concourse-ci']['docker-compose']['import_ca'] = false |
34 | 40 | default['concourse-ci']['docker-compose']['app_dir'] = "#{node['docker-grid']['compose']['app_dir']}/concourse" |
35 | 41 | default['concourse-ci']['docker-compose']['pgdata_dir'] = "#{node['concourse-ci']['docker-compose']['app_dir']}/database" |
@@ -1,5 +1,4 @@ | ||
1 | 1 | --- |
2 | -# $ fly -t $CC_TARGET sp -p concourse-ci-cookbook -c concourse.yml -l fly-vars.yml -l ~/sec/credentials-prod.yml | |
3 | 2 | resources: |
4 | 3 | - name: src-git |
5 | 4 | type: git |
@@ -0,0 +1,2 @@ | ||
1 | +--- | |
2 | +cookbook-name: concourse-ci |
@@ -1,3 +1,2 @@ | ||
1 | 1 | --- |
2 | -cookbook-name: concourse-ci | |
3 | 2 | chefdk-version: 1.6.11 |
@@ -323,6 +323,16 @@ template "#{bin_dir}/concourse_start" do | ||
323 | 323 | action :create |
324 | 324 | end |
325 | 325 | |
326 | +# autopilot | |
327 | +srv = 'concourse' | |
328 | +template "/etc/cron.d/#{srv}-local" do | |
329 | + source "etc/cron.d/#{srv}-local" | |
330 | + owner 'root' | |
331 | + group 'root' | |
332 | + mode '0644' | |
333 | + action :delete unless node['concourse-ci']['docker-compose']['autopilot']['enabled'] | |
334 | +end | |
335 | + | |
326 | 336 | log <<-"EOM" |
327 | 337 | Note: You must execute the following command manually. |
328 | 338 | See #{doc_url} |
@@ -0,0 +1,13 @@ | ||
1 | +<% | |
2 | +name = 'concourse' | |
3 | + | |
4 | +conf = node['concourse-ci']['docker-compose']['autopilot'] | |
5 | +log = "#{conf['log_dir']}/#{name}-local.log" | |
6 | +wait_time = conf['wait_time'] | |
7 | +-%> | |
8 | +PATH=/usr/bin:/bin:/usr/local/bin | |
9 | +LOG=<%= log %> | |
10 | +APP_HOME=<%= node['concourse-ci']['docker-compose']['app_dir'] %> | |
11 | + | |
12 | +@reboot root sleep <%= wait_time %> && ${APP_HOME}/bin/concourse_start > $LOG 2>&1 | |
13 | +<%= conf['workers_prune_period'] %> root ${APP_HOME}/bin/fly_prune_workers_main >> $LOG 2>&1 |
@@ -1 +1 @@ | ||
1 | -0.2.9 | |
1 | +0.3.0 |