teamd-installer 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8cd920c171bede1f620e2c50bb26bdda1fd0b466
4
- data.tar.gz: d1fce94e865befdedad145304a6f2271d175cf00
3
+ metadata.gz: ad4fdd931333d11aeecfbb8b21f010da15b54bbc
4
+ data.tar.gz: e51a1b288632021afeec890f22f77e6cfa120fed
5
5
  SHA512:
6
- metadata.gz: ba90d8f7e64d1850965d7b854e8fa2f3556c98614538dcc005941650951969fccd7fecb5ab0ab5feb1fdf035f7ea929f6b76681d449453bf1f2d3affe0d31df9
7
- data.tar.gz: 483a66985b78aa7ab3e3b3e45953fcb072677db007faf5b582b9b49cfd70d008a9ee974b86e72e3ce8a6adbac2659d3eebaadaf185eb26bbb1eda535ff0cb3ba
6
+ metadata.gz: 4c2e3166245028613aee61f7290a8d73e0a55a649db6288ca6ac6ef33cb8b57b9f77e650c32e9acc8b13a448ac33d7ddcd48f479d22bf3ae05e293a3025c52ec
7
+ data.tar.gz: 284dd02fee1356f31f6df916ef11d5875ed729ce0b161e57761f6393678019f9b35ced80ead1cb5989639b732b18ed1a163e4ff36602099fca1b4910cc16b424
@@ -21,13 +21,14 @@ module Teamd
21
21
  @public_ipv4 ||= Interfaces.public_ipv4
22
22
  @private_ipv4 ||= Interfaces.internal_ipv4 except: ["127.0.0.1",@public_ipv4]
23
23
  @config = TemplateConfig.new
24
- @config.etcd_discovery_id = @token
25
- @config.public_ipv4 = @public_ipv4
26
- @config.private_ipv4 = @private_ipv4
27
- @config.use_flannel = true
28
- @config.docker_tcp = true
29
- @config.sshd_port = 2220
30
- @config = CloudConfig.new @config.to_h
24
+ @config.etcd_discovery_id = @token
25
+ @config.public_ipv4 = @public_ipv4
26
+ @config.private_ipv4 = @private_ipv4
27
+ @config.use_flannel = true
28
+ @config.docker_tcp = true
29
+ @config.sshd_port = 2220
30
+ @config.dynamic_environment = true
31
+ @config = CloudConfig.new @config.to_h
31
32
  File.write(options[:cloud_config],@config.to_yaml)
32
33
  @installer = Script.download options[:installer_url]
33
34
  @disk,@major,@minor = Disk.default
@@ -3,7 +3,9 @@ require "securerandom"
3
3
  module Teamd
4
4
  module Installer
5
5
  class TemplateConfig
6
- attr_accessor :etcd_discovery_id, :public_ipv4, :private_ipv4, :public_ipv6, :private_ipv6, :use_flannel, :docker_tcp, :sshd_port
6
+ attr_accessor :etcd_discovery_id, :public_ipv4, :private_ipv4,
7
+ :public_ipv6, :private_ipv6, :use_flannel, :docker_tcp,
8
+ :sshd_port, :dynamic_environment
7
9
  def to_h
8
10
  output = {
9
11
  "coreos" => {
@@ -41,15 +43,23 @@ module Teamd
41
43
  "content" => "[Socket]\nListenStream=#{@sshd_port}\nAccept=yes",
42
44
  }
43
45
  end
44
- if @public_ipv4 or @private_ipv4
45
- content = ""
46
- content << "COREOS_PUBLIC_IPV4=#{@public_ipv4}\n" if @public_ipv4
47
- content << "COREOS_PRIVATE_IPV4=#{@private_ipv4}\n" if @private_ipv4
48
- output["write_files"] << {
49
- "path" => "/etc/environment",
50
- "permissions" => "0444",
51
- "owner" => "root",
52
- "content" => content
46
+ unless @dynamic_environment
47
+ if @public_ipv4 or @private_ipv4
48
+ content = ""
49
+ content << "COREOS_PUBLIC_IPV4=#{@public_ipv4}\n" if @public_ipv4
50
+ content << "COREOS_PRIVATE_IPV4=#{@private_ipv4}\n" if @private_ipv4
51
+ output["write_files"] << {
52
+ "path" => "/etc/environment",
53
+ "permissions" => "0444",
54
+ "owner" => "root",
55
+ "content" => content
56
+ }
57
+ end
58
+ else
59
+ output["coreos"]["units"] << {
60
+ "name" => "dynamic-environment.service",
61
+ "command" => "start",
62
+ "content" => "[Unit]\nDescription=Teamd Dynamic Environment File\nDocumentation=https://teamd.stei.gr/environment\nRequires=network-online.target\nAfter=network-online.target\nBefore=etcd.service etcd2.service\n\n[Service]\nType=oneshot\nExecStart=/bin/sh -c 'a(){ ip -f inet -4 -o addr | grep -v -e \": lo\" -e \": docker\" -e \": flannel\" | awk \"{print \\$4}\" | cut -f1 -d/ | $1 -1;}; echo -n COREOS_PRIVATE_IPV4= > /tmp/ip_env; a tail >> /tmp/ip_env; grep $(a head) /tmp/ip_env || (echo -n COREOS_PUBLIC_IPV4= >> /tmp/ip_env; a head >> /tmp/ip_env; cat /etc/environment 2>/dev/null | grep -v -e COREOS_PUBLIC_IPV4= -e COREOS_PRIVATE_IPV4= >> /tmp/ip_env; cat /tmp/ip_env > /etc/environment)'",
53
63
  }
54
64
  end
55
65
  if @use_flannel
@@ -1,5 +1,5 @@
1
1
  module Teamd
2
2
  module Installer
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
- end
5
+ end
@@ -0,0 +1,10 @@
1
+ [Unit]
2
+ Description=Teamd Dynamic Environment File
3
+ Documentation=https://teamd.stei.gr/environment
4
+ Requires=network-online.target
5
+ After=network-online.target
6
+ Before=etcd.service etcd2.service
7
+
8
+ [Service]
9
+ Type=oneshot
10
+ ExecStart=/bin/sh -c 'a(){ ip -f inet -4 -o addr | grep -v -e ": lo" -e ": docker" -e ": flannel" | awk "{print \$4}" | cut -f1 -d/ | $1 -1;}; echo -n COREOS_PRIVATE_IPV4= > /tmp/ip_env; a tail >> /tmp/ip_env; grep $(a head) /tmp/ip_env || (echo -n COREOS_PUBLIC_IPV4= >> /tmp/ip_env; a head >> /tmp/ip_env; cat /etc/environment 2>/dev/null | grep -v -e COREOS_PUBLIC_IPV4= -e COREOS_PRIVATE_IPV4= >> /tmp/ip_env; cat /tmp/ip_env > /etc/environment)'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teamd-installer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Kaufmann
@@ -123,6 +123,7 @@ files:
123
123
  - lib/teamd/installer/template_config.rb
124
124
  - lib/teamd/installer/token_provider.rb
125
125
  - lib/teamd/installer/version.rb
126
+ - shared/dynamic-environment.service
126
127
  - shared/teamd-discover.service
127
128
  - teamd-installer.gemspec
128
129
  homepage: https://teamd.stei.gr/installer