vagrant-adbinfo 0.0.9 → 0.1.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 +23 -0
- data/Gemfile +2 -0
- data/README.md +28 -84
- data/Vagrantfile +1 -1
- data/lib/command.rb +3 -25
- data/lib/os.rb +18 -0
- data/vagrant-adbinfo.gemspec +2 -2
- data/vagrant-adbinfo.spec +11 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b94c04f399859bdfca7a809a8d5fe7365bab9b0
|
4
|
+
data.tar.gz: c5a70ebb551a1b9f1b8c1c1866a2a55954fce047
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57cdb3e98b1d3551f40f58353e4b57fc903b7222b98cc6f431fd76dfe439aa4d7eb99ee6bba4b92fdca5434e550f4395866e3c9cbbb39bb17d4088486100eaa5
|
7
|
+
data.tar.gz: e01ba9c34b8ee99cd33f63789035c976db741871bbe002e58555bc4561a1dd39b724e99f4fbd53ad67d8269b3f8d6165b685903342ac85f8f39f58159d0db0eb
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## v0.1.0 Jan 19, 2015
|
4
|
+
|
5
|
+
- Fix#66: Added CHANGELOG.md to repository
|
6
|
+
- Added gemspec in Gemfile to enable bundler packaging
|
7
|
+
- Fix#67: OS is not a module (TypeError) on Windows
|
8
|
+
- Update ADB box Atlas namespace to projectatomic/adb
|
9
|
+
- Update README to reflect latest code and project goals
|
10
|
+
- Update Vagrantfile for QuickStart guide
|
11
|
+
|
12
|
+
|
13
|
+
## v0.0.9 Nov 25, 2015
|
14
|
+
|
15
|
+
- Fix: Prevents TLS certs generation on every run of plugin
|
16
|
+
|
17
|
+
|
18
|
+
## v0.0.8 Nov 24, 2015
|
19
|
+
|
20
|
+
- Fix#40: Handle private networking for different providers and generate Docker daemon TLS certs accordingly
|
21
|
+
- Support backward compatibility with older versions of ADB boxes
|
22
|
+
- lib/command.rb - Fixes bash file check command
|
23
|
+
- Restart Docker daemon after generating correct TLS certs
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,105 +1,49 @@
|
|
1
|
-
|
1
|
+
# vagrant-adbinfo Vagrant Plugin
|
2
2
|
|
3
|
-
|
3
|
+
Provide setup information, including environment variables and certificates, required to access services provided by an [Atomic Developer Bundle (ADB)](https://github.com/projectatomic/adb-atomic-developer-bundle). This plugin makes it easier to use the ADB with host-based tools such as Eclipse and the docker and kubernetes CLI commands. Details on this usage pattern can be found in the [ADB Documentation](https://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/docs/using.rst).
|
4
4
|
|
5
|
-
|
5
|
+
The [Atomic Developer Bundle](https://github.com/projectatomic/adb-atomic-developer-bundle) is Vagrant box that provides a ready-to-use development environment for container applications. With ADB, developers can dive right into producing complex, multi-container applications.
|
6
6
|
|
7
|
-
|
7
|
+
## Quick Start
|
8
8
|
|
9
|
-
|
10
|
-
# -*- mode: ruby -*-
|
11
|
-
# vi: set ft=ruby :
|
9
|
+
1. Install and start the Atomic Developer Bundle (ADB), as [documented](https://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/docs/installing.rst) in the ADB project.
|
12
10
|
|
13
|
-
|
11
|
+
2. Install the vagrant-adbinfo plugin
|
14
12
|
|
15
|
-
|
16
|
-
unless Vagrant.has_plugin?("vagrant-adbinfo")
|
17
|
-
raise "vagrant-adbinfo plugin is not installed, run `vagrant plugin install vagrant-adbinfo` to install the plugin."
|
18
|
-
end
|
13
|
+
vagrant plugin install vagrant-adbinfo
|
19
14
|
|
20
|
-
|
21
|
-
config.vm.box = "atomicapp/dev"
|
15
|
+
3. Run the plugin to get environment variables and certificates
|
22
16
|
|
23
|
-
|
24
|
-
|
17
|
+
$ vagrant adbinfo
|
18
|
+
Set the following environment variables to enable access to the
|
19
|
+
docker daemon running inside of the vagrant virtual machine:
|
25
20
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
21
|
+
export DOCKER_HOST=tcp://172.13.14.1:5555
|
22
|
+
export DOCKER_CERT_PATH=/home/bexelbie/Repositories/vagrant-adbinfo/.vagrant/machines/default/virtualbox/.docker
|
23
|
+
export DOCKER_TLS_VERIFY=1
|
24
|
+
export DOCKER_MACHINE_NAME="90d3e96"
|
31
25
|
|
32
|
-
|
33
|
-
vbox.memory = 1024
|
34
|
-
vbox.cpus = 2
|
26
|
+
4. Begin using your host-based tools.
|
35
27
|
|
36
|
-
|
37
|
-
vbox.customize ["modifyvm", :id, "--ioapic", "on"]
|
38
|
-
end
|
28
|
+
## Get Involved/Contact Us
|
39
29
|
|
40
|
-
|
41
|
-
|
30
|
+
* IRC: #atomic and #nulecule on freenode
|
31
|
+
* Mailing List: container-tools@redhat.com
|
42
32
|
|
43
|
-
|
33
|
+
## How to Develop/Test
|
44
34
|
|
45
|
-
-
|
35
|
+
1. Install the Atomic Developer Bundle (ADB), as [documented](https://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/docs/installing.rst) in the ADB project. Do not start the box yet.
|
46
36
|
|
37
|
+
2. Run `bundle install`
|
47
38
|
|
48
|
-
|
39
|
+
3. Start the box with `bundle exec vagrant up`
|
49
40
|
|
50
|
-
|
41
|
+
4. Develop. You can test the command by running `bundle exec vagrant adbinfo`
|
51
42
|
|
52
|
-
|
43
|
+
5. When you are ready to build the release, get a maintainer to:
|
53
44
|
|
54
|
-
|
45
|
+
1. Put the gemfile in pkg/ with `rake build`
|
55
46
|
|
56
|
-
|
47
|
+
2. Increment the Version Number
|
57
48
|
|
58
|
-
|
59
|
-
|
60
|
-
6 - bundle exec vagrant adbinfo # tests the command
|
61
|
-
|
62
|
-
7 - rake build # puts the gemfile in pkg/
|
63
|
-
|
64
|
-
8 - get bex to do a `rake release` after bumping the version number, etc.
|
65
|
-
|
66
|
-
|
67
|
-
# Potential Plans/Ideas (in Priority Order)
|
68
|
-
|
69
|
-
## VirtualBox Support (Priority 1a - implemented)
|
70
|
-
|
71
|
-
For the VirtualBox provider, the user is encouraged to use a forwarded_port directive (with auto_correct) in their Vagrantfile to expose the docker port.
|
72
|
-
|
73
|
-
The plugin will use the :forwarded_ports capability to find the forwarded port number and provide it with localhost as the IP address.
|
74
|
-
|
75
|
-
Why? By default Virtualbox creates a box that has no inbound network access. The pattern is to always forward ports, something that a daemon takes care.
|
76
|
-
|
77
|
-
## TLS Certificate Location Support, part 2 (Priority 1b - implemented)
|
78
|
-
|
79
|
-
The TLS certificate will always land in a known spot, so we need to add that
|
80
|
-
|
81
|
-
## libvirt Support (Priority 2 - not started)
|
82
|
-
|
83
|
-
For the libvirt provider, the user will be encouraged to just start the box with no special directives in the Vagrantfile.
|
84
|
-
|
85
|
-
The plugin will use the standard-docker port combined with the private IP address of the vagrant box.
|
86
|
-
|
87
|
-
Why? vagrant-libvirt has two challenges:
|
88
|
-
|
89
|
-
1. There is currently no implementation of the :forwarded_ports capability to list all forwarded ports. Additionally the codebase does not keep track of these directly, so it is a non-trivial fix. (Though the fix may still be easy/medium).
|
90
|
-
2. Vagrant-libvirt doesn't actually support forwarded ports directly. Instead a private network is always started and when a forwarded port is requested and instance of `ssh` is spawned to take care of port forwarding. Since this has non-trivial overhead, there is no reason to use it when we can just get to the box directly
|
91
|
-
|
92
|
-
## Anti-Pattern Support (priority 3 - not started)
|
93
|
-
|
94
|
-
- Support inbound network and no port forward for VirtualBox.
|
95
|
-
- Support a port forward on libvirt.
|
96
|
-
- note: port collision is not supported in libvirt, yet see:
|
97
|
-
https://github.com/pradels/vagrant-libvirt/issues/321
|
98
|
-
|
99
|
-
## Other Ideas (not started)
|
100
|
-
|
101
|
-
- Support `vagrant adbinfo <target>` (multiple targets?)
|
102
|
-
|
103
|
-
|
104
|
-
## Contact us
|
105
|
-
For queries regarding the plugin, feel free to put a note on container-tools@redhat.com mailing list.
|
49
|
+
3. Release the plugin with `rake release`
|
data/Vagrantfile
CHANGED
@@ -12,7 +12,7 @@ Vagrant.configure(2) do |config|
|
|
12
12
|
|
13
13
|
# Every Vagrant development environment requires a box. You can search for
|
14
14
|
# boxes at https://atlas.hashicorp.com/search.
|
15
|
-
config.vm.box = "
|
15
|
+
config.vm.box = "projectatomic/adb"
|
16
16
|
|
17
17
|
# Disable automatic box update checking. If you disable this, then
|
18
18
|
# boxes will only be checked for updates when the user runs
|
data/lib/command.rb
CHANGED
@@ -1,28 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
def OS.windows?
|
4
|
-
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
5
|
-
end
|
6
|
-
|
7
|
-
def OS.mac?
|
8
|
-
(/darwin/ =~ RUBY_PLATFORM) != nil
|
9
|
-
end
|
10
|
-
|
11
|
-
def OS.unix?
|
12
|
-
!OS.Windows?
|
13
|
-
end
|
14
|
-
|
15
|
-
def OS.linux?
|
16
|
-
OS.unix? and not OS.mac?
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
1
|
+
require_relative 'os'
|
21
2
|
module VagrantPlugins
|
22
3
|
module DockerInfo
|
23
4
|
class Command < Vagrant.plugin(2, :command)
|
24
|
-
# Vagrant box password as defined in the Kickstart for the box <https://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/build_tools/kickstarts/centos-7-
|
25
|
-
# On Windows, pscp utility is used to copy the client side certs
|
5
|
+
# Vagrant box password as defined in the Kickstart for the box <https://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/build_tools/kickstarts/centos-7-adb-vagrant.ks>
|
6
|
+
# On Windows, pscp utility is used to copy the client side certs to the host, password is used in the pscp command because the ssh keys can not be used. Refer issue #14 for details
|
26
7
|
@@vagrant_box_password = "vagrant"
|
27
8
|
|
28
9
|
def self.synopsis
|
@@ -95,12 +76,10 @@ def print_info(guest_ip, port, secrets_path, machine_uuid)
|
|
95
76
|
<<-eos
|
96
77
|
# Set the following environment variables to enable access to the
|
97
78
|
# docker daemon running inside of the vagrant virtual machine:
|
98
|
-
|
99
79
|
export DOCKER_HOST=tcp://#{guest_ip}:#{port}
|
100
80
|
export DOCKER_CERT_PATH=#{secrets_path}
|
101
81
|
export DOCKER_TLS_VERIFY=1
|
102
82
|
export DOCKER_MACHINE_NAME=#{machine_uuid[0..6]}
|
103
|
-
|
104
83
|
# run following command to configure your shell:
|
105
84
|
# eval "$(vagrant adbinfo)"
|
106
85
|
|
@@ -113,7 +92,6 @@ export DOCKER_MACHINE_NAME=#{machine_uuid[0..6]}
|
|
113
92
|
<<-eos
|
114
93
|
# Set the following environment variables to enable access to the
|
115
94
|
# docker daemon running inside of the vagrant virtual machine:
|
116
|
-
|
117
95
|
setx DOCKER_HOST tcp://#{guest_ip}:#{port}
|
118
96
|
setx DOCKER_CERT_PATH #{secrets_path}
|
119
97
|
setx DOCKER_TLS_VERIFY 1
|
data/lib/os.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# OS Module
|
2
|
+
module OS
|
3
|
+
def self.windows?
|
4
|
+
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.mac?
|
8
|
+
(/darwin/ =~ RUBY_PLATFORM) != nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.unix?
|
12
|
+
!windows?
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.linux?
|
16
|
+
unix? && !mac?
|
17
|
+
end
|
18
|
+
end
|
data/vagrant-adbinfo.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = 'vagrant-adbinfo'
|
3
|
-
spec.version = '0.0
|
3
|
+
spec.version = '0.1.0'
|
4
4
|
spec.homepage = 'https://github.com/bexelbie/vagrant-adbinfo'
|
5
|
-
spec.summary = 'Vagrant plugin that provides the IP address:port and
|
5
|
+
spec.summary = 'Vagrant plugin that provides the IP address:port and TLS certificate file location for a docker daemon'
|
6
6
|
|
7
7
|
spec.authors = ['Brian Exelbierd', 'Navid Shaikh']
|
8
8
|
spec.email = ['bex@pobox.com', 'nshaikh@redhat.com']
|
data/vagrant-adbinfo.spec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
%global vagrant_plugin_name vagrant-adbinfo
|
3
3
|
|
4
4
|
Name: %{vagrant_plugin_name}
|
5
|
-
Version: 0.0
|
5
|
+
Version: 0.1.0
|
6
6
|
Release: 1%{?dist}
|
7
7
|
Summary: Vagrant plugin that provides the IP address:port and TLS certificate file location for a Docker daemon
|
8
8
|
Group: Development/Languages
|
@@ -82,8 +82,18 @@ popd
|
|
82
82
|
%{vagrant_plugin_instdir}/MAINTAINERS
|
83
83
|
%{vagrant_plugin_instdir}/vagrant-adbinfo.gemspec
|
84
84
|
%{vagrant_plugin_instdir}/vagrant-adbinfo.spec
|
85
|
+
%{vagrant_plugin_instdir}/CHANGELOG.md
|
85
86
|
|
86
87
|
%changelog
|
88
|
+
* Tue Jan 19 2016 Navid Shaikh - 0.1.0-1
|
89
|
+
- Bump version to 0.1.0
|
90
|
+
- Fix#66: Added CHANGELOG.md to repository
|
91
|
+
- Added gemspec in Gemfile to enable bundler packaging
|
92
|
+
- Fix#67: OS is not a module (TypeError) on Windows
|
93
|
+
- Update ADB box Atlas namespace to projectatomic/adb
|
94
|
+
- Update README to reflect latest code and project goals
|
95
|
+
- Update Vagrantfile for QuickStart guide
|
96
|
+
|
87
97
|
* Wed Nov 25 2015 Brian Exelbierd - 0.0.9-1
|
88
98
|
- Fixes cert-generation script existence check, a bug was found where the cert
|
89
99
|
was regenerated to often
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-adbinfo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Exelbierd
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -48,6 +48,7 @@ extensions: []
|
|
48
48
|
extra_rdoc_files: []
|
49
49
|
files:
|
50
50
|
- ".gitignore"
|
51
|
+
- CHANGELOG.md
|
51
52
|
- CONTRIBUTING.md
|
52
53
|
- Gemfile
|
53
54
|
- LICENSE
|
@@ -56,6 +57,7 @@ files:
|
|
56
57
|
- Rakefile
|
57
58
|
- Vagrantfile
|
58
59
|
- lib/command.rb
|
60
|
+
- lib/os.rb
|
59
61
|
- lib/vagrant-adbinfo.rb
|
60
62
|
- vagrant-adbinfo.gemspec
|
61
63
|
- vagrant-adbinfo.spec
|
@@ -81,6 +83,6 @@ rubyforge_project:
|
|
81
83
|
rubygems_version: 2.4.8
|
82
84
|
signing_key:
|
83
85
|
specification_version: 4
|
84
|
-
summary: Vagrant plugin that provides the IP address:port and
|
86
|
+
summary: Vagrant plugin that provides the IP address:port and TLS certificate file
|
85
87
|
location for a docker daemon
|
86
88
|
test_files: []
|