From 835f582f5ec0326769b288f290925f2f643f7b64 Mon Sep 17 00:00:00 2001 From: whitestar Date: Thu, 20 Jul 2017 22:21:23 +0900 Subject: [PATCH] Initial release of nexus-gird --- cookbooks/nexus-grid/.rubocop.yml | 53 +++++++++ cookbooks/nexus-grid/Berksfile | 19 ++++ cookbooks/nexus-grid/CHANGELOG.md | 5 + cookbooks/nexus-grid/Gemfile | 4 + cookbooks/nexus-grid/README.md | 119 +++++++++++++++++++++ cookbooks/nexus-grid/Rakefile | 41 +++++++ cookbooks/nexus-grid/attributes/default.rb | 57 ++++++++++ cookbooks/nexus-grid/concourse.yml | 100 +++++++++++++++++ cookbooks/nexus-grid/fly-vars.yml | 3 + cookbooks/nexus-grid/metadata.rb | 20 ++++ cookbooks/nexus-grid/recipes/default.rb | 18 ++++ cookbooks/nexus-grid/recipes/docker-compose.rb | 104 ++++++++++++++++++ cookbooks/nexus-grid/spec/recipes/default_spec.rb | 9 ++ cookbooks/nexus-grid/spec/spec_helper.rb | 25 +++++ .../app/nexus/data/etc/nexus.properties | 19 ++++ .../docker-compose/app/nexus/docker-compose.yml | 5 + cookbooks/nexus-grid/version | 1 + 17 files changed, 602 insertions(+) create mode 100644 cookbooks/nexus-grid/.rubocop.yml create mode 100644 cookbooks/nexus-grid/Berksfile create mode 100644 cookbooks/nexus-grid/CHANGELOG.md create mode 100644 cookbooks/nexus-grid/Gemfile create mode 100644 cookbooks/nexus-grid/README.md create mode 100644 cookbooks/nexus-grid/Rakefile create mode 100644 cookbooks/nexus-grid/attributes/default.rb create mode 100644 cookbooks/nexus-grid/concourse.yml create mode 100644 cookbooks/nexus-grid/fly-vars.yml create mode 100644 cookbooks/nexus-grid/metadata.rb create mode 100644 cookbooks/nexus-grid/recipes/default.rb create mode 100644 cookbooks/nexus-grid/recipes/docker-compose.rb create mode 100644 cookbooks/nexus-grid/spec/recipes/default_spec.rb create mode 100644 cookbooks/nexus-grid/spec/spec_helper.rb create mode 100644 cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/data/etc/nexus.properties create mode 100644 cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/docker-compose.yml create mode 100644 cookbooks/nexus-grid/version diff --git a/cookbooks/nexus-grid/.rubocop.yml b/cookbooks/nexus-grid/.rubocop.yml new file mode 100644 index 0000000..8f8a3e8 --- /dev/null +++ b/cookbooks/nexus-grid/.rubocop.yml @@ -0,0 +1,53 @@ +AllCops: + Exclude: + - vendor/**/* + +AlignParameters: + Enabled: false +LineLength: + Enabled: false +Lint/UnusedBlockArgument: + Enabled: false +Metrics/AbcSize: + Enabled: false +Style/BlockComments: + Enabled: false +Style/BlockDelimiters: + Enabled: false +Style/ExtraSpacing: + Enabled: false +Style/FileName: + Enabled: false +Style/LeadingCommentSpace: + Enabled: false +Style/MultilineIfModifier: + Enabled: false +Style/RescueModifier: + Enabled: false +Style/SpaceBeforeFirstArg: + Enabled: false +Style/SpaceInsideBlockBraces: + Enabled: false +Style/SpaceInsidePercentLiteralDelimiters: + Enabled: false +Style/TrailingCommaInLiteral: + EnforcedStyleForMultiline: consistent_comma +Style/WordArray: + Enabled: false + +#Lint/ShadowingOuterLocalVariable: +# Enabled: false +#Metrics/MethodLength: +# Max: 10 +#Metrics/ModuleLength: +# Max: 100 +#Metrics/CyclomaticComplexity: +# Max: 6 +#Metrics/PerceivedComplexity: +# Max: 7 +#Style/AccessorMethodName: +# Enabled: false +#Style/MultilineOperationIndentation: +# Enabled: false +#Style/PerlBackrefs: +# Enabled: false diff --git a/cookbooks/nexus-grid/Berksfile b/cookbooks/nexus-grid/Berksfile new file mode 100644 index 0000000..9da25d9 --- /dev/null +++ b/cookbooks/nexus-grid/Berksfile @@ -0,0 +1,19 @@ +# +# Copyright 2017 whitestar +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +source 'https://supermarket.chef.io' + +metadata diff --git a/cookbooks/nexus-grid/CHANGELOG.md b/cookbooks/nexus-grid/CHANGELOG.md new file mode 100644 index 0000000..f16098e --- /dev/null +++ b/cookbooks/nexus-grid/CHANGELOG.md @@ -0,0 +1,5 @@ +# nexus-grid CHANGELOG + +0.1.0 +----- +- Initial release of nexus-gird diff --git a/cookbooks/nexus-grid/Gemfile b/cookbooks/nexus-grid/Gemfile new file mode 100644 index 0000000..ad84be7 --- /dev/null +++ b/cookbooks/nexus-grid/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +# with Chef DK +gem 'stove' diff --git a/cookbooks/nexus-grid/README.md b/cookbooks/nexus-grid/README.md new file mode 100644 index 0000000..39dc92f --- /dev/null +++ b/cookbooks/nexus-grid/README.md @@ -0,0 +1,119 @@ +nexus-grid Cookbook +=================== + +This cookbook sets up a Sonatype Nexus Repository Manager by Docker Compose. + +## Contents + +- [Requirements](#requirements) + - [platforms](#platforms) + - [packages](#packages) + - [cookbooks](#cookbooks) +- [Attributes](#attributes) +- [Usage](#usage) + - [Recipes](#recipes) + - [nexus-grid::default](#nexus-griddefault) + - [nexus-grid::docker-compose](#nexus-griddocker-compose) + - [Role Examples](#role-examples) +- [License and Authors](#license-and-authors) + +## Requirements + +### platforms +- RHEL, CentOS >= 7.0 +- Debian >= 8.0 +- Ubuntu >= 14.04 + +### packages +- none. + +### cookbooks +- `docker-grid` +- `platform_utils` +- `ssl_cert` + +## Attributes + +|Key|Type|Description, example|Default| +|:--|:--|:--|:--| +|`['nexus-grid']['docker-compose']['app_dir']`|String||`"#{node['docker-grid']['compose']['app_dir']}/nexus"`| +|`['nexus-grid']['docker-compose']['data_dir']`|String|Path string or nil (unset).|`"#{node['nexus-grid']['docker-compose']['app_dir']}/data"`| +|`['nexus-grid']['docker-compose']['config']`|Hash|`docker-compose.yml` configurations.|See `attributes/default.rb`| + +## Usage + +### Recipes + +#### nexus-grid::default + +This recipe does nothing. + +#### nexus-grid::docker-compose + +This recipe generates a `docker-compose.yml` file for the Sonatype Nexus Repository Manager service. + +### Role Examples + +- `roles/nexus.rb` + +```ruby +name 'nexus' +description 'Nexus' + +run_list( + 'role[docker]', + 'recipe[nexus-grid::docker-compose]', +) + +image = 'sonatype/nexus3' +port = '8081' + +override_attributes( + 'nexus-grid' => { + #'https_enabled' => true, # not supported yet. + 'docker-compose' => { + 'config' => { + 'version' => '2', + 'services' => { + 'nexus' => { + 'restart' => 'always', + 'image' => image, + 'ports' => [ + "#{port}:8081", + ], + 'volumes' => [ + # This volume will be set by the nexus-grid::docker-compose recipe automatically. + #"#{node['nexus-grid']['docker-compose']['data_dir']}:/nexus-data", + ], + 'environment' => { + #JAVA_MAX_HEAP => '1200m', # passed as -Xmx. Defaults to 1200m. + #JAVA_MIN_HEAP => '1200m', # passed as -Xms. Defaults to 1200m. + #EXTRA_JAVA_OPTS => '', # Additional options can be passed to the JVM via this variable. + }, + }, + }, + }, + }, + }, +) +``` + +## License and Authors + +- Author:: whitestar at osdn.jp + +```text +Copyright 2017, whitestar + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` diff --git a/cookbooks/nexus-grid/Rakefile b/cookbooks/nexus-grid/Rakefile new file mode 100644 index 0000000..64191a5 --- /dev/null +++ b/cookbooks/nexus-grid/Rakefile @@ -0,0 +1,41 @@ +require 'rspec/core/rake_task' +require 'rubocop/rake_task' +require 'foodcritic' +require 'stove/rake_task' + +namespace :style do + desc 'Run Ruby style checks' + RuboCop::RakeTask.new(:ruby) do |t| + t.options = [ + '--auto-gen-config', # creates .rubocop_todo.yml + ] + end + + desc 'Run Chef style checks' + FoodCritic::Rake::LintTask.new(:chef) do |t| + t.options = { + fail_tags: ['any'], + } + end +end + +desc 'Run all style checks' +task style: ['style:chef', 'style:ruby'] + +desc 'Run ChefSpec examples' +RSpec::Core::RakeTask.new(:spec) + +desc 'Publish cookbook' +Stove::RakeTask.new(:publish) do |t| + t.stove_opts = [ + # `--username` and `--key` are set in ~/.stove typically. + #'--username', 'somebody', + #'--key', '~/chef/chef.io.example.com/somebody.pem', + #'--endpoint', 'https://supermarket.io.example.com/api/v1', # default: supermarket.chef.io + #'--no-ssl-verify', + '--no-git', + '--log-level', 'info', + ] +end + +task default: ['style', 'spec'] diff --git a/cookbooks/nexus-grid/attributes/default.rb b/cookbooks/nexus-grid/attributes/default.rb new file mode 100644 index 0000000..4a678cb --- /dev/null +++ b/cookbooks/nexus-grid/attributes/default.rb @@ -0,0 +1,57 @@ +# +# Cookbook Name:: nexus-grid +# Attributes:: default +# +# Copyright 2017, whitestar +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Not supported yet. +force_override['nexus-grid']['https_enabled'] = false +force_override['nexus-grid']['with_ssl_cert_cookbook'] = false +# If ['nexus-grid']['with_ssl_cert_cookbook'] is true, +# node['nexus-grid']['docker-compose']['config'] +# are overridden by the following 'common_name' attributes. +force_override['nexus-grid']['ssl_cert']['ca_names'] = [] +force_override['nexus-grid']['ssl_cert']['common_name'] = node['fqdn'] + +default['nexus-grid']['docker-compose']['app_dir'] = "#{node['docker-grid']['compose']['app_dir']}/nexus" +default['nexus-grid']['docker-compose']['data_dir'] = "#{node['nexus-grid']['docker-compose']['app_dir']}/data" + +force_override['nexus-grid']['docker-compose']['config_format_version'] = '2' +version_2_config = { + # Version 2 docker-compose format + 'version' => '2', + 'services' => { + 'nexus' => { + 'restart' => 'always', + 'image' => 'sonatype/nexus3', + 'ports' => [ + #'8081:8081', + #'8443:8443', + ], + 'volumes' => [ + # This volume will be set by the nexus-grid::docker-compose recipe automatically. + #"#{node['nexus-grid']['docker-compose']['data_dir']}:/nexus-data", + ], + 'environment' => { + #JAVA_MAX_HEAP => '1200m', # passed as -Xmx. Defaults to 1200m. + #JAVA_MIN_HEAP => '1200m', # passed as -Xms. Defaults to 1200m. + #EXTRA_JAVA_OPTS => '', # Additional options can be passed to the JVM via this variable. + }, + }, + }, +} + +default['nexus-grid']['docker-compose']['config'] = version_2_config diff --git a/cookbooks/nexus-grid/concourse.yml b/cookbooks/nexus-grid/concourse.yml new file mode 100644 index 0000000..31c1972 --- /dev/null +++ b/cookbooks/nexus-grid/concourse.yml @@ -0,0 +1,100 @@ +--- +# $ fly -t target sp -p nexus-grid-cookbook -c concourse.yml -l fly-vars.yml -l ~/sec/credentials-prod.yml +resources: +- name: src-git + type: git + source: + uri: ((git-id-osdn))@git.osdn.net:/gitroot/metasearch/grid-chef-repo.git + branch: master + paths: + - cookbooks/((cookbook-name)) + private_key: ((git-private-key)) + git_user: ((git-user-osdn)) + #check_every: 1h # default: 1m +- name: chefdk-cache + type: docker-image + source: + repository: chef/chefdk + tag: ((chefdk-version)) + # ((param)) style: fly >= 3.2.0 + registry_mirror: https://((registry-mirror-domain)) # e.g. https://registry.docker.example.com:5000 + ca_certs: + - domain: ((registry-mirror-domain)) # e.g. registry.docker.example.com:5000 + cert: ((docker-reg-ca-cert)) + check_every: 12h # default: 1m + +jobs: +- name: test-cookbook + plan: + - aggregate: + - get: src-git + params: + depth: 5 + trigger: true + - get: chefdk-cache + - task: ci-build + image: chefdk-cache + params: + http_proxy: ((http-proxy)) # e.g. http://proxy.example.com:3128 + #HTTP_PROXY: ((http-proxy)) + config: + platform: linux + #image_resource: + # type: docker-image + # source: + # repository: chef/chefdk + # tag: ((chefdk-version)) + # NG, setting disable + #registry_mirror: https://((registry-mirror-domain)) + #ca_certs: + #- domain: ((registry-mirror-domain)) + # cert: ((docker-reg-ca-cert)) + inputs: + - name: src-git + run: + #dir: ./src-git/cookbooks/((cookbook-name)) + #path: rake + path: /bin/bash + args: + - -c + - | + cd ./src-git/cookbooks/((cookbook-name)) + bundle install + rake +- name: publish-cookbook + plan: + - aggregate: + - get: src-git + params: + depth: 5 + trigger: false + passed: [test-cookbook] + - get: chefdk-cache + passed: [test-cookbook] + - task: publish + image: chefdk-cache + params: + http_proxy: ((http-proxy)) + chef_username: ((chef-username)) + chef_client_key: ((chef-client-key)) + config: + platform: linux + inputs: + - name: src-git + run: + path: /bin/bash + args: + - -c + - | + echo '{"username":"((chef-username))","key":"/root/chef-client-key.pem"}' > /root/.stove + echo "$chef_client_key" > /root/chef-client-key.pem + cd ./src-git/cookbooks/((cookbook-name)) + bundle install + rake publish + - put: src-git + params: + repository: src-git + tag_prefix: ((cookbook-name))- + tag: src-git/cookbooks/((cookbook-name))/version + only_tag: true + annotate: ../src-git/cookbooks/((cookbook-name))/version diff --git a/cookbooks/nexus-grid/fly-vars.yml b/cookbooks/nexus-grid/fly-vars.yml new file mode 100644 index 0000000..6cd1bf2 --- /dev/null +++ b/cookbooks/nexus-grid/fly-vars.yml @@ -0,0 +1,3 @@ +--- +cookbook-name: nexus-grid +chefdk-version: 1.4.3 diff --git a/cookbooks/nexus-grid/metadata.rb b/cookbooks/nexus-grid/metadata.rb new file mode 100644 index 0000000..c0c290f --- /dev/null +++ b/cookbooks/nexus-grid/metadata.rb @@ -0,0 +1,20 @@ +name 'nexus-grid' +maintainer 'whitestar' +maintainer_email '' +license 'Apache 2.0' +description 'Installs/Configures Sonatype Nexus Repository Manager' +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version IO.read(File.join(File.dirname(__FILE__), 'version')).chomp +source_url 'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git' +issues_url 'https://osdn.jp/projects/metasearch/ticket' + +chef_version '>= 12' +%w( centos redhat ).each do |os| + supports os, '>= 7.0' +end +supports 'debian', '>= 8.0' +supports 'ubuntu', '>= 14.04' + +depends 'docker-grid', '>= 0.2.7' +depends 'platform_utils', '>= 0.4.3' +depends 'ssl_cert', '>= 0.3.7' diff --git a/cookbooks/nexus-grid/recipes/default.rb b/cookbooks/nexus-grid/recipes/default.rb new file mode 100644 index 0000000..888165d --- /dev/null +++ b/cookbooks/nexus-grid/recipes/default.rb @@ -0,0 +1,18 @@ +# +# Cookbook Name:: nexus-grid +# Recipe:: default +# +# Copyright 2017, whitestar +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# diff --git a/cookbooks/nexus-grid/recipes/docker-compose.rb b/cookbooks/nexus-grid/recipes/docker-compose.rb new file mode 100644 index 0000000..2325b10 --- /dev/null +++ b/cookbooks/nexus-grid/recipes/docker-compose.rb @@ -0,0 +1,104 @@ +# +# Cookbook Name:: nexus-grid +# Recipe:: docker-compose +# +# Copyright 2017, whitestar +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +::Chef::Recipe.send(:include, SSLCert::Helper) + +doc_url = 'https://hub.docker.com/r/sonatype/nexus3/' + +include_recipe 'platform_utils::kernel_user_namespace' +include_recipe 'docker-grid::compose' + +app_dir = node['nexus-grid']['docker-compose']['app_dir'] +data_dir = node['nexus-grid']['docker-compose']['data_dir'] +#bin_dir = "#{app_dir}/bin" + +[ + app_dir, + #bin_dir, +].each {|dir| + resources(directory: dir) rescue directory dir do + owner 'root' + group 'root' + mode '0755' + recursive true + end +} + +config_srvs = node['nexus-grid']['docker-compose']['config']['services'] +override_config_srvs = node.override['nexus-grid']['docker-compose']['config']['services'] +#force_override_config_srvs = node.force_override['nexus-grid']['docker-compose']['config']['services'] +#envs_org = config_srvs['nexus']['environment'] +#envs = {} +vols = config_srvs['nexus']['volumes'].to_a + +# Data persistent +resources(directory: data_dir) rescue directory data_dir do + owner 200 + group 'root' + mode '0700' + recursive true +end if !data_dir.nil? && !data_dir.empty? + +vols.push("#{data_dir}:/nexus-data") if !data_dir.nil? && !data_dir.empty? + +ports = config_srvs['nexus']['ports'] +override_config_srvs['nexus']['ports'] = ['8081:8081'] if ports.empty? + +if node['nexus-grid']['https_enabled'] + etc_dir = "#{data_dir}/etc" + resources(directory: etc_dir) rescue directory etc_dir do + owner 200 + group 200 + mode '0755' + recursive true + end + + template "#{etc_dir}/nexus.properties" do + source 'opt/docker-compose/app/nexus/data/etc/nexus.properties' + owner 200 + group 200 + mode '0644' + action :create + end + + override_config_srvs['nexus']['ports'] = ['8443:8443'] if ports.empty? +end + +# merge environment hash +#force_override_config_srvs['nexus']['environment'] = envs unless envs.empty? +# reset vlumes array. +override_config_srvs['nexus']['volumes'] = vols unless vols.empty? + +config_file = "#{app_dir}/docker-compose.yml" +template config_file do + source 'opt/docker-compose/app/nexus/docker-compose.yml' + owner 'root' + group 'root' + mode '0644' +end + +log <<-"EOM" +Note: You must execute the following command manually. + See #{doc_url} + - Start: + $ cd #{app_dir} + $ docker-compose up -d + - Stop + $ docker-compose down +EOM diff --git a/cookbooks/nexus-grid/spec/recipes/default_spec.rb b/cookbooks/nexus-grid/spec/recipes/default_spec.rb new file mode 100644 index 0000000..4eef5eb --- /dev/null +++ b/cookbooks/nexus-grid/spec/recipes/default_spec.rb @@ -0,0 +1,9 @@ +require_relative '../spec_helper' + +describe 'nexus-grid::default' do + let(:chef_run) { ChefSpec::SoloRunner.new.converge(described_recipe) } + + #it 'does something' do + # expect(chef_run).to do_something('...') + #end +end diff --git a/cookbooks/nexus-grid/spec/spec_helper.rb b/cookbooks/nexus-grid/spec/spec_helper.rb new file mode 100644 index 0000000..1995e2b --- /dev/null +++ b/cookbooks/nexus-grid/spec/spec_helper.rb @@ -0,0 +1,25 @@ +# Added by ChefSpec +require 'chefspec' + +# Uncomment to use ChefSpec's Berkshelf extension +# require 'chefspec/berkshelf' + +RSpec.configure do |config| + # Specify the path for Chef Solo to find cookbooks + # config.cookbook_path = '/var/cookbooks' + + # Specify the path for Chef Solo to find roles + # config.role_path = '/var/roles' + + # Specify the Chef log_level (default: :warn) + # config.log_level = :debug + + # Specify the path to a local JSON file with Ohai data + # config.path = 'ohai.json' + + # Specify the operating platform to mock Ohai data from + # config.platform = 'ubuntu' + + # Specify the operating version to mock Ohai data from + # config.version = '12.04' +end diff --git a/cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/data/etc/nexus.properties b/cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/data/etc/nexus.properties new file mode 100644 index 0000000..31b1e9a --- /dev/null +++ b/cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/data/etc/nexus.properties @@ -0,0 +1,19 @@ +# Jetty section +# application-port=8081 +# application-host=0.0.0.0 +# nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml +# nexus-context-path=/${NEXUS_CONTEXT} +<% +if node['nexus-grid']['https_enabled'] +-%> +# for HTTPS +application-port-ssl=8443 +nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-https.xml,${jetty.etc}/jetty-requestlog.xml +<% +end +-%> + +# Nexus section +# nexus-edition=nexus-pro-edition +# nexus-features=\ +# nexus-pro-feature diff --git a/cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/docker-compose.yml b/cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/docker-compose.yml new file mode 100644 index 0000000..55fa06b --- /dev/null +++ b/cookbooks/nexus-grid/templates/default/opt/docker-compose/app/nexus/docker-compose.yml @@ -0,0 +1,5 @@ +<% +require 'yaml' +yaml_str = node['nexus-grid']['docker-compose']['config'].to_hash.to_yaml +-%> +<%= yaml_str %> diff --git a/cookbooks/nexus-grid/version b/cookbooks/nexus-grid/version new file mode 100644 index 0000000..6e8bf73 --- /dev/null +++ b/cookbooks/nexus-grid/version @@ -0,0 +1 @@ +0.1.0 -- 2.11.0