vagrant-adbinfo 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b601a8239cb4fda104bbbb7aa7406a9625138997
4
+ data.tar.gz: 994cb677baa05fc1582e27f3622a2dbadd140bb7
5
+ SHA512:
6
+ metadata.gz: dd7aa89b8d77f0e284b83c34e3fcebec20178c7ada7bda02332bd64aa8a360ccab49da6ed17591d8ffc7d3733c39da3f590a6d9b131469f74fd85780ffd052fb
7
+ data.tar.gz: 6fefe725adb2bf8cf3c55ccdf1a71a44d90eaac4e5c13c9de1573f5466e3d3897f60261701e6a49ba509936c9937eb4a93f849633c985a6c7228c63ed9686ed8
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ Gemfile.lock
2
+ .vagrant
3
+ pkg
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development do
4
+ gem 'vagrant', git: 'https://github.com/mitchellh/vagrant.git'
5
+ # added as the vagrant component wouldn't build without it
6
+ gem 'json'
7
+ end
8
+
9
+ group :plugins do
10
+ gem 'vagrant-adbinfo', path: '.'
11
+ end
data/README.md ADDED
@@ -0,0 +1,51 @@
1
+ Display docker information from a vagrant machine, similar to what boot2docker provides
2
+
3
+ Based in part on the work done by Michael Kuzmin for vagrant-guestip at https://github.com/mkuzmin/vagrant-guestip
4
+
5
+ #How to Develop/Test
6
+
7
+ 1 - Install VirtualBox (http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/)
8
+
9
+ 2 - Get a box to test
10
+
11
+ 3 - Build a vagrant file
12
+
13
+ 4 - bundle install
14
+
15
+ 5 - bundle exec vagrant up # starts the vagrant box
16
+
17
+ 6 - bundle exec vagrant adbinfo # tests the command
18
+
19
+ 7 - rake build # puts the gemfile in pkg/
20
+
21
+
22
+ # Potential Plans/Ideas (in Priority Order)
23
+
24
+ ## VirtualBox Support (Priority 1a - implemented)
25
+
26
+ 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.
27
+
28
+ The plugin will use the :forwarded_ports capability to find the forwarded port number and provide it with localhost as the IP address.
29
+
30
+ 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.
31
+
32
+ ## TLS Certificate Location Support, part 2 (Priority 1b - not started)
33
+
34
+ The TLS certificate will always land in a known spot, so we need to add that
35
+
36
+ ## libvirt Support (Priority 2 - not started)
37
+
38
+ For the libvirt provider, the user will be encouraged to just start the box with no special directives in the Vagrantfile.
39
+
40
+ The plugin will use the standard-docker port combined with the private IP address of the vagrant box.
41
+
42
+ Why? vagrant-libvirt has two challenges:
43
+
44
+ 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).
45
+ 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
46
+
47
+ ## Anti-Pattern Support (priority 3 - not started)
48
+
49
+ - Support inbound network and no port forward for VirtualBox.
50
+ - Support a port forward on libvirt.
51
+
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/Vagrantfile ADDED
@@ -0,0 +1,72 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+ # configures the configuration version (we support older styles for
6
+ # backwards compatibility). Please don't change it unless you know what
7
+ # you're doing.
8
+ Vagrant.configure(2) do |config|
9
+ # The most common configuration options are documented and commented below.
10
+ # For a complete reference, please see the online documentation at
11
+ # https://docs.vagrantup.com.
12
+
13
+ # Every Vagrant development environment requires a box. You can search for
14
+ # boxes at https://atlas.hashicorp.com/search.
15
+ config.vm.box = "centos7-cdk-test"
16
+
17
+ # Disable automatic box update checking. If you disable this, then
18
+ # boxes will only be checked for updates when the user runs
19
+ # `vagrant box outdated`. This is not recommended.
20
+ # config.vm.box_check_update = false
21
+
22
+ # Create a forwarded port mapping which allows access to a specific port
23
+ # within the machine from a port on the host machine. In the example below,
24
+ # accessing "localhost:8080" will access port 80 on the guest machine.
25
+ #config.vm.network "forwarded_port", guest: 80, host: 8080
26
+ config.vm.network "forwarded_port", guest: 2376, host: 5555
27
+
28
+ # Create a private network, which allows host-only access to the machine
29
+ # using a specific IP.
30
+ # config.vm.network "private_network", ip: "192.168.33.10"
31
+
32
+ # Create a public network, which generally matched to bridged network.
33
+ # Bridged networks make the machine appear as another physical device on
34
+ # your network.
35
+ # config.vm.network "public_network"
36
+
37
+ # Share an additional folder to the guest VM. The first argument is
38
+ # the path on the host to the actual folder. The second argument is
39
+ # the path on the guest to mount the folder. And the optional third
40
+ # argument is a set of non-required options.
41
+ # config.vm.synced_folder "../data", "/vagrant_data"
42
+
43
+ # Provider-specific configuration so you can fine-tune various
44
+ # backing providers for Vagrant. These expose provider-specific options.
45
+ # Example for VirtualBox:
46
+ #
47
+ # config.vm.provider "virtualbox" do |vb|
48
+ # # Display the VirtualBox GUI when booting the machine
49
+ # vb.gui = true
50
+ #
51
+ # # Customize the amount of memory on the VM:
52
+ # vb.memory = "1024"
53
+ # end
54
+ #
55
+ # View the documentation for the provider you are using for more
56
+ # information on available options.
57
+
58
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
59
+ # such as FTP and Heroku are also available. See the documentation at
60
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
61
+ # config.push.define "atlas" do |push|
62
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
63
+ # end
64
+
65
+ # Enable provisioning with a shell script. Additional provisioners such as
66
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
67
+ # documentation for more information about their specific syntax and use.
68
+ # config.vm.provision "shell", inline: <<-SHELL
69
+ # sudo apt-get update
70
+ # sudo apt-get install -y apache2
71
+ # SHELL
72
+ end
data/lib/command.rb ADDED
@@ -0,0 +1,26 @@
1
+ module VagrantPlugins
2
+ module DockerInfo
3
+ class Command < Vagrant.plugin(2, :command)
4
+ def self.synopsis
5
+ 'provides the IP address:port and tls certificate file location for a docker daemon'
6
+ end
7
+
8
+ def execute
9
+ with_target_vms(nil, {:single_target=>true}) do |machine|
10
+ port = machine.provider.capability(:forwarded_ports).index(2376)
11
+ message =
12
+ <<-eos
13
+ Set the following environment variables to enable access to the
14
+ docker daemon running inside of the vagrant virtual machine:
15
+
16
+ export DOCKER_HOST=tcp://127.0.0.1:#{port}
17
+ export DOCKER_CERT_PATH=PATH_NEEDED
18
+ export DOCKER_TLS_VERIFY=1
19
+ export DOCKER_MACHINE_NAME=\"#{machine.id}\"
20
+ eos
21
+ @env.ui.info(message)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,12 @@
1
+ module VagrantPlugins
2
+ module DockerInfo
3
+ class Plugin < Vagrant.plugin(2)
4
+ name 'adbinfo'
5
+
6
+ command('adbinfo', primary: false) do
7
+ require_relative 'command'
8
+ Command
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'vagrant-adbinfo'
3
+ spec.version = '0.0.1'
4
+ spec.homepage = 'https://github.com/bexelbie/vagrant-adbinfo'
5
+ spec.summary = 'Vagrant plugin that provides the IP address:port and tls certificate file location for a docker daemon'
6
+
7
+ spec.authors = ['Brian Exelbierd', 'Navid Shaikh']
8
+ spec.email = ['bex@pobox.com', 'nshaikh@redhat.com']
9
+
10
+ spec.files = `git ls-files -z`.split("\x0")
11
+ spec.require_paths = ['lib']
12
+
13
+ spec.add_development_dependency 'bundler', '~> 1.6'
14
+ spec.add_development_dependency 'rake'
15
+ end
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vagrant-adbinfo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Brian Exelbierd
8
+ - Navid Shaikh
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-09-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.6'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ description:
43
+ email:
44
+ - bex@pobox.com
45
+ - nshaikh@redhat.com
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - ".gitignore"
51
+ - Gemfile
52
+ - README.md
53
+ - Rakefile
54
+ - Vagrantfile
55
+ - lib/command.rb
56
+ - lib/vagrant-adbinfo.rb
57
+ - vagrant-adbinfo.gemspec
58
+ homepage: https://github.com/bexelbie/vagrant-adbinfo
59
+ licenses: []
60
+ metadata: {}
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ requirements: []
76
+ rubyforge_project:
77
+ rubygems_version: 2.2.5
78
+ signing_key:
79
+ specification_version: 4
80
+ summary: Vagrant plugin that provides the IP address:port and tls certificate file
81
+ location for a docker daemon
82
+ test_files: []