stack-kicker 0.0.15 → 0.0.16
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.
- data/README.md +5 -0
- data/bin/stack-kicker +5 -1
- data/lib/stack-kicker/version.rb +1 -1
- data/lib/stack.rb +10 -4
- metadata +2 -2
data/README.md
CHANGED
@@ -241,6 +241,11 @@ In addition to the the ruby dependencies which gem will install for you, access
|
|
241
241
|
5. Support for AWS EC2 (from aws-kicker)
|
242
242
|
5. Support for DNS Updates on instance creation (from aws-kicker)
|
243
243
|
|
244
|
+
## Releasing
|
245
|
+
|
246
|
+
1. gem bump
|
247
|
+
2. gem release
|
248
|
+
|
244
249
|
## Contributing
|
245
250
|
|
246
251
|
1. Fork it
|
data/bin/stack-kicker
CHANGED
@@ -28,7 +28,7 @@ class App
|
|
28
28
|
include Methadone::CLILogging
|
29
29
|
|
30
30
|
main do |task|
|
31
|
-
debug { "#{options}" }
|
31
|
+
debug { "options = #{options}" }
|
32
32
|
# pass the logger.level into the Stack module
|
33
33
|
Stack.log_level(logger.level)
|
34
34
|
|
@@ -36,6 +36,9 @@ class App
|
|
36
36
|
config = Stack.select_stack(options[:stackfile], options['stack'])
|
37
37
|
end
|
38
38
|
|
39
|
+
# pass some command line options into the config
|
40
|
+
config['skip-secgroup-sync-deletes'] = options['skip-secgroup-sync-deletes'].nil? ? false : true
|
41
|
+
|
39
42
|
case task
|
40
43
|
when 'validate'
|
41
44
|
Stack.validate(config)
|
@@ -74,6 +77,7 @@ class App
|
|
74
77
|
on("--stackfile Stackfile", "Specify an alternative Stackfile")
|
75
78
|
on("--stack mystack", "Specify the stack in Stackfile that you want to work with")
|
76
79
|
on("--ssh-user USER", "User to be used for SSH access")
|
80
|
+
on("--skip-secgroup-sync-deletes", "Skip deletes during secgroup-sync, handy for running multiple stacks in the one account with overlapping group names")
|
77
81
|
|
78
82
|
arg :task, "task to be performed validate|configure-knife|show-stacks|show-stack|show-running|build|replace|delete|secgroup-sync|ssh"
|
79
83
|
version Stack::Kicker::VERSION
|
data/lib/stack-kicker/version.rb
CHANGED
data/lib/stack.rb
CHANGED
@@ -201,7 +201,7 @@ module Stack
|
|
201
201
|
Logger.warn "#{config[:key_pair]} isn't available, uploading the key"
|
202
202
|
|
203
203
|
# upload the key
|
204
|
-
key = os.create_keypair({:name=> config[:key_pair], :public_key=> File.read(config[:key_public])})
|
204
|
+
key = os.create_keypair({:name=> config[:key_pair], :public_key=> File.read(File.expand_path(config[:key_public]))})
|
205
205
|
Logger.warn "#{config[:key_pair]} fingerprint=#{key[:fingerprint]}"
|
206
206
|
else
|
207
207
|
Logger.info "#{config[:key_pair]} fingerprint=#{keypairs[config[:key_pair].to_sym][:fingerprint]}"
|
@@ -215,7 +215,7 @@ module Stack
|
|
215
215
|
sg_names = security_groups.map { |secgroup, secgroup_details| secgroup_details[:name] }
|
216
216
|
|
217
217
|
config[:roles].each do |role, role_details|
|
218
|
-
#
|
218
|
+
# does the secgroup exist?
|
219
219
|
if sg_names.include?(role_details[:security_group])
|
220
220
|
Logger.info "security group #{role_details[:security_group]} exists in #{az}"
|
221
221
|
else
|
@@ -575,6 +575,8 @@ cookbook_path [ '<%=config[:stackhome]%>/cookbooks' ]
|
|
575
575
|
end
|
576
576
|
|
577
577
|
def Stack.delete_all(config)
|
578
|
+
# check that we have OS_* vars loaded etc
|
579
|
+
Stack.syntax_check(config)
|
578
580
|
# this also populates out unspecified defaults, like az
|
579
581
|
Stack.populate_config(config)
|
580
582
|
|
@@ -648,12 +650,16 @@ cookbook_path [ '<%=config[:stackhome]%>/cookbooks' ]
|
|
648
650
|
sg_json.write(secgroup_ips.to_json)
|
649
651
|
sg_json.close
|
650
652
|
|
651
|
-
|
653
|
+
# should we skip deletes
|
654
|
+
skip_deletes = config['skip-secgroup-sync-deletes'] ? "--skip-deletes" : ""
|
655
|
+
|
656
|
+
secgroups_json_abs = Stack.find_file(config, "secgroups.json")
|
657
|
+
if File.exists?(secgroups_json_abs)
|
652
658
|
Logger.info "Found secgroups.json, syncing secgroups across AZ"
|
653
659
|
# run the secgroup-sync tool, across each AZ/REGION
|
654
660
|
config[:azs].each do |az|
|
655
661
|
Logger.info "Syncing security groups in #{az}"
|
656
|
-
system("stackhelper --os-region-name #{az} secgroup-sync --secgroup-json
|
662
|
+
system("stackhelper --os-region-name #{az} secgroup-sync #{skip_deletes} --secgroup-json #{secgroups_json_abs} --additional-group-json #{sg_json.path}")
|
657
663
|
end
|
658
664
|
else
|
659
665
|
Logger.info "No secgroups.json found, skipping secgroup sync"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack-kicker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|