Move the default config to a Chef attribute

This is tested by serverspec integration test

Closes #5
This commit is contained in:
Greg 2019-05-09 18:38:56 +02:00
parent c6a0159e82
commit 553ec510eb
4 changed files with 70 additions and 30 deletions

View File

@ -1,7 +1,35 @@
node.default['ipfs']['version'] = '0.4.17'
node.default['ipfs']['checksum'] = '1bb1050ebe74f9042ac721eb1b71f92e1b0e78e54c59dadfde13080facb2901c'
# Do not contact local network addresses. This will stop platforms like Hetzner
# to block your server (https://github.com/ipfs/go-ipfs/issues/1226)
node.default['ipfs']['config']['swarm']['addr_filter'] = ['/ip4/10.0.0.0/ipcidr/8', '/ip4/100.64.0.0/ipcidr/10', '/ip4/169.254.0.0/ipcidr/16', '/ip4/172.16.0.0/ipcidr/12', '/ip4/192.0.0.0/ipcidr/24', '/ip4/192.0.0.0/ipcidr/29', '/ip4/192.0.0.8/ipcidr/32', '/ip4/192.0.0.170/ipcidr/32', '/ip4/192.0.0.171/ipcidr/32', '/ip4/192.0.2.0/ipcidr/24', '/ip4/192.168.0.0/ipcidr/16', '/ip4/198.18.0.0/ipcidr/15', '/ip4/198.51.100.0/ipcidr/24', '/ip4/203.0.113.0/ipcidr/24', '/ip4/240.0.0.0/ipcidr/4']
node.default['ipfs']['cluster']['version'] = '0.4.0'
node.default['ipfs']['config'] = {
# Do not contact local network addresses. This will stop platforms like Hetzner
# to block your server (https://github.com/ipfs/go-ipfs/issues/1226)
"Swarm.AddrFilters" => ['/ip4/10.0.0.0/ipcidr/8',
'/ip4/100.64.0.0/ipcidr/10',
'/ip4/169.254.0.0/ipcidr/16',
'/ip4/172.16.0.0/ipcidr/12',
'/ip4/192.0.0.0/ipcidr/24',
'/ip4/192.0.0.0/ipcidr/29',
'/ip4/192.0.0.8/ipcidr/32',
'/ip4/192.0.0.170/ipcidr/32',
'/ip4/192.0.0.171/ipcidr/32',
'/ip4/192.0.2.0/ipcidr/24',
'/ip4/192.168.0.0/ipcidr/16',
'/ip4/198.18.0.0/ipcidr/15',
'/ip4/198.51.100.0/ipcidr/24',
'/ip4/203.0.113.0/ipcidr/24',
'/ip4/240.0.0.0/ipcidr/4'],
# Do not keep track of bandwidth metrics. Disabling bandwidth metrics can
# lead to a slight performance improvement, as well as a reduction in memory
# usage.
"Swarm.DisableBandwidthMetrics" => true,
# Disable the p2p-circuit relay transport
"Swarm.DisableRelay" => true,
# Number of connections that, when exceeded, will trigger a connection GC
# operation
"Swarm.ConnMgr.HighWater" => 10,
# Minimum number of connections to maintain
"Swarm.ConnMgr.LowWater" => 1
}

View File

@ -4,7 +4,7 @@ maintainer_email 'mail@kosmos.org'
license 'MIT'
description 'Installs/Configures ipfs'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.1.3'
version '0.2.0'
supports %w(ubuntu debian)

View File

@ -79,30 +79,8 @@ else
end
end
# Configure ipfs to not contact local network addresses
ipfs_config 'Swarm.AddrFilters' do
value node['ipfs']['config']['swarm']['addr_filter']
end
# Do not keep track of bandwidth metrics. Disabling bandwidth metrics can
# lead to a slight performance improvement, as well as a reduction in memory
# usage.
ipfs_config 'Swarm.DisableBandwidthMetrics' do
value true
end
# Disable the p2p-circuit relay transport
ipfs_config 'Swarm.DisableRelay' do
value true
end
# Number of connections that, when exceeded, will trigger a connection GC
# operation
ipfs_config 'Swarm.ConnMgr.HighWater' do
value 10
end
# Minimum number of connections to maintain
ipfs_config 'Swarm.ConnMgr.LowWater' do
value 1
node['ipfs']['config'].each do |k, v|
ipfs_config k do
value v
end
end

View File

@ -1,4 +1,5 @@
require 'serverspec'
require 'json'
# Required by serverspec
set :backend, :exec
@ -21,4 +22,37 @@ describe 'IPFS' do
expect(service('ipfs')).to be_running
expect(service('ipfs')).to be_enabled
end
addr_filters = <<-EOF
[
"/ip4/10.0.0.0/ipcidr/8",
"/ip4/100.64.0.0/ipcidr/10",
"/ip4/169.254.0.0/ipcidr/16",
"/ip4/172.16.0.0/ipcidr/12",
"/ip4/192.0.0.0/ipcidr/24",
"/ip4/192.0.0.0/ipcidr/29",
"/ip4/192.0.0.8/ipcidr/32",
"/ip4/192.0.0.170/ipcidr/32",
"/ip4/192.0.0.171/ipcidr/32",
"/ip4/192.0.2.0/ipcidr/24",
"/ip4/192.168.0.0/ipcidr/16",
"/ip4/198.18.0.0/ipcidr/15",
"/ip4/198.51.100.0/ipcidr/24",
"/ip4/203.0.113.0/ipcidr/24",
"/ip4/240.0.0.0/ipcidr/4"
]
EOF
{
"Swarm.AddrFilters" => addr_filters.rstrip,
"Swarm.DisableBandwidthMetrics" => true,
"Swarm.DisableRelay" => true,
"Swarm.ConnMgr.HighWater" => 10,
"Swarm.ConnMgr.LowWater" => 1,
}.each do |k, v|
describe command("IPFS_PATH=/home/ipfs/.ipfs ipfs config '#{k}'") do
let(:sudo_options) { '-u ipfs -i' }
its(:stdout) { should eq "#{v}\n" }
end
end
end