vagrant-clusterfuck 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea8f1dadf88c11b03ab6d59172d54baac326d173
4
- data.tar.gz: 330655783008ab4b68278ffde5d5e86782481ecc
3
+ metadata.gz: cba58d5d4d165c18113081ff30076ede950e7af4
4
+ data.tar.gz: f4f48a7daa02d37d0575bd4a9eb71b4618cdf2e9
5
5
  SHA512:
6
- metadata.gz: 2204d71f146f3c54c97e205c22510c0bff856adb7d94d7f8f760db6e3873f697688f4f039f2c19056ca89de87056095e43c4d2e1ef6ed1a6eef8603f1c39623c
7
- data.tar.gz: 5bcbf2ee956477691c634e5a8cf59b1fe86f15d5ad5fb8bcb60b53d812b0cee4dabd2536c5bda95b8fe912874e0b77a6fb5006d0d0afa6db4594ebb2c9ddd3e1
6
+ metadata.gz: a6146382c4282742cb969dd155d1958aa688284b14727ea7ede7710ea51fc3a79c6d2dfc445890e72739b870d39391375cf7fa0038b76de2b2e3770b01d3743b
7
+ data.tar.gz: fe2838fb2e8e943205b99c15b143d03cafe0a3726353e93427064ba87e71b45b4e4164dd7e547b1e1d126164f400083b7b28dc6ae2654f2a8646ab5478142818
data/cluster.rb CHANGED
@@ -31,7 +31,7 @@ host11 = Machine.new(:host11, routes: spine.bgp_announce, gateway: leaf1)
31
31
  # A BGPPeer is just a machine with BGP information so that its BGP neighbours
32
32
  # will automatically add it as a BGP peer. This is for a node to run e.g.
33
33
  # ExaBGP.
34
- host21 = BGPPeer.new(:host21, routes: spine.bgp_announce, gateway: leaf2)
34
+ host21 = ExaBGPPeer.new(:host21, routes: spine.bgp_announce, gateway: leaf2)
35
35
  host22 = Machine.new(:host22, routes: spine.bgp_announce, gateway: leaf2)
36
36
 
37
37
  # The spines and leaves have their own subnets
@@ -0,0 +1,12 @@
1
+ module Clusterfuck
2
+ class ExaBGPPeer < BGPPeer
3
+ # We use a hard-coded ASN with exabgp clients in order
4
+ # to support community weights
5
+ EXABGP_ASN = 65534
6
+
7
+ def initialize(name, **args)
8
+ args[:asn] = EXABGP_ASN
9
+ super
10
+ end
11
+ end
12
+ end
@@ -20,11 +20,11 @@ module Clusterfuck
20
20
  destination: "/tmp/quagga/daemons"
21
21
 
22
22
  box.vm.provision :file,
23
- source: tmp_zebra_config,
23
+ source: tmp_bgp_config("../../../templates/quagga.zebra.conf.erb"),
24
24
  destination: "/tmp/quagga/zebra.conf"
25
25
 
26
26
  box.vm.provision :file,
27
- source: tmp_bgp_config,
27
+ source: tmp_bgp_config("../../../templates/quagga.bgpd.conf.erb"),
28
28
  destination: "/tmp/quagga/bgpd.conf"
29
29
 
30
30
  box.vm.provision :shell, inline: <<-EOS
@@ -42,24 +42,20 @@ EOS
42
42
 
43
43
  private
44
44
  # TODO clean up these messy functions
45
- def tmp_zebra_config
46
- File.expand_path("../../../templates/quagga.zebra.conf", __FILE__)
47
- end
48
-
49
45
  def tmp_daemons_config
50
46
  File.expand_path("../../../templates/quagga.daemons", __FILE__)
51
47
  end
52
48
 
53
- def tmp_bgp_config
49
+ def tmp_bgp_config(template)
54
50
  temp = Tempfile.new("routes")
55
51
  ObjectSpace.undefine_finalizer(temp) # finalizer removes it, nthx
56
- temp.write(bgp_config)
52
+ temp.write(bgp_config(template))
57
53
  temp.flush
58
54
  temp.path
59
55
  end
60
56
 
61
- def bgp_config
62
- path = File.expand_path("../../../templates/quagga.bgpd.conf.erb", __FILE__)
57
+ def bgp_config(template)
58
+ path = File.expand_path(template, __FILE__)
63
59
  ERB.new(File.read(path)).result(binding)
64
60
  end
65
61
  end
@@ -1,3 +1,3 @@
1
1
  module Clusterfuck
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -2,7 +2,7 @@
2
2
  !
3
3
  ! BGPd configuration file
4
4
  !
5
- hostname leaf
5
+ hostname <%= name %>-bgp
6
6
  password zebra
7
7
  !enable password please-set-at-here
8
8
  !
@@ -21,7 +21,7 @@ router bgp <%= bgp_asn %>
21
21
  neighbor <%= node.ip_in_same_subnet(self) %> next-hop-self
22
22
  neighbor <%= node.ip_in_same_subnet(self) %> advertisement-interval 1
23
23
  <% end %>
24
-
24
+
25
25
  ip community-list standard cm-prefmod-300 permit 65534:300
26
26
  ip community-list standard cm-prefmod-200 permit 65534:200
27
27
  ip community-list standard cm-prefmod-100 permit 65534:100
@@ -2,7 +2,7 @@
2
2
  !
3
3
  ! zebra configuration file
4
4
  !
5
- hostname leaf1
5
+ hostname <%= name %>-zebra
6
6
  password zebra
7
7
  enable password zebra
8
8
  !
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-clusterfuck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Eskildsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-01 00:00:00.000000000 Z
11
+ date: 2015-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,13 +71,14 @@ files:
71
71
  - lib/clusterfuck/bgp_peer.rb
72
72
  - lib/clusterfuck/cluster.rb
73
73
  - lib/clusterfuck/core_ext/ipaddr.rb
74
+ - lib/clusterfuck/exabgp_peer.rb
74
75
  - lib/clusterfuck/machine.rb
75
76
  - lib/clusterfuck/quagga_bgp_router.rb
76
77
  - lib/clusterfuck/subnet_factory.rb
77
78
  - lib/clusterfuck/version.rb
78
79
  - templates/quagga.bgpd.conf.erb
79
80
  - templates/quagga.daemons
80
- - templates/quagga.zebra.conf
81
+ - templates/quagga.zebra.conf.erb
81
82
  - templates/routes.sh.erb
82
83
  - test/bgp_network_test.rb
83
84
  - test/bgp_peer_test.rb
@@ -105,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
106
  version: '0'
106
107
  requirements: []
107
108
  rubyforge_project:
108
- rubygems_version: 2.2.2
109
+ rubygems_version: 2.4.5
109
110
  signing_key:
110
111
  specification_version: 4
111
112
  summary: Clusterfuck lets you fuck with clusters