From 63671e7187760ac5371f8809ade663ac74f4fddd Mon Sep 17 00:00:00 2001 From: Nathan Cerny Date: Fri, 26 May 2017 10:29:43 -0500 Subject: [PATCH 1/2] Add deprecation notices Signed-off-by: Nathan Cerny --- README.md | 5 +++++ libraries/helpers.rb | 9 +++++++++ metadata.rb | 2 +- resources/automate.rb | 33 +++++++++++++++++++++------------ resources/backend.rb | 2 ++ resources/chef_org.rb | 2 ++ resources/chef_user.rb | 2 ++ resources/client.rb | 2 ++ resources/file.rb | 2 ++ resources/server.rb | 2 ++ resources/supermarket.rb | 2 ++ resources/wf_builder.rb | 2 ++ 12 files changed, 52 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index c1b6a6b..7858be3 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +### chef_stack has been deprecated. +The resources have been merged into [chef-ingredient](https://github.com/chef-cookbooks/chef-ingredient). Please update your cookbooks to use chef-ingredient. + +chef_stack will continue to be used as a testing ground to test potentially breaking changes. + # chef_stack Chef stack is a library cookbook that provides custom resources to build and manage your Chef infrastructure. diff --git a/libraries/helpers.rb b/libraries/helpers.rb index 9696392..3dbe071 100644 --- a/libraries/helpers.rb +++ b/libraries/helpers.rb @@ -37,3 +37,12 @@ def ensurekv(original_config, hash) end config end + +def deprecation_notice + message = 'Chef Stack is deprecated. The resources have been merged into chef-ingredient. Please update your cookbooks to use chef-ingredient.' + log 'Deprecation' do + level :warn + message message + end + Chef.deprecated(:internal_api, message) +end diff --git a/metadata.rb b/metadata.rb index 8e93e18..2236e3e 100644 --- a/metadata.rb +++ b/metadata.rb @@ -7,6 +7,6 @@ issues_url 'https://github.com/ncerny/chef_stack/issues' if respond_to?(:issues_url) source_url 'https://github.com/ncerny/chef_stack' if respond_to?(:source_url) -version '0.8.6' +version '0.9.0' depends 'chef-ingredient' diff --git a/resources/automate.rb b/resources/automate.rb index bd21c59..1cf217a 100644 --- a/resources/automate.rb +++ b/resources/automate.rb @@ -19,7 +19,7 @@ resource_name 'chef_automate' default_action :create -property :fqdn, String, name_property: true +property :name, String, name_property: true property :channel, Symbol, default: :stable property :version, [String, Symbol], default: :latest property :config, String, required: true @@ -40,17 +40,23 @@ end action :create do - required_config = <<-EOF - delivery['chef_username'] = '#{new_resource.chef_user}' - delivery['chef_private_key'] = '/etc/delivery/#{new_resource.chef_user}.pem' - delivery['default_search'] = 'tags:delivery-build-node' - EOF + deprecation_notice + + # https://github.com/chef/delivery/issues/469 + new_resource.config << "\ndelivery['chef_server_proxy'] = false" unless new_resource.config.include?('chef_server_proxy') + + # Always make sure user and key provided to resource is at the bottom of the config, overriding duplicates. + new_resource.config << "\ndelivery['chef_username'] = '#{new_resource.chef_user}'" + new_resource.config << "\ndelivery['chef_private_key'] = '/etc/delivery/#{new_resource.chef_user}.pem'" + + # Hardcode v1 runner search to automate-build-node + new_resource.config << "\ndelivery['default_search'] = 'tags:delivery-build-node'" chef_ingredient 'automate' do action :upgrade channel new_resource.channel version new_resource.version - config ensurekv(new_resource.config.dup.concat(required_config), delivery_fqdn: new_resource.fqdn) + config new_resource.config accept_license new_resource.accept_license platform new_resource.platform if new_resource.platform platform_version new_resource.platform_version if new_resource.platform_version @@ -100,11 +106,14 @@ notifies :reconfigure, 'chef_ingredient[automate]', :immediately end - Array(enterprise).each do |ent| - execute "create enterprise #{ent}" do - command "delivery-ctl create-enterprise #{ent} --ssh-pub-key-file=/etc/delivery/builder_key.pub >> /etc/delivery/#{ent}.creds" - not_if "delivery-ctl list-enterprises --ssh-pub-key-file=/etc/delivery/builder_key.pub | grep -w #{ent}" - only_if 'delivery-ctl status' + if new_resource.enterprise.is_a?(String) + new_resource.enterprise = [new_resource.enterprise] + new_resource.enterprise.each do |ent| + execute "create enterprise #{ent}" do + command "delivery-ctl create-enterprise #{ent} --ssh-pub-key-file=/etc/delivery/builder_key.pub > /etc/delivery/#{ent}.creds" + not_if "delivery-ctl list-enterprises --ssh-pub-key-file=/etc/delivery/builder_key.pub | grep -w #{ent}" + only_if 'delivery-ctl status' + end end end end diff --git a/resources/backend.rb b/resources/backend.rb index 0443cdd..5afd3ff 100644 --- a/resources/backend.rb +++ b/resources/backend.rb @@ -38,6 +38,8 @@ end action :create do + deprecation_notice + raise 'Must accept the Chef License agreement before continuing.' unless new_resource.accept_license new_resource.config = ensurekv(new_resource.config, publish_address: new_resource.publish_address) diff --git a/resources/chef_org.rb b/resources/chef_org.rb index 2d7e101..8079434 100644 --- a/resources/chef_org.rb +++ b/resources/chef_org.rb @@ -33,6 +33,8 @@ end action :create do + deprecation_notice + directory '/etc/opscode/orgs' do owner 'root' group 'root' diff --git a/resources/chef_user.rb b/resources/chef_user.rb index 382372f..36f93e9 100644 --- a/resources/chef_user.rb +++ b/resources/chef_user.rb @@ -33,6 +33,8 @@ end action :create do + deprecation_notice + directory '/etc/opscode/users' do owner 'root' group 'root' diff --git a/resources/client.rb b/resources/client.rb index 09b9963..48974ca 100644 --- a/resources/client.rb +++ b/resources/client.rb @@ -57,6 +57,8 @@ end action :install do + deprecation_notice + chef_ingredient 'chef' do action :upgrade version new_resource.version diff --git a/resources/file.rb b/resources/file.rb index 7e6bd8f..204ce0f 100644 --- a/resources/file.rb +++ b/resources/file.rb @@ -31,6 +31,8 @@ end action :create do + deprecation_notice + new_resource.source = (property_is_set?(:source) ? new_resource.source : "cookbook_file://#{new_resource.filename}") if new_resource.source.start_with?('cookbook_file://') src = new_resource.source.split('://')[1].split('::') diff --git a/resources/server.rb b/resources/server.rb index cc260c2..5c71abf 100644 --- a/resources/server.rb +++ b/resources/server.rb @@ -36,6 +36,8 @@ end action :create do + deprecation_notice + if new_resource.data_collector_url new_resource.config << "\ndata_collector['root_url'] = '#{new_resource.data_collector_url}'" new_resource.config << "\ndata_collector['token'] = '#{new_resource.data_collector_token}'" diff --git a/resources/supermarket.rb b/resources/supermarket.rb index 8bbfad3..57ab30e 100644 --- a/resources/supermarket.rb +++ b/resources/supermarket.rb @@ -37,6 +37,8 @@ end action :create do + deprecation_notice + chef_ingredient 'supermarket' do action :upgrade channel new_resource.channel diff --git a/resources/wf_builder.rb b/resources/wf_builder.rb index 20d048a..928ea7b 100644 --- a/resources/wf_builder.rb +++ b/resources/wf_builder.rb @@ -44,6 +44,8 @@ end action :create do + deprecation_notice + chef_ingredient 'chefdk' do action :upgrade channel new_resource.channel From 5842a1ed151fa96a4758a97061c05d68d2edfd24 Mon Sep 17 00:00:00 2001 From: Nathan Cerny Date: Fri, 26 May 2017 11:04:00 -0500 Subject: [PATCH 2/2] Revert changes that were accidentally committed. Signed-off-by: Nathan Cerny --- README.md | 2 ++ resources/automate.rb | 33 +++++++++++++-------------------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 7858be3..916b09f 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ The resources have been merged into [chef-ingredient](https://github.com/chef-co chef_stack will continue to be used as a testing ground to test potentially breaking changes. +The last stable version was 0.9.0. Anything after this version, will likely break your infrastructure. + # chef_stack Chef stack is a library cookbook that provides custom resources to build and manage your Chef infrastructure. diff --git a/resources/automate.rb b/resources/automate.rb index 1cf217a..72350f0 100644 --- a/resources/automate.rb +++ b/resources/automate.rb @@ -19,7 +19,7 @@ resource_name 'chef_automate' default_action :create -property :name, String, name_property: true +property :fqdn, String, name_property: true property :channel, Symbol, default: :stable property :version, [String, Symbol], default: :latest property :config, String, required: true @@ -41,22 +41,18 @@ action :create do deprecation_notice - - # https://github.com/chef/delivery/issues/469 - new_resource.config << "\ndelivery['chef_server_proxy'] = false" unless new_resource.config.include?('chef_server_proxy') - - # Always make sure user and key provided to resource is at the bottom of the config, overriding duplicates. - new_resource.config << "\ndelivery['chef_username'] = '#{new_resource.chef_user}'" - new_resource.config << "\ndelivery['chef_private_key'] = '/etc/delivery/#{new_resource.chef_user}.pem'" - - # Hardcode v1 runner search to automate-build-node - new_resource.config << "\ndelivery['default_search'] = 'tags:delivery-build-node'" + + required_config = <<-EOF + delivery['chef_username'] = '#{new_resource.chef_user}' + delivery['chef_private_key'] = '/etc/delivery/#{new_resource.chef_user}.pem' + delivery['default_search'] = 'tags:delivery-build-node' + EOF chef_ingredient 'automate' do action :upgrade channel new_resource.channel version new_resource.version - config new_resource.config + config ensurekv(new_resource.config.dup.concat(required_config), delivery_fqdn: new_resource.fqdn) accept_license new_resource.accept_license platform new_resource.platform if new_resource.platform platform_version new_resource.platform_version if new_resource.platform_version @@ -106,14 +102,11 @@ notifies :reconfigure, 'chef_ingredient[automate]', :immediately end - if new_resource.enterprise.is_a?(String) - new_resource.enterprise = [new_resource.enterprise] - new_resource.enterprise.each do |ent| - execute "create enterprise #{ent}" do - command "delivery-ctl create-enterprise #{ent} --ssh-pub-key-file=/etc/delivery/builder_key.pub > /etc/delivery/#{ent}.creds" - not_if "delivery-ctl list-enterprises --ssh-pub-key-file=/etc/delivery/builder_key.pub | grep -w #{ent}" - only_if 'delivery-ctl status' - end + Array(enterprise).each do |ent| + execute "create enterprise #{ent}" do + command "delivery-ctl create-enterprise #{ent} --ssh-pub-key-file=/etc/delivery/builder_key.pub >> /etc/delivery/#{ent}.creds" + not_if "delivery-ctl list-enterprises --ssh-pub-key-file=/etc/delivery/builder_key.pub | grep -w #{ent}" + only_if 'delivery-ctl status' end end end