k8sflow 0.11.12 → 0.12.0

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: 88e1487e613debcaa706e2eec2c6e91c5768db81
4
- data.tar.gz: 80d1d3ee53c42ec5d3e936e6d7fb6b1d4ca743a3
3
+ metadata.gz: fe138974923c31af7ba91c03df92e17cc81177be
4
+ data.tar.gz: 038750df85f202b69a429b791b5c4df0a236c725
5
5
  SHA512:
6
- metadata.gz: ac71854031189817ac1d47e58d4d3c131196ef55e790195fb1ac31efa2d6b0c02d19d081fcdfaa08811fa1f0d69201ff8565d69b06d46d65d18d62c622ba3532
7
- data.tar.gz: c25959a635e66ba2c44a8abf3b9d1a88c0189385083daa32d562cb31705683ad2e5489718ad1ad713367975fafa3d9c739933d4ef907f8a7ee58be6b1d3f76f9
6
+ metadata.gz: 73003a7f4c67b31ac43839211e8c43b01cea661b1dbefca53d7519a71bfb022ca64768b990c48ecf7c4e0ad451ccc38e226f3d454040c7a6dce5a514b6dd82d7
7
+ data.tar.gz: d05d5e563948faeb5b0f8070b54636c1fd6247348ed5e15f161e9e4852e7f496608998da32f05c498e9be25a046da09f040e8167784f01518bb05874865302e3
@@ -5,7 +5,7 @@ module K8sflow
5
5
  description: 'Mange docker image and run'
6
6
 
7
7
  option :registry, '-r', '--registry DOCKER_REPO', 'Docker registry to pull/fetch images'
8
- option :docker_api, "-H", "--host", "docker api endpoint", default: "unix://"
8
+ option :docker_api, "-H", "--host host", "docker api endpoint", default: "unix://"
9
9
  option :tag, '-t', '--tag TAG', "Image tag", default: 'latest'
10
10
 
11
11
  end
@@ -1,7 +1,8 @@
1
1
  require 'optparse'
2
2
  require 'optparse/time'
3
3
  require 'docker'
4
- require 'k8sflow/utils/heroku'
4
+ require 'k8sflow/utils/varager'
5
+
5
6
  require_relative 'docker_image_base'
6
7
 
7
8
  module K8sflow
@@ -23,10 +24,11 @@ $ k8sflow run -t 2.10 -p 3000:3000 'run server -p 3000'
23
24
  option :port, "-p", "--port ctn_port:host_port", Array, "Publish a container's port(s) to the host"
24
25
  option :port_all, "-P", "--port-all", Array, "Publish all exposed ports to random ports"
25
26
  option :detach, "-d", "--detach", "daemonize container", default: false
26
- option :app, "-A", "--app APPNAME", "application name"
27
27
  option :envs, "-e", "--env VAR=VALUE,VAR2=VALUE2", Array, "envvars list"
28
- option :heroku, "--heroku APP", "get all envs from heroku"
29
- option :heroku_db, "--heroku-db", "get DB envs only from heroku"
28
+ option :app, "-A", "--app APP", "app name"
29
+ option :varager_api, "--varager-api API", "varager api endpoint with token, include http(s)://"
30
+ option :varager_token, "--varager-token API-TOKEN", "varager api auth token"
31
+ option :varager_db, "--heroku-db", "get DB envs only from heroku"
30
32
  option :tty, "--[no-]tty", "Use tty"
31
33
  option :aliases, "--aliases a=x,b=y", "commands aliases, usefull in the default file"
32
34
 
@@ -62,15 +64,19 @@ $ k8sflow run -t 2.10 -p 3000:3000 'run server -p 3000'
62
64
  envs[key] = value
63
65
  end
64
66
  end
65
- if options.has_key?(:heroku)
66
- envs.merge!( K8sflow::Utils::HerokuClient.envs(options[:heroku], options[:heroku_db]))
67
+
68
+ if options.has_key?(:varager_api) && options[:varager_api] != nil
69
+ uri = options[:varager_api]
70
+ token = options[:varager_token]
71
+ client = K8sflow::Utils::Varager.new(token, uri)
72
+ envs.merge!(client.envs(options[:app], false))
67
73
  end
68
74
  pp envs
69
75
  return envs
70
76
  end
71
77
 
72
78
  def docker_run(cmd, envs, options)
73
- Docker.url = options[:docker_api]
79
+ ::Docker.url = options[:docker_api]
74
80
  container_info = {
75
81
  'Cmd' => cmd.split(" "),
76
82
  'Image' => "#{options[:registry]}:#{options[:tag]}",
@@ -90,7 +96,7 @@ $ k8sflow run -t 2.10 -p 3000:3000 'run server -p 3000'
90
96
  container_info["PublishAllPorts"] = true
91
97
  end
92
98
  pp container_info
93
- container = Docker::Container.create(container_info)
99
+ container = ::Docker::Container.create(container_info)
94
100
  container.start
95
101
  puts "container created with id: #{container.id}"
96
102
  if !options[:detach]
@@ -0,0 +1,38 @@
1
+ require 'pp'
2
+ require 'varager'
3
+ require 'json'
4
+
5
+ module K8sflow
6
+ module Utils
7
+ class Varager
8
+ attr_reader :client
9
+
10
+ def initialize(token, endpoint)
11
+ ::Varager.logger.level = 1
12
+ @client = ::Varager::Client.new
13
+ puts "TOKEN"
14
+ puts token
15
+ @client.auth_token.update(:token => token)
16
+ puts @client.auth_token.options
17
+ @client.site = endpoint
18
+ end
19
+
20
+ def envs(app, db_only=true)
21
+ envs = @client.get_env(params: {id: app}).vars
22
+ #pp "overrided vars: #{@options.envvars}"
23
+ db_vars = ["DATABASE_URL",
24
+ "MEMCACHIER_PASSWORD",
25
+ "MEMCACHIER_SERVERS",
26
+ "MEMCACHIER_USERNAME",
27
+ "REDISTOGO_URL",
28
+ "REDIS_PROVIDER"]
29
+ if db_only == true
30
+ envs.select!{|k,v| db_vars.index(k) != nil}
31
+ end
32
+ pp envs
33
+ return envs
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module K8sflow
3
- VERSION = '0.11.12'
3
+ VERSION = '0.12.0'
4
4
  VERSION_NAMES = {1 => 'France II',
5
5
  2 => 'R.C. Rickmers',
6
6
  3 => 'Thomas W. Lawson',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k8sflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.12
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antoine Legrand
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-19 00:00:00.000000000 Z
11
+ date: 2016-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cli-topic
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: varager
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: netrc
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -97,6 +111,7 @@ files:
97
111
  - lib/k8sflow/command/pg/psql.rb
98
112
  - lib/k8sflow/command/pg/restore.rb
99
113
  - lib/k8sflow/utils/heroku.rb
114
+ - lib/k8sflow/utils/varager.rb
100
115
  - lib/k8sflow/version.rb
101
116
  - spec/spec_helper.rb
102
117
  homepage: http://gitlab.com/ant31