cloudstrap-azure 0.5.16.pre → 0.6.0.pre
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/cloudstrap-azure.gemspec +1 -0
- data/command/internal/cloudstrap-azure.deploy +31 -12
- metadata +21 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68168c24623af3d2facaeb6e71c805d65bff9db1f1140a024fdfac5b83116122
|
4
|
+
data.tar.gz: 1b7fcc5ace60f05312e7aa299d2c897aea06d220f39529f5cf2ba6ed33422de3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1343e22493831dc1d971a0c0c1de9abde85351421787525ec180b3d8faeece61374e933748e6eb5146f46f1cc87993708bacd2505efba43970e21b9b126333eb
|
7
|
+
data.tar.gz: dac991af23d63ea284a7162e07054e5be64113ed7d3636b88646f3c4e7badde8ec6ff32de4ca24ddc93bc091250f46b8802df9afd5e29cd2a78ebcc917016633
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/cloudstrap-azure.gemspec
CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |gem|
|
|
31
31
|
gem.add_runtime_dependency 'chronic', '~> 0.10', '>= 0.10.0'
|
32
32
|
gem.add_runtime_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.5'
|
33
33
|
gem.add_runtime_dependency 'facets', '~> 3.1', '>= 3.1.0'
|
34
|
+
gem.add_runtime_dependency 'net-scp', '~> 1.2', '>= 1.2.0'
|
34
35
|
gem.add_runtime_dependency 'pastel', '~> 0.7', '>= 0.7.0'
|
35
36
|
gem.add_runtime_dependency 'sshkey', '~> 1.9', '>= 1.9.0'
|
36
37
|
gem.add_runtime_dependency 'tty-prompt', '~> 0.16', '>= 0.16.0'
|
@@ -11,8 +11,9 @@ require 'azure_mgmt_container_service' # MIT License
|
|
11
11
|
require 'azure_mgmt_network' # MIT License
|
12
12
|
require 'azure_mgmt_resources' # MIT License
|
13
13
|
require 'chamber' # MIT License
|
14
|
-
require 'facets/string/snakecase' # BSD-2-Clause License
|
15
14
|
require 'concurrent' # MIT License
|
15
|
+
require 'facets/string/snakecase' # BSD-2-Clause License
|
16
|
+
require 'net/scp' # MIT License
|
16
17
|
require 'pastel' # MIT License
|
17
18
|
require 'sshkey' # MIT License
|
18
19
|
require 'tty-prompt' # MIT License
|
@@ -41,21 +42,29 @@ ARBITRARY_DELAY = (Chamber.env[:arbitrary_delay] || 10).to_i
|
|
41
42
|
ENABLE_SWAP_ACCOUNTING = %q{sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=\"console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300\"/GRUB_CMDLINE_LINUX_DEFAULT=\"console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300 swapaccount=1\"/g' /etc/default/grub.d/50-cloudimg-settings.cfg}
|
42
43
|
UPDATE_GRUB = %q{sudo update-grub}
|
43
44
|
|
45
|
+
SSH_CONFIG = {
|
46
|
+
encryption: 'aes256-ctr',
|
47
|
+
hmac: 'hmac-sha2-512',
|
48
|
+
kex: 'ecdh-sha2-nistp521',
|
49
|
+
key_data: Chamber.env.ssh_private_key,
|
50
|
+
keys: [],
|
51
|
+
}
|
52
|
+
|
44
53
|
####################
|
45
54
|
# Helper Functions #
|
46
55
|
####################
|
47
56
|
|
48
|
-
Nothing = ->(*) { nil }
|
49
|
-
StateEnabled = ->(object) { 'Enabled' == object.state }
|
50
|
-
FirstIfOnly = ->(list) { list.first if (1 == list.size) }
|
51
|
-
Properties = ->(*properties) { ->(object) { properties.map(&Property).map { |ƒ| ƒ.(object) } } }
|
52
|
-
SelectFromMenu = ->(title, choices) { TTY::Prompt.new.select(title, filter: true) { |menu| choices.each { |choice| menu.choice(*choice) }}}
|
53
|
-
Property = ->(property, object) { object.public_send(property) if object.respond_to?(property) }.curry
|
54
|
-
RespondsTo = ->(method, object) { object.respond_to?(method) }.curry
|
55
|
-
SendTo = ->(object, *args) { object.public_send(*args) }.curry(2)
|
56
|
-
Bind = ->(name, value, object) { object.tap { SendTo.(object, "#{name}=", value) } }.curry
|
57
|
-
Bindable = ->(name, object) { RespondsTo.("#{name}=", object) }.curry
|
58
|
-
BindConstant = ->(namespace, name, value) { namespace.const_set name, value }.curry
|
57
|
+
Nothing = ->(*) { nil } # DONE - Nothing
|
58
|
+
StateEnabled = ->(object) { 'Enabled' == object.state } # HACK
|
59
|
+
FirstIfOnly = ->(list) { list.first if (1 == list.size) } # DONE - IfOnly
|
60
|
+
Properties = ->(*properties) { ->(object) { properties.map(&Property).map { |ƒ| ƒ.(object) } } } # HACK
|
61
|
+
SelectFromMenu = ->(title, choices) { TTY::Prompt.new.select(title, filter: true) { |menu| choices.each { |choice| menu.choice(*choice) }}} # DONE - SelectOne
|
62
|
+
Property = ->(property, object) { object.public_send(property) if object.respond_to?(property) }.curry # HACK
|
63
|
+
RespondsTo = ->(method, object) { object.respond_to?(method) }.curry # DONE - RespondTo
|
64
|
+
SendTo = ->(object, *args) { object.public_send(*args) }.curry(2) # DONE - SendTo
|
65
|
+
Bind = ->(name, value, object) { object.tap { SendTo.(object, "#{name}=", value) } }.curry # TODO
|
66
|
+
Bindable = ->(name, object) { RespondsTo.("#{name}=", object) }.curry # TODO
|
67
|
+
BindConstant = ->(namespace, name, value) { namespace.const_set name, value }.curry # DONE - SetConstantOf
|
59
68
|
BindConstants = ->(namespace, interfaces) { interfaces.map { |constant, function| BindConstant.(namespace, constant, function) } }.curry
|
60
69
|
Itself = ->(object) { object.itself }
|
61
70
|
If = ->(predicate, consequent, alternative = Nothing) {
|
@@ -496,6 +505,14 @@ AssociatePublicIP = ->(resource_group, network_interface, public_ip_address) {
|
|
496
505
|
network_interface.tap {
|
497
506
|
network_interface.ip_configurations[0].public_ipaddress = public_ip_address})}}
|
498
507
|
|
508
|
+
DownloadKubeConfig = ->(container_service, filename) {
|
509
|
+
WhileSpinning.('Download .kube/config') do
|
510
|
+
Net::SCP.start(container_service.master_profile.fqdn, Chamber.env.admin_username, SSH_CONFIG) do |session|
|
511
|
+
session.download! "/home/#{Chamber.env.admin_username}/.kube/config", filename
|
512
|
+
end
|
513
|
+
end
|
514
|
+
}
|
515
|
+
|
499
516
|
Purge = -> {
|
500
517
|
if resource_group = FindResourceGroup.(Chamber.env.identifier)
|
501
518
|
WhileSpinning.('Purge Resources') {
|
@@ -554,6 +571,8 @@ KubernetesAgents
|
|
554
571
|
.each(&EnableSwapAccounting.(resource_group))
|
555
572
|
.each(&RebootOnce.(resource_group))
|
556
573
|
|
574
|
+
DownloadKubeConfig.(container_service, File.join(Dir.pwd, 'kubeconfig.yml'))
|
575
|
+
|
557
576
|
def api(*args)
|
558
577
|
AzureAPI.call(*args)
|
559
578
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudstrap-azure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Olstrom
|
@@ -262,6 +262,26 @@ dependencies:
|
|
262
262
|
- - ">="
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: 3.1.0
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: net-scp
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - "~>"
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '1.2'
|
272
|
+
- - ">="
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: 1.2.0
|
275
|
+
type: :runtime
|
276
|
+
prerelease: false
|
277
|
+
version_requirements: !ruby/object:Gem::Requirement
|
278
|
+
requirements:
|
279
|
+
- - "~>"
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
version: '1.2'
|
282
|
+
- - ">="
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: 1.2.0
|
265
285
|
- !ruby/object:Gem::Dependency
|
266
286
|
name: pastel
|
267
287
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|