hako 2.8.0 → 2.9.0
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
- data/CHANGELOG.md +12 -0
- data/examples/hello-shared-alb.jsonnet +50 -0
- data/lib/hako/commander.rb +1 -0
- data/lib/hako/schedulers/ecs.rb +1 -1
- data/lib/hako/schedulers/ecs_elb_v2.rb +107 -86
- data/lib/hako/script.rb +2 -0
- data/lib/hako/version.rb +1 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8da04c31fe7625fb6d07dc567a54ecd07100fc84b434bd390137ab5801a41bdb
         | 
| 4 | 
            +
              data.tar.gz: aae515841f829f80332241e8187973a2f38fa79ae51ce217a92a2cac911970e2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9383d706cc18370a6878d3206ce526cd0c99ec93c636fbc0c15ab8bb34360537785f9e97a96a8298c85cdd595d18b7af351cf323c57b4a0371de30662f18bbea
         | 
| 7 | 
            +
              data.tar.gz: 12bb5b4c2ed31c2dfdf6453a2a188ab3f046833aa26f26072a273d17eac95b2aff72dfe92d130bffcc9d55396738d1c6defd7a024ea5ee23f3ea9ca0f87930f2
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,15 @@ | |
| 1 | 
            +
            # 2.9.0 (2019-04-03)
         | 
| 2 | 
            +
            ## New features
         | 
| 3 | 
            +
            - Add `remove_starting` method to Hako::Script which is called when `hako remove` starts
         | 
| 4 | 
            +
            - Support sharing load balancers
         | 
| 5 | 
            +
              - When `elb_v2` field has `load_balancer_name` but doesn't have `target_group_name`, hako will manage only the target group and doesn't touch the load balancer.
         | 
| 6 | 
            +
              - This is useful when one load balancer is shared with multiple target groups and some of them is deployed by hako.
         | 
| 7 | 
            +
              - See [examples/hello-shared-alb.jsonnet](examples/hello-shared-alb.jsonnet)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## Changes
         | 
| 10 | 
            +
            - When `load_balancer_name` is specified and `target_group_name` is not, the default `target_group_name` is changed from `load_balancer_name` to `hako-#{app_id}`.
         | 
| 11 | 
            +
              - If you use `load_balancer_name` field only, you must specify `target_group_name` field too.
         | 
| 12 | 
            +
             | 
| 1 13 | 
             
            # 2.8.0 (2019-03-17)
         | 
| 2 14 | 
             
            ## New features
         | 
| 3 15 | 
             
            - Add `deploy_failed` method to Hako::Script which is called when `hako deploy` fails
         | 
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            {
         | 
| 2 | 
            +
              scheduler: {
         | 
| 3 | 
            +
                type: 'ecs',
         | 
| 4 | 
            +
                region: 'ap-northeast-1',
         | 
| 5 | 
            +
                cluster: 'eagletmt',
         | 
| 6 | 
            +
                desired_count: 2,
         | 
| 7 | 
            +
                role: 'ecsServiceRole',
         | 
| 8 | 
            +
                elb_v2: {
         | 
| 9 | 
            +
                  // Use existing load balancer
         | 
| 10 | 
            +
                  load_balancer_name: 'hello-shared-alb',
         | 
| 11 | 
            +
                  // VPC id where the target group is located
         | 
| 12 | 
            +
                  vpc_id: 'vpc-WWWWWWWW',
         | 
| 13 | 
            +
                  // Health check path of the target group
         | 
| 14 | 
            +
                  health_check_path: '/site/sha',
         | 
| 15 | 
            +
                  target_group_attributes: {
         | 
| 16 | 
            +
                    // http://docs.aws.amazon.com/en_us/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes
         | 
| 17 | 
            +
                    'deregistration_delay.timeout_seconds': '20',
         | 
| 18 | 
            +
                  },
         | 
| 19 | 
            +
                },
         | 
| 20 | 
            +
              },
         | 
| 21 | 
            +
              app: {
         | 
| 22 | 
            +
                image: 'ryotarai/hello-sinatra',
         | 
| 23 | 
            +
                memory: 128,
         | 
| 24 | 
            +
                cpu: 256,
         | 
| 25 | 
            +
                env: {
         | 
| 26 | 
            +
                  PORT: '3000',
         | 
| 27 | 
            +
                },
         | 
| 28 | 
            +
                secrets: [{
         | 
| 29 | 
            +
                  name: 'MESSAGE',
         | 
| 30 | 
            +
                  value_from: 'arn:aws:ssm:ap-northeast-1:012345678901:parameter/hako/hello-shared-alb/secret-message',
         | 
| 31 | 
            +
                }],
         | 
| 32 | 
            +
              },
         | 
| 33 | 
            +
              sidecars: {
         | 
| 34 | 
            +
                front: {
         | 
| 35 | 
            +
                  image_tag: 'hako-nginx',
         | 
| 36 | 
            +
                  memory: 32,
         | 
| 37 | 
            +
                  cpu: 32,
         | 
| 38 | 
            +
                },
         | 
| 39 | 
            +
              },
         | 
| 40 | 
            +
              scripts: [
         | 
| 41 | 
            +
                (import 'front.libsonnet') + {
         | 
| 42 | 
            +
                  backend_port: 3000,
         | 
| 43 | 
            +
                  locations: {
         | 
| 44 | 
            +
                    '/': {
         | 
| 45 | 
            +
                      allow_only_from: ['10.0.0.0/24'],
         | 
| 46 | 
            +
                    },
         | 
| 47 | 
            +
                  },
         | 
| 48 | 
            +
                },
         | 
| 49 | 
            +
              ],
         | 
| 50 | 
            +
            }
         | 
    
        data/lib/hako/commander.rb
    CHANGED
    
    | @@ -70,6 +70,7 @@ module Hako | |
| 70 70 | 
             
                # @return [nil]
         | 
| 71 71 | 
             
                def remove(dry_run:)
         | 
| 72 72 | 
             
                  scripts = @app.definition.fetch('scripts', []).map { |config| load_script(config, dry_run: dry_run) }
         | 
| 73 | 
            +
                  scripts.each(&:remove_starting)
         | 
| 73 74 | 
             
                  load_scheduler(@app.definition['scheduler'], scripts, dry_run: dry_run).remove
         | 
| 74 75 | 
             
                  scripts.each(&:after_remove)
         | 
| 75 76 | 
             
                end
         | 
    
        data/lib/hako/schedulers/ecs.rb
    CHANGED
    
    | @@ -103,6 +103,7 @@ module Hako | |
| 103 103 | 
             
                      validation_error!('desired_count must be set')
         | 
| 104 104 | 
             
                    end
         | 
| 105 105 | 
             
                    front_port = determine_front_port
         | 
| 106 | 
            +
                    ecs_elb_client.find_or_create_load_balancer(front_port)
         | 
| 106 107 | 
             
                    @scripts.each { |script| script.deploy_started(containers, front_port) }
         | 
| 107 108 | 
             
                    definitions = create_definitions(containers)
         | 
| 108 109 |  | 
| @@ -886,7 +887,6 @@ module Hako | |
| 886 887 | 
             
                      params[:desired_count] = 0
         | 
| 887 888 | 
             
                    end
         | 
| 888 889 | 
             
                    if ecs_elb_client.find_or_create_load_balancer(front_port)
         | 
| 889 | 
            -
                      ecs_elb_client.modify_attributes
         | 
| 890 890 | 
             
                      params[:load_balancers] = [ecs_elb_client.load_balancer_params_for_service]
         | 
| 891 891 | 
             
                    end
         | 
| 892 892 | 
             
                    if @service_discovery
         | 
| @@ -51,7 +51,7 @@ module Hako | |
| 51 51 | 
             
                    end
         | 
| 52 52 |  | 
| 53 53 | 
             
                    load_balancer = describe_load_balancer
         | 
| 54 | 
            -
                     | 
| 54 | 
            +
                    if !load_balancer_given? && !load_balancer
         | 
| 55 55 | 
             
                      tags = @elb_v2_config.fetch('tags', {}).map { |k, v| { key: k, value: v.to_s } }
         | 
| 56 56 |  | 
| 57 57 | 
             
                      elb_type = @elb_v2_config.fetch('type', nil)
         | 
| @@ -78,7 +78,7 @@ module Hako | |
| 78 78 | 
             
                    end
         | 
| 79 79 |  | 
| 80 80 | 
             
                    target_group = describe_target_group
         | 
| 81 | 
            -
                     | 
| 81 | 
            +
                    if !target_group_given? && !target_group
         | 
| 82 82 | 
             
                      elb_type = @elb_v2_config.fetch('type', nil)
         | 
| 83 83 | 
             
                      target_group = if elb_type == 'network'
         | 
| 84 84 | 
             
                                       elb_client.create_target_group(
         | 
| @@ -102,23 +102,25 @@ module Hako | |
| 102 102 | 
             
                      Hako.logger.info "Created target group #{target_group.target_group_arn}"
         | 
| 103 103 | 
             
                    end
         | 
| 104 104 |  | 
| 105 | 
            -
                     | 
| 106 | 
            -
             | 
| 107 | 
            -
                       | 
| 108 | 
            -
                         | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 111 | 
            -
             | 
| 112 | 
            -
             | 
| 113 | 
            -
             | 
| 114 | 
            -
             | 
| 115 | 
            -
             | 
| 116 | 
            -
                         | 
| 117 | 
            -
             | 
| 105 | 
            +
                    unless load_balancer_given?
         | 
| 106 | 
            +
                      listener_ports = elb_client.describe_listeners(load_balancer_arn: load_balancer.load_balancer_arn).flat_map { |page| page.listeners.map(&:port) }
         | 
| 107 | 
            +
                      @elb_v2_config.fetch('listeners').each do |l|
         | 
| 108 | 
            +
                        params = {
         | 
| 109 | 
            +
                          load_balancer_arn: load_balancer.load_balancer_arn,
         | 
| 110 | 
            +
                          protocol: l.fetch('protocol'),
         | 
| 111 | 
            +
                          port: l.fetch('port'),
         | 
| 112 | 
            +
                          ssl_policy: l['ssl_policy'],
         | 
| 113 | 
            +
                          default_actions: [{ type: 'forward', target_group_arn: target_group.target_group_arn }],
         | 
| 114 | 
            +
                        }
         | 
| 115 | 
            +
                        certificate_arn = l.fetch('certificate_arn', nil)
         | 
| 116 | 
            +
                        if certificate_arn
         | 
| 117 | 
            +
                          params[:certificates] = [{ certificate_arn: certificate_arn }]
         | 
| 118 | 
            +
                        end
         | 
| 118 119 |  | 
| 119 | 
            -
             | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 120 | 
            +
                        unless listener_ports.include?(params[:port])
         | 
| 121 | 
            +
                          listener = elb_client.create_listener(params).listeners[0]
         | 
| 122 | 
            +
                          Hako.logger.info("Created listener #{listener.listener_arn}")
         | 
| 123 | 
            +
                        end
         | 
| 122 124 | 
             
                      end
         | 
| 123 125 | 
             
                    end
         | 
| 124 126 |  | 
| @@ -131,58 +133,63 @@ module Hako | |
| 131 133 | 
             
                      return nil
         | 
| 132 134 | 
             
                    end
         | 
| 133 135 |  | 
| 134 | 
            -
                     | 
| 135 | 
            -
             | 
| 136 | 
            -
             | 
| 137 | 
            -
                      if  | 
| 138 | 
            -
                         | 
| 139 | 
            -
             | 
| 140 | 
            -
                         | 
| 141 | 
            -
             | 
| 136 | 
            +
                    unless load_balancer_given?
         | 
| 137 | 
            +
                      load_balancer = describe_load_balancer
         | 
| 138 | 
            +
                      subnets = @elb_v2_config.fetch('subnets').sort
         | 
| 139 | 
            +
                      if load_balancer && subnets != load_balancer.availability_zones.map(&:subnet_id).sort
         | 
| 140 | 
            +
                        if @dry_run
         | 
| 141 | 
            +
                          Hako.logger.info("elb_client.set_subnets(load_balancer_arn: #{load_balancer.load_balancer_arn}, subnets: #{subnets}) (dry-run)")
         | 
| 142 | 
            +
                        else
         | 
| 143 | 
            +
                          Hako.logger.info("Updating ELBv2 subnets to #{subnets}")
         | 
| 144 | 
            +
                          elb_client.set_subnets(load_balancer_arn: load_balancer.load_balancer_arn, subnets: subnets)
         | 
| 145 | 
            +
                        end
         | 
| 142 146 | 
             
                      end
         | 
| 143 | 
            -
                    end
         | 
| 144 147 |  | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
             | 
| 148 | 
            +
                      new_listeners = @elb_v2_config.fetch('listeners')
         | 
| 149 | 
            +
                      if load_balancer
         | 
| 150 | 
            +
                        current_listeners = elb_client.describe_listeners(load_balancer_arn: load_balancer.load_balancer_arn).listeners
         | 
| 151 | 
            +
                        new_listeners.each do |new_listener|
         | 
| 152 | 
            +
                          current_listener = current_listeners.find { |l| l.port == new_listener['port'] }
         | 
| 153 | 
            +
                          if current_listener && new_listener['ssl_policy'] && new_listener['ssl_policy'] != current_listener.ssl_policy
         | 
| 154 | 
            +
                            if @dry_run
         | 
| 155 | 
            +
                              Hako.logger.info("elb_client.modify_listener(listener_arn: #{current_listener.listener_arn}, ssl_policy: #{new_listener['ssl_policy']}) (dry-run)")
         | 
| 156 | 
            +
                            else
         | 
| 157 | 
            +
                              Hako.logger.info("Updating ELBv2 listener #{new_listener['port']} ssl_policy to #{new_listener['ssl_policy']}")
         | 
| 158 | 
            +
                              elb_client.modify_listener(listener_arn: current_listener.listener_arn, ssl_policy: new_listener['ssl_policy'])
         | 
| 159 | 
            +
                            end
         | 
| 156 160 | 
             
                          end
         | 
| 157 161 | 
             
                        end
         | 
| 158 162 | 
             
                      end
         | 
| 159 | 
            -
                    end
         | 
| 160 163 |  | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 164 | 
            -
             | 
| 165 | 
            -
             | 
| 164 | 
            +
                      if @elb_v2_config.key?('load_balancer_attributes')
         | 
| 165 | 
            +
                        attributes = @elb_v2_config.fetch('load_balancer_attributes').map { |key, value| { key: key, value: value } }
         | 
| 166 | 
            +
                        if @dry_run
         | 
| 167 | 
            +
                          if load_balancer
         | 
| 168 | 
            +
                            Hako.logger.info("elb_client.modify_load_balancer_attributes(load_balancer_arn: #{load_balancer.load_balancer_arn}, attributes: #{attributes.inspect}) (dry-run)")
         | 
| 169 | 
            +
                          else
         | 
| 170 | 
            +
                            Hako.logger.info("elb_client.modify_load_balancer_attributes(load_balancer_arn: unknown, attributes: #{attributes.inspect}) (dry-run)")
         | 
| 171 | 
            +
                          end
         | 
| 166 172 | 
             
                        else
         | 
| 167 | 
            -
                          Hako.logger.info(" | 
| 173 | 
            +
                          Hako.logger.info("Updating ELBv2 attributes to #{attributes.inspect}")
         | 
| 174 | 
            +
                          elb_client.modify_load_balancer_attributes(load_balancer_arn: load_balancer.load_balancer_arn, attributes: attributes)
         | 
| 168 175 | 
             
                        end
         | 
| 169 | 
            -
                      else
         | 
| 170 | 
            -
                        Hako.logger.info("Updating ELBv2 attributes to #{attributes.inspect}")
         | 
| 171 | 
            -
                        elb_client.modify_load_balancer_attributes(load_balancer_arn: load_balancer.load_balancer_arn, attributes: attributes)
         | 
| 172 176 | 
             
                      end
         | 
| 173 177 | 
             
                    end
         | 
| 174 | 
            -
             | 
| 175 | 
            -
             | 
| 176 | 
            -
                       | 
| 177 | 
            -
             | 
| 178 | 
            -
                         | 
| 179 | 
            -
             | 
| 178 | 
            +
             | 
| 179 | 
            +
                    unless target_group_given?
         | 
| 180 | 
            +
                      if @elb_v2_config.key?('target_group_attributes')
         | 
| 181 | 
            +
                        target_group = describe_target_group
         | 
| 182 | 
            +
                        attributes = @elb_v2_config.fetch('target_group_attributes').map { |key, value| { key: key, value: value } }
         | 
| 183 | 
            +
                        if @dry_run
         | 
| 184 | 
            +
                          if target_group
         | 
| 185 | 
            +
                            Hako.logger.info("elb_client.modify_target_group_attributes(target_group_arn: #{target_group.target_group_arn}, attributes: #{attributes.inspect}) (dry-run)")
         | 
| 186 | 
            +
                          else
         | 
| 187 | 
            +
                            Hako.logger.info("elb_client.modify_target_group_attributes(target_group_arn: unknown, attributes: #{attributes.inspect}) (dry-run)")
         | 
| 188 | 
            +
                          end
         | 
| 180 189 | 
             
                        else
         | 
| 181 | 
            -
                          Hako.logger.info(" | 
| 190 | 
            +
                          Hako.logger.info("Updating target group attributes to #{attributes.inspect}")
         | 
| 191 | 
            +
                          elb_client.modify_target_group_attributes(target_group_arn: target_group.target_group_arn, attributes: attributes)
         | 
| 182 192 | 
             
                        end
         | 
| 183 | 
            -
                      else
         | 
| 184 | 
            -
                        Hako.logger.info("Updating target group attributes to #{attributes.inspect}")
         | 
| 185 | 
            -
                        elb_client.modify_target_group_attributes(target_group_arn: target_group.target_group_arn, attributes: attributes)
         | 
| 186 193 | 
             
                      end
         | 
| 187 194 | 
             
                    end
         | 
| 188 195 | 
             
                    nil
         | 
| @@ -194,39 +201,43 @@ module Hako | |
| 194 201 | 
             
                      return false
         | 
| 195 202 | 
             
                    end
         | 
| 196 203 |  | 
| 197 | 
            -
                     | 
| 198 | 
            -
             | 
| 199 | 
            -
                      if  | 
| 200 | 
            -
                         | 
| 204 | 
            +
                    unless load_balancer_given?
         | 
| 205 | 
            +
                      load_balancer = describe_load_balancer
         | 
| 206 | 
            +
                      if load_balancer
         | 
| 207 | 
            +
                        if @dry_run
         | 
| 208 | 
            +
                          Hako.logger.info("elb_client.delete_load_balancer(load_balancer_arn: #{load_balancer.load_balancer_arn})")
         | 
| 209 | 
            +
                        else
         | 
| 210 | 
            +
                          elb_client.delete_load_balancer(load_balancer_arn: load_balancer.load_balancer_arn)
         | 
| 211 | 
            +
                          Hako.logger.info "Deleted ELBv2 #{load_balancer.load_balancer_arn}"
         | 
| 212 | 
            +
                        end
         | 
| 201 213 | 
             
                      else
         | 
| 202 | 
            -
                         | 
| 203 | 
            -
                        Hako.logger.info "Deleted ELBv2 #{load_balancer.load_balancer_arn}"
         | 
| 214 | 
            +
                        Hako.logger.info "ELBv2 #{elb_name} doesn't exist"
         | 
| 204 215 | 
             
                      end
         | 
| 205 | 
            -
                    else
         | 
| 206 | 
            -
                      Hako.logger.info "ELBv2 #{elb_name} doesn't exist"
         | 
| 207 216 | 
             
                    end
         | 
| 208 217 |  | 
| 209 | 
            -
                     | 
| 210 | 
            -
             | 
| 211 | 
            -
                      if  | 
| 212 | 
            -
                         | 
| 213 | 
            -
             | 
| 214 | 
            -
                         | 
| 215 | 
            -
             | 
| 216 | 
            -
                           | 
| 217 | 
            -
                             | 
| 218 | 
            -
             | 
| 219 | 
            -
             | 
| 220 | 
            -
             | 
| 221 | 
            -
                             | 
| 218 | 
            +
                    unless target_group_given?
         | 
| 219 | 
            +
                      target_group = describe_target_group
         | 
| 220 | 
            +
                      if target_group
         | 
| 221 | 
            +
                        if @dry_run
         | 
| 222 | 
            +
                          Hako.logger.info("elb_client.delete_target_group(target_group_arn: #{target_group.target_group_arn})")
         | 
| 223 | 
            +
                        else
         | 
| 224 | 
            +
                          deleted = false
         | 
| 225 | 
            +
                          30.times do
         | 
| 226 | 
            +
                            begin
         | 
| 227 | 
            +
                              elb_client.delete_target_group(target_group_arn: target_group.target_group_arn)
         | 
| 228 | 
            +
                              deleted = true
         | 
| 229 | 
            +
                              break
         | 
| 230 | 
            +
                            rescue Aws::ElasticLoadBalancingV2::Errors::ResourceInUse => e
         | 
| 231 | 
            +
                              Hako.logger.warn("#{e.class}: #{e.message}")
         | 
| 232 | 
            +
                            end
         | 
| 233 | 
            +
                            sleep 1
         | 
| 234 | 
            +
                          end
         | 
| 235 | 
            +
                          unless deleted
         | 
| 236 | 
            +
                            raise Error.new("Cannot delete target group #{target_group.target_group_arn}")
         | 
| 222 237 | 
             
                          end
         | 
| 223 | 
            -
                          sleep 1
         | 
| 224 | 
            -
                        end
         | 
| 225 | 
            -
                        unless deleted
         | 
| 226 | 
            -
                          raise Error.new("Cannot delete target group #{target_group.target_group_arn}")
         | 
| 227 | 
            -
                        end
         | 
| 228 238 |  | 
| 229 | 
            -
             | 
| 239 | 
            +
                          Hako.logger.info "Deleted target group #{target_group.target_group_arn}"
         | 
| 240 | 
            +
                        end
         | 
| 230 241 | 
             
                      end
         | 
| 231 242 | 
             
                    end
         | 
| 232 243 | 
             
                  end
         | 
| @@ -236,9 +247,19 @@ module Hako | |
| 236 247 | 
             
                    @elb_v2_config.fetch('load_balancer_name', "hako-#{@app_id}")
         | 
| 237 248 | 
             
                  end
         | 
| 238 249 |  | 
| 250 | 
            +
                  # @return [Boolean]
         | 
| 251 | 
            +
                  def load_balancer_given?
         | 
| 252 | 
            +
                    @elb_v2_config.key?('load_balancer_name')
         | 
| 253 | 
            +
                  end
         | 
| 254 | 
            +
             | 
| 239 255 | 
             
                  # @return [String]
         | 
| 240 256 | 
             
                  def target_group_name
         | 
| 241 | 
            -
                    @elb_v2_config.fetch('target_group_name',  | 
| 257 | 
            +
                    @elb_v2_config.fetch('target_group_name', "hako-#{@app_id}")
         | 
| 258 | 
            +
                  end
         | 
| 259 | 
            +
             | 
| 260 | 
            +
                  # @return [Boolean]
         | 
| 261 | 
            +
                  def target_group_given?
         | 
| 262 | 
            +
                    @elb_v2_config.key?('target_group_name')
         | 
| 242 263 | 
             
                  end
         | 
| 243 264 |  | 
| 244 265 | 
             
                  # @return [Hash]
         | 
    
        data/lib/hako/script.rb
    CHANGED
    
    
    
        data/lib/hako/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: hako
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.9.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Kohei Suzuki
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019-03 | 
| 11 | 
            +
            date: 2019-04-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: aws-sdk-applicationautoscaling
         | 
| @@ -327,6 +327,7 @@ files: | |
| 327 327 | 
             
            - examples/hello-nofront.jsonnet
         | 
| 328 328 | 
             
            - examples/hello-privileged-app.jsonnet
         | 
| 329 329 | 
             
            - examples/hello-service-discovery.jsonnet
         | 
| 330 | 
            +
            - examples/hello-shared-alb.jsonnet
         | 
| 330 331 | 
             
            - examples/hello.env
         | 
| 331 332 | 
             
            - examples/hello.jsonnet
         | 
| 332 333 | 
             
            - examples/put-ecs-container-status-to-s3/index.js
         |