configgin 0.16.0 → 0.16.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43e19eea72947ae70b880640570aea9d8cca1ee0
4
- data.tar.gz: cb47f254ee03495870310f5369d7b19adb0df853
3
+ metadata.gz: 9d596b083e1788305e70be2771f71399ce3e7927
4
+ data.tar.gz: dae49531f6818af2faee3c85218707214898f12c
5
5
  SHA512:
6
- metadata.gz: 66e6ec7d3c5c40e9caa6fe64c91bb588d0ed18912433c811e45f1d9ffc13667db6ba9bb9e5aac86440740701d3f1849105b58108caf49d62f9b1671be92c9174
7
- data.tar.gz: a53834220ffa572251ad3ed24674eb2620101720a3feadc7410d406574ded1ddf18ac1e94cf41e584ba82783c54ce76cec5fc1c1b2505d39583b25d180113b30
6
+ metadata.gz: 262a7bba107c1b8328a0e9e110a6d7813c896e759b884f1479b5875955d5786a489b8591b31f19f717256e7f6ef957fe91f1d230d91941ab9069ef373540e0c4
7
+ data.tar.gz: f11ec13d8a7c7d9f5ebb4085906a8eba1b96cc66a4a7652d36a9c978060f9f19eae03c2d0c34141b3a5bb1049409ff8ebee1ed02d9392802afcb000d7daa211d
@@ -65,12 +65,13 @@ job_configs.each do |job, job_config|
65
65
  jobs[job] = Job.new(bosh_spec, kube_namespace, kube_client, kube_client_stateful_set)
66
66
  end
67
67
 
68
- exported_properties = Hash[jobs.map { |name, job| [name, job.exported_properties] }]
69
- kube_client.patch_pod(
70
- ENV['HOSTNAME'],
71
- { metadata: { annotations: { :'skiff-exported-properties' => exported_properties.to_json } } },
72
- kube_namespace
73
- )
68
+ jobs.each do |name, job|
69
+ kube_client.patch_pod(
70
+ ENV['HOSTNAME'],
71
+ { metadata: { annotations: { :"skiff-exported-properties-#{name}" => job.exported_properties.to_json } } },
72
+ kube_namespace
73
+ )
74
+ end
74
75
 
75
76
  jobs.each do |job_name, job|
76
77
  dns_encoder = KubeDNSEncoder.new(job.spec['links'])
@@ -1,3 +1,3 @@
1
1
  module Configgin
2
- VERSION = '0.16.0'.freeze
2
+ VERSION = '0.16.1'.freeze
3
3
  end
@@ -37,7 +37,7 @@ class KubeLinkSpecs
37
37
  @client.get_pods(namespace: @namespace, label_selector: "skiff-role-name=#{role_name}")
38
38
  end
39
39
 
40
- def get_pods_for_role(role_name, wait_for_ip)
40
+ def get_pods_for_role(role_name, wait_for_ip, job)
41
41
  loop do
42
42
  # The 30.times loop exists to print out status messages
43
43
  30.times do
@@ -46,30 +46,34 @@ class KubeLinkSpecs
46
46
  if wait_for_ip
47
47
  # Wait until all pods have IP addresses and properties
48
48
  break unless pods.all? { |pod| pod.status.podIP }
49
- break unless pods.all? { |pod| pod.metadata.annotations['skiff-exported-properties'] }
49
+ break unless pods.all? { |pod| pod.metadata.annotations["skiff-exported-properties-#{job}"] }
50
50
  else
51
51
  # We just need one pod with exported properties
52
52
  pods.select! { |pod| pod.status.podIP }
53
- pods.select! { |pod| pod.metadata.annotations['skiff-exported-properties'] }
53
+ pods.select! { |pod| pod.metadata.annotations["skiff-exported-properties-#{job}"] }
54
54
  end
55
55
  return pods unless pods.empty?
56
56
  end
57
57
  sleep 1
58
58
  end
59
- $stdout.puts "Waiting for pods for role #{role_name} (at #{Time.now})..."
59
+ $stdout.puts "Waiting for pods for role #{role_name} and provider job #{job} (at #{Time.now})..."
60
60
  end
61
61
  end
62
62
 
63
+ def get_exported_properties(pod, job)
64
+ exported_properties = pod.metadata.annotations["skiff-exported-properties-#{job}"]
65
+ exported_properties.nil? ? {} : JSON.parse(exported_properties)
66
+ end
67
+
63
68
  def get_pod_instance_info(pod, job, pods_per_image)
64
69
  index = pod_index(pod.metadata.name)
65
- properties = JSON.parse(pod.metadata.annotations['skiff-exported-properties'])
66
70
  {
67
71
  'name' => pod.metadata.name,
68
72
  'index' => index,
69
73
  'id' => pod.metadata.name,
70
74
  'az' => pod.metadata.annotations['failure-domain.beta.kubernetes.io/zone'] || 'az0',
71
75
  'address' => pod.status.podIP,
72
- 'properties' => properties.fetch(job, {}),
76
+ 'properties' => get_exported_properties(pod, job),
73
77
  'bootstrap' => pods_per_image[pod.metadata.uid] < 2
74
78
  }
75
79
  end
@@ -92,23 +96,21 @@ class KubeLinkSpecs
92
96
 
93
97
  def get_svc_instance_info(role_name, job)
94
98
  svc = @client.get_service(role_name, @namespace)
95
- pod = get_pods_for_role(role_name, false).first
96
- properties = JSON.parse(pod.metadata.annotations['skiff-exported-properties'])
99
+ pod = get_pods_for_role(role_name, false, job).first
97
100
  {
98
101
  'name' => svc.metadata.name,
99
102
  'index' => 0, # Completely made up index; there is only ever one service
100
103
  'id' => svc.metadata.name,
101
104
  'az' => pod.metadata.annotations['failure-domain.beta.kubernetes.io/zone'] || 'az0',
102
105
  'address' => svc.spec.clusterIP,
103
- 'properties' => properties.fetch(job, {}),
106
+ 'properties' => get_exported_properties(pod, job),
104
107
  'bootstrap' => true
105
108
  }
106
109
  end
107
110
 
108
111
  def get_statefulset_instance_info(role_name, job)
109
112
  ss = @client_stateful_set.get_stateful_set(role_name, @namespace)
110
- pod = get_pods_for_role(role_name, false).first
111
- properties = JSON.parse(pod.metadata.annotations['skiff-exported-properties'])
113
+ pod = get_pods_for_role(role_name, false, job).first
112
114
 
113
115
  Array.new(ss.spec.replicas) do |i|
114
116
  {
@@ -117,7 +119,7 @@ class KubeLinkSpecs
117
119
  'id' => ss.metadata.name,
118
120
  'az' => pod.metadata.annotations['failure-domain.beta.kubernetes.io/zone'] || 'az0',
119
121
  'address' => "#{ss.metadata.name}-#{i}.#{ss.spec.serviceName}",
120
- 'properties' => properties.fetch(job, {}),
122
+ 'properties' => get_exported_properties(pod, job),
121
123
  'bootstrap' => i.zero?
122
124
  }
123
125
  end
@@ -142,7 +144,7 @@ class KubeLinkSpecs
142
144
 
143
145
  if provider['role'] == this_name
144
146
  $stderr.puts "Resolving link #{key} via self provider #{provider}"
145
- pods = get_pods_for_role(provider['role'], true)
147
+ pods = get_pods_for_role(provider['role'], true, provider['job'])
146
148
  pods_per_image = get_pods_per_image(pods)
147
149
  instances = pods.map { |p| get_pod_instance_info(p, provider['job'], pods_per_image) }
148
150
  elsif service? provider['role']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configgin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.16.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - SUSE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-13 00:00:00.000000000 Z
11
+ date: 2018-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
177
  version: '0'
178
178
  requirements: []
179
179
  rubyforge_project:
180
- rubygems_version: 2.6.13
180
+ rubygems_version: 2.6.10
181
181
  signing_key:
182
182
  specification_version: 4
183
183
  summary: A simple cli app in Ruby to generate configurations using BOSH ERB templates