Skip to content

Commit

Permalink
support plugins installation
Browse files Browse the repository at this point in the history
FAR: Install a plugin in tests, the one we have on hand for
     chef has some issues preventing us to create maven components.
     Until we've got a better/fixed plugin let's skip the install
     in tests.
  • Loading branch information
jeremy-clerc committed Jan 30, 2024
1 parent 0bc6589 commit fb52331
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ Downloads and installs the latest Nexus 3 Repository Manager OSS.
documentation on newer releases.
- `node['nexus3']['outbound_proxy']` - Configure outbound HTTP/HTTPS proxy. See example
'Configure outbound HTTP/HTTPS proxy for all the attributes.'
- `node['nexus3']['plugins']` - Install external plugins, takes a hash of `{ 'plugin-name' : { "name": "name override", "source": "..", "checksum": "..", "action": "remote file action"}}`. Plugins should be bundled in KAR format, and will be written on disk as `<plugin-name>-bundle.kar`

### Examples

Expand Down
12 changes: 12 additions & 0 deletions attributes/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,15 @@
default['nexus3']['vmoptions_variables']['Dkaraf.startLocalConsole'] = false
default['nexus3']['vmoptions_variables']['Djava.net.preferIPv4Stack'] = true
default['nexus3']['vmoptions_variables']['Djava.endorsed.dirs'] = 'lib/endorsed'

# Plugins bundles in KAR format to install
#
# default['nexus3']['plugins']['nexus-repository-chef'] = {
# "name": "force_another_name",
# "source": "https://on.the.internet/nexus-repository-chef-0.0.10-bundle.kar",
# "checksum": "8e6494bd8edbf3beb6b7054d599561e698dcf3f666c2114b7126c246804484a9",
# "action": "create" # https://docs.chef.io/resources/remote_file/#actions
# }
#
# https://help.sonatype.com/en/installing-bundles.html
default['nexus3']['plugins'] = {}
14 changes: 14 additions & 0 deletions resources/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
property :properties_variables, Hash, default: lazy { node['nexus3']['properties_variables'] }
property :vmoptions_variables, Hash, default: lazy { node['nexus3']['vmoptions_variables'] }
property :outbound_proxy, [Hash, NilClass], sensitive: true, default: lazy { node['nexus3']['outbound_proxy'] }
property :plugins, Hash, default: lazy { node['nexus3']['plugins'] }

action :install do
install_dir = ::File.join(new_resource.path, "nexus-#{new_resource.version}")
Expand Down Expand Up @@ -96,6 +97,19 @@
notifies :run, "ruby_block[#{blocker}]", :delayed
end

# Install plugins
new_resource.plugins.each do |name, config|
plugin_file_path = ::File.join(install_dir, 'deploy', "#{config['name'] || name}-bundle.kar")
remote_file plugin_file_path do
source config['source']
checksum config['checksum']
owner new_resource.nexus3_user
action((config['action'] || :create).to_sym)
notifies :restart, "nexus3_service[#{new_resource.service_name}]", :delayed
notifies :run, "ruby_block[#{blocker}]", :delayed
end
end

link new_resource.nexus3_home do
to install_dir
owner new_resource.nexus3_user
Expand Down

0 comments on commit fb52331

Please sign in to comment.