hako 0.23.0 → 0.24.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/.travis.yml +3 -1
- data/README.md +1 -1
- data/lib/hako/schedulers/ecs.rb +54 -1
- data/lib/hako/schedulers/ecs_elb.rb +14 -0
- data/lib/hako/schedulers/ecs_elb_v2.rb +5 -0
- data/lib/hako/scripts/nginx_front.rb +1 -1
- data/lib/hako/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef29ede6ffaf4f044b5b8af2d45e0d737faacd9b
|
4
|
+
data.tar.gz: ac44a0612a7188db235ea9dffd9c8e54f93616f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4ddcc37c95d87a0620240b00ebb90822c1f2115233aaf24b3afc929fb07f0e3e9868b64f8e5f241e44ba888ef6954e52fef20ba0f15ce4daa18ee47f1b28234
|
7
|
+
data.tar.gz: 5f11ebc2a746ea818cdb5fb8899ecd53ffaef6913b8acf3e95e2b215b96e841425a66fc7638ac8e3651b1f149000dd6540bf5f28e168c590ac5322df9c47939d
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -47,7 +47,7 @@ Events:
|
|
47
47
|
2015-10-05 13:35:53 +0900: (service hello) has reached a steady state.
|
48
48
|
2015-10-05 13:35:14 +0900: (service hello) stopped 1 running tasks.
|
49
49
|
|
50
|
-
% hako rollback examples/hello.yml
|
50
|
+
% hako rollback examples/hello.yml
|
51
51
|
I, [2016-05-02T13:07:12.679926 #10961] INFO -- : Current task defintion is hello:29. Rolling back to arn:aws:ecs:ap-northeast-1:XXXXXXXXXXXX:task-definition/hello:28
|
52
52
|
I, [2016-05-02T13:07:12.959116 #10961] INFO -- : Updated service: arn:aws:ecs:ap-northeast-1:XXXXXXXXXXXX:service/hello
|
53
53
|
I, [2016-05-02T13:08:27.280686 #10961] INFO -- : Deployment completed
|
data/lib/hako/schedulers/ecs.rb
CHANGED
@@ -58,7 +58,7 @@ module Hako
|
|
58
58
|
|
59
59
|
if @dry_run
|
60
60
|
definitions.each do |d|
|
61
|
-
|
61
|
+
print_definition_in_cli_format(d)
|
62
62
|
end
|
63
63
|
if @autoscaling
|
64
64
|
@autoscaling.apply(Aws::ECS::Types::Service.new(cluster_arn: @cluster, service_name: @app_id))
|
@@ -617,6 +617,7 @@ module Hako
|
|
617
617
|
deployment_configuration: @deployment_configuration,
|
618
618
|
}
|
619
619
|
if ecs_elb_client.find_or_create_load_balancer(front_port)
|
620
|
+
ecs_elb_client.modify_attributes
|
620
621
|
params[:load_balancers] = [
|
621
622
|
@ecs_elb_client.load_balancer_params_for_service.merge(container_name: 'front', container_port: 80),
|
622
623
|
]
|
@@ -762,6 +763,58 @@ module Hako
|
|
762
763
|
required_cpu < cpu && required_memory < memory
|
763
764
|
end
|
764
765
|
end
|
766
|
+
|
767
|
+
# @param [Hash] definition
|
768
|
+
# @return [nil]
|
769
|
+
def print_definition_in_cli_format(definition)
|
770
|
+
cmd = %w[docker run]
|
771
|
+
cmd << '--name' << definition.fetch(:name)
|
772
|
+
cmd << '--cpu-shares' << definition.fetch(:cpu)
|
773
|
+
cmd << '--memory' << definition.fetch(:memory)
|
774
|
+
definition.fetch(:links).each do |link|
|
775
|
+
cmd << '--link' << link
|
776
|
+
end
|
777
|
+
definition.fetch(:port_mappings).each do |port_mapping|
|
778
|
+
cmd << '--publish' << "#{port_mapping.fetch(:host_port)}:#{port_mapping.fetch(:container_port)}"
|
779
|
+
end
|
780
|
+
definition.fetch(:docker_labels).each do |key, val|
|
781
|
+
if key != 'cc.wanko.hako.version'
|
782
|
+
cmd << '--label' << "#{key}=#{val}"
|
783
|
+
end
|
784
|
+
end
|
785
|
+
definition.fetch(:mount_points).each do |mount_point|
|
786
|
+
source_volume = mount_point.fetch(:source_volume)
|
787
|
+
v = @volumes[source_volume]
|
788
|
+
if v
|
789
|
+
cmd << '--volume' << "#{v.fetch('source_path')}:#{mount_point.fetch(:container_path)}#{mount_point[:read_only] ? ':ro' : ''}"
|
790
|
+
else
|
791
|
+
raise "Could not find volume #{source_volume}"
|
792
|
+
end
|
793
|
+
end
|
794
|
+
if definition[:privileged]
|
795
|
+
cmd << '--privileged'
|
796
|
+
end
|
797
|
+
definition.fetch(:volumes_from).each do |volumes_from|
|
798
|
+
p volumes_from
|
799
|
+
end
|
800
|
+
if definition[:user]
|
801
|
+
cmd << '--user' << definition[:user]
|
802
|
+
end
|
803
|
+
|
804
|
+
cmd << "\\\n "
|
805
|
+
definition.fetch(:environment).each do |env|
|
806
|
+
cmd << '--env' << "#{env.fetch(:name)}=#{env.fetch(:value)}"
|
807
|
+
cmd << "\\\n "
|
808
|
+
end
|
809
|
+
|
810
|
+
cmd << definition.fetch(:image)
|
811
|
+
if definition[:command]
|
812
|
+
cmd << "\\\n "
|
813
|
+
cmd += definition[:command]
|
814
|
+
end
|
815
|
+
puts cmd.join(' ')
|
816
|
+
nil
|
817
|
+
end
|
765
818
|
end
|
766
819
|
end
|
767
820
|
end
|
@@ -61,6 +61,20 @@ module Hako
|
|
61
61
|
true
|
62
62
|
end
|
63
63
|
|
64
|
+
# @return [Types::ModifyLoadBalancerAttributesOutput, nil]
|
65
|
+
def modify_attributes
|
66
|
+
if @elb_config.key?('cross_zone_load_balancing')
|
67
|
+
@elb.modify_load_balancer_attributes(
|
68
|
+
load_balancer_name: name,
|
69
|
+
load_balancer_attributes: {
|
70
|
+
cross_zone_load_balancing: {
|
71
|
+
enabled: @elb_config['cross_zone_load_balancing'],
|
72
|
+
}
|
73
|
+
}
|
74
|
+
)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
64
78
|
# @return [nil]
|
65
79
|
def destroy
|
66
80
|
if exist?
|
@@ -77,7 +77,7 @@ module Hako
|
|
77
77
|
# @return [Hash]
|
78
78
|
def upload_config(front_conf)
|
79
79
|
if @dry_run
|
80
|
-
|
80
|
+
puts "#{self.class} will upload this configuration:\n#{front_conf}"
|
81
81
|
else
|
82
82
|
s3_client.put_object(
|
83
83
|
body: front_conf,
|
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: 0.
|
4
|
+
version: 0.24.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:
|
11
|
+
date: 2017-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
184
|
version: '0'
|
185
185
|
requirements: []
|
186
186
|
rubyforge_project:
|
187
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.6.10
|
188
188
|
signing_key:
|
189
189
|
specification_version: 4
|
190
190
|
summary: Deploy Docker container
|