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 
     |