Top Level Namespace
Defined Under Namespace
Modules: Cheffish, Fhcap
Classes: Chef
Instance Method Summary
collapse
-
#aws_bootstrap_options(org_name, environment, instance_options) ⇒ Object
-
#aws_converge_options(org_name, environment, instance_options) ⇒ Object
-
#aws_machine_options(org_name, environment, instance_options) ⇒ Object
-
#bootstrap_options_for(provider, org_name, environment, instance_options) ⇒ Object
-
#cert_name_for(org_name, environment, cert_name) ⇒ Object
-
#cluster_config_for(node) ⇒ Object
-
#converge_options_for(provider, org_name, environment, instance_options) ⇒ Object
-
#fh_name_for(*args) ⇒ Object
-
#inbound_rules_for(org_name, ingress) ⇒ Object
-
#instance_name_for(org_name, environment, name) ⇒ Object
-
#internet_gateway_name_for(name) ⇒ Object
-
#key_pair_name_for(name) ⇒ Object
-
#load_balancer_name_for(org_name, environment, lb_name) ⇒ Object
-
#machine_options_for(provider, org_name, environment, instance_options) ⇒ Object
-
#node_names_for(cluster_config) ⇒ Object
-
#openstack_bootstrap_options(org_name, environment, instance_options) ⇒ Object
-
#openstack_converge_options(org_name, environment, instance_options) ⇒ Object
-
#openstack_machine_options(org_name, environment, instance_options) ⇒ Object
-
#rabbit_reset_required?(nodes) ⇒ Boolean
-
#route_table_name_for(org_name, environment) ⇒ Object
-
#security_group_name_for(name, environment) ⇒ Object
-
#subnet_name_for(name, environment, suffix) ⇒ Object
-
#volume_name_for(*args) ⇒ Object
-
#vpc_name_for(name) ⇒ Object
Instance Method Details
#aws_bootstrap_options(org_name, environment, instance_options) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 49
def aws_bootstrap_options(org_name, environment, instance_options)
bootstrap_options = {
image_id: instance_options[:image_id],
instance_type: instance_options[:instance_type],
key_name: key_pair_name_for(org_name)
}
bootstrap_options[:subnet] = subnet_name_for(org_name, environment, instance_options[:subnet])
bootstrap_options[:security_group_ids] = instance_options[:security_groups].collect do |security_group|
security_group_name_for(org_name, security_group)
end
bootstrap_options[:block_device_mappings] = instance_options[:block_device_mappings]
bootstrap_options
end
|
#aws_converge_options(org_name, environment, instance_options) ⇒ Object
64
65
66
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 64
def aws_converge_options(org_name, environment, instance_options)
{:chef_version => '11.10.4'}
end
|
#aws_machine_options(org_name, environment, instance_options) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 42
def aws_machine_options(org_name, environment, instance_options)
{
:bootstrap_options => bootstrap_options_for('aws', org_name, environment, instance_options),
:convergence_options => converge_options_for('aws', org_name, environment, instance_options),
}
end
|
#bootstrap_options_for(provider, org_name, environment, instance_options) ⇒ Object
32
33
34
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 32
def bootstrap_options_for(provider, org_name, environment, instance_options)
send(:"#{provider}_bootstrap_options", org_name, environment, instance_options)
end
|
#cert_name_for(org_name, environment, cert_name) ⇒ Object
128
129
130
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 128
def cert_name_for(org_name, environment, cert_name)
fh_name_for('fh-crt', org_name, environment, cert_name)
end
|
#cluster_config_for(node) ⇒ Object
138
139
140
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 138
def cluster_config_for(node)
JSON.parse(node.normal.to_json, {:symbolize_names => true})
end
|
#converge_options_for(provider, org_name, environment, instance_options) ⇒ Object
36
37
38
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 36
def converge_options_for(provider, org_name, environment, instance_options)
send(:"#{provider}_converge_options", org_name, environment, instance_options)
end
|
#fh_name_for(*args) ⇒ Object
132
133
134
135
136
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 132
def fh_name_for(*args)
args.collect do |str|
str.to_s.split('-')
end.flatten.uniq.join('-')
end
|
#inbound_rules_for(org_name, ingress) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 12
def inbound_rules_for(org_name, ingress)
ingress.collect do |ai|
sources = ai[:sources] || []
sources += ai[:groups].collect { |group| security_group_name_for(org_name, group) } if ai[:groups]
protocols = ai[:protocols].collect { |p| p }
if protocols.delete 'all'
protocols += ['tcp', 'udp']
end
protocols.uniq!
protocols.collect do |protocol|
{port: ai[:start]..ai[:end], protocol: protocol, sources: sources}
end
end.flatten
end
|
#instance_name_for(org_name, environment, name) ⇒ Object
116
117
118
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 116
def instance_name_for(org_name, environment, name)
fh_name_for(org_name, environment, name)
end
|
#internet_gateway_name_for(name) ⇒ Object
96
97
98
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 96
def internet_gateway_name_for(name)
fh_name_for('fh-igw', name)
end
|
#key_pair_name_for(name) ⇒ Object
92
93
94
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 92
def key_pair_name_for(name)
fh_name_for('fh-kp', name)
end
|
#load_balancer_name_for(org_name, environment, lb_name) ⇒ Object
124
125
126
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 124
def load_balancer_name_for(org_name, environment, lb_name)
fh_name_for('fh-lb', org_name, environment, lb_name)[0..31]
end
|
#machine_options_for(provider, org_name, environment, instance_options) ⇒ Object
28
29
30
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 28
def machine_options_for(provider, org_name, environment, instance_options)
send(:"#{provider}_machine_options", org_name, environment, instance_options)
end
|
#node_names_for(cluster_config) ⇒ Object
1
2
3
4
5
6
7
8
9
10
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 1
def node_names_for(cluster_config)
org_name = cluster_config[:id]
cluster_config[:environments].collect do |env_name, env_cfg|
env_cfg[:instances].collect do |name, cfg|
instance_name_for(org_name, env_name, name)
end if env_cfg[:instances]
end.flatten
end
|
#openstack_bootstrap_options(org_name, environment, instance_options) ⇒ Object
79
80
81
82
83
84
85
86
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 79
def openstack_bootstrap_options(org_name, environment, instance_options)
{
flavor_ref: instance_options[:flavor_ref],
image_ref: instance_options[:image_ref],
key_name: key_pair_name_for(org_name),
user_id: "ubuntu"
}
end
|
#openstack_converge_options(org_name, environment, instance_options) ⇒ Object
88
89
90
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 88
def openstack_converge_options(org_name, environment, instance_options)
{:chef_version => '11.10.4', :ohai_hints => { :openstack => {} }}
end
|
#openstack_machine_options(org_name, environment, instance_options) ⇒ Object
70
71
72
73
74
75
76
77
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 70
def openstack_machine_options(org_name, environment, instance_options)
{
:bootstrap_options => bootstrap_options_for('openstack', org_name, environment, instance_options),
:convergence_options => converge_options_for('openstack', org_name, environment, instance_options),
:floating_ip_pool => instance_options[:floating_ip_pool],
:ssh_username => "ubuntu"
}
end
|
#rabbit_reset_required?(nodes) ⇒ Boolean
7
8
9
10
|
# File 'lib/cookbooks/provision/recipes/reset_rabbitmq.rb', line 7
def rabbit_reset_required?(nodes)
nodes.length > 1
end
|
#route_table_name_for(org_name, environment) ⇒ Object
108
109
110
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 108
def route_table_name_for(org_name, environment)
fh_name_for('fh-rt', org_name, environment)
end
|
#security_group_name_for(name, environment) ⇒ Object
104
105
106
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 104
def security_group_name_for(name, environment)
fh_name_for('fh-sg', name, environment)
end
|
#subnet_name_for(name, environment, suffix) ⇒ Object
112
113
114
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 112
def subnet_name_for(name, environment, suffix)
fh_name_for('fh-net', name, environment, suffix)
end
|
#volume_name_for(*args) ⇒ Object
120
121
122
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 120
def volume_name_for(*args)
fh_name_for('fh-vol', *args)
end
|
#vpc_name_for(name) ⇒ Object
100
101
102
|
# File 'lib/cookbooks/provision/libraries/provision.rb', line 100
def vpc_name_for(name)
fh_name_for('fh-vpc', name)
end
|