Commit Graph

204 Commits

Author SHA1 Message Date
Nathan LeClaire e9c285cf6a Add Timeout state to ls command
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-30 13:44:40 -07:00
Soshi Katsuta aba294cbb1 libmachine: return an error if DOCKER_HOST is empty
Signed-off-by: Soshi Katsuta <soshi.katsuta@gmail.com>
2015-07-30 19:50:08 +09:00
Evan Hazlett 7614212d4f Merge pull request #1564 from nathanleclaire/revert_migration
Revert configuration migration removal, include new version field, and introduce migration boilerplate
2015-07-29 16:50:49 -07:00
Nathan LeClaire 802393f253 Skip and warn on wonky /etc/os-release lines
If the lines don't split cleanly (occasionally STDERR gets mixed in, for
instance, due to our current SSH output setup), we should simply
log.Warn in the output instead of bailing completely.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-28 18:07:51 -07:00
Nathan LeClaire fb2e843e99 - Re-introduce config migration; fix panics occurring from older configs
- Introduce boilerplate for config.json migrations

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-28 15:38:16 -07:00
Flavio Castelli 5de71f7e38 Add SUSE Enterprise Linux and openSUSE provision
Add support for SUSE Enterprise Linux and openSUSE

Signed-off-by: Flavio Castelli <fcastelli@suse.com>
2015-07-28 17:46:19 +02:00
Evan Hazlett 736ebb14fb Merge pull request #1552 from ehazlett/b2d-next
VirtualBox: Update to support new B2D
2015-07-24 18:20:42 -04:00
Evan Hazlett 65b5624221
proper check for hyper-v during upgrade
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 13:33:46 -04:00
Evan Hazlett 030783af74
swarm: use --advertise instead of --addr for join
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 13:15:00 -04:00
Evan Hazlett 5af751ecf1
b2d: re-enable upgrade for local
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:38:01 -04:00
Evan Hazlett cb80c434ac b2d: use direct urls until release; devicemapper for engine opts tests
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

b2d-ng: use driver names for iso versions

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:07:01 -04:00
Evan Hazlett e09f2fdd9c vbox: change to get latest released iso instead of pre-release
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: fix windows share dir for homedir

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: update tests for b2d

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:07:01 -04:00
Evan Hazlett ab31d52165 update vbox driver to work with new b2d
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: lock down shared folders to user home dir

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

use env var for user for cross platform

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: remove sudo from setting ssh key for user

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

wip: use homedir for share

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-23 19:40:07 -04:00
Evan Hazlett b43a76deec add GetOsReleaseInfo to provisioner to assist in testing; add tests for rpm repo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-22 20:56:28 -04:00
Evan Hazlett 01bf2ea2d7 use yum repos for redhat like distros
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-22 20:56:27 -04:00
Nathan LeClaire 79b9450fef Revert "Remove flat (0.1.0) => nested (0.2.0) migration code"
This reverts commit 2f831887c6.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-22 11:22:33 -07:00
Ryan Grothouse d553a2c757 added support for setting environment variables in docker engines
Signed-off-by: Ryan Grothouse <rgrothouse@gmail.com>
2015-07-16 16:12:06 -04:00
Evan Hazlett f8456d8bba Merge pull request #1494 from nathanleclaire/rename_machine_to_provider
Rename libmachine.Machine to libmachine.Provider
2015-07-11 20:33:22 -06:00
Emmanuel Bretelle 36ec026b38 [debian] Make enabling docker service work
Fixes #1495
/etc/systemd/system/docker.service was missing the [Install] section
making the enable action fail with:

```
root@jessie:~# systemctl enable docker
Synchronizing state for docker.service with sysvinit using
update-rc.d...
Executing /usr/sbin/update-rc.d docker defaults
Executing /usr/sbin/update-rc.d docker enable
The unit files have no [Install] section. They are not meant to be
enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another
unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which
has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path,
timer,
   D-Bus, udev, scripted systemctl call, ...).
```

Signed-off-by: Emmanuel Bretelle <chantr4@gmail.com>
2015-07-10 00:10:39 -07:00
Nathan LeClaire 3eaab15a5b Rename libmachine.Machine to libmachine.Provider
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-09 10:24:29 -07:00
Evan Hazlett 1620133970 Merge pull request #1263 from nathanleclaire/remove_top_level_migration
Remove flat (0.1.0) => nested (0.2.0) migration code
2015-07-08 16:02:35 -06:00
Nathan LeClaire 83a8a4c0f8 Merge pull request #1310 from exoscale/feature/exoscale-multiple-security-groups
exoscale: ability to specify multiple security groups on instance creation
2015-07-07 11:22:44 -07:00
Nathan LeClaire fd35c7df48 Set boot2docker hostname properly
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-06 13:11:07 -07:00
Vincent Bernat 4ec3f206b4 exoscale: use `StringSlice` to specify security groups
This mean that the option has to be repeated to specify multiple
security groups.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-30 10:59:23 +02:00
Nathan LeClaire 3064d52b7f Remove upgrade restriction on VMware providers
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-06-18 10:40:49 -07:00
Evan Hazlett 9ed3cb9c86
provisioning: update rpms for 1.7
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-18 12:44:44 -04:00
Evan Hazlett e37e90939b
provisioning: update rpms for RC3
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-15 16:16:16 -04:00
Nathan LeClaire e91c28fad6 Check for IP to be assigned before returning from Start()
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-06-11 14:02:27 -07:00
Evan Hazlett 4a54559233 Merge pull request #1280 from ehazlett/native-ssh-fix
fix issue with native ssh; fix tty allocation for redhat
2015-06-02 16:48:02 -04:00
Evan Hazlett a879b39902 Merge pull request #1268 from janeczku/waitforssh
Check that instance has started before polling SSH
2015-06-02 10:31:01 -04:00
Evan Hazlett cf0aee9fd7
support specifying swarm image and docker versions
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-01 16:20:56 -04:00
Evan Hazlett 0b5a389481
fix issue with native ssh; fix tty allocation for redhat
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-01 10:08:07 -04:00
Jan Broer c7e9dc7849 libmachine: wait for instance start before polling SSH
Signed-off-by: Jan Broer <janeczku@yahoo.de>
2015-05-29 16:54:06 +02:00
Nathan LeClaire 2f831887c6 Remove flat (0.1.0) => nested (0.2.0) migration code
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-28 15:01:55 -07:00
Evan Hazlett 584dec8a74
redhat: use engine version 1.7rc1
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-28 08:51:42 -04:00
Evan Hazlett be7c110dfd Merge pull request #1247 from ehazlett/redhat-tty-fix
redhat: fix tty provision bug
2015-05-27 13:57:44 -04:00
Evan Hazlett ec5edb0354
redhat: fix tty provision bug
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-27 10:56:43 -04:00
Evan Hazlett 53d0da039a
debian: rebase and fix configureSwarm
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:55:38 -04:00
Evan Hazlett 3e1a6ed98c debian: rebase and streamline sudo install
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:54:47 -04:00
Evan Hazlett 290ead9ea0 debian: use proper location for config
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:54:47 -04:00
Evan Hazlett c318008aea add debian provisioner
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:54:47 -04:00
Nathan LeClaire 47bd262260 Implement configurable Swarm options
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-26 10:18:34 -07:00
Nathan LeClaire 3385e4ef94 Nitpick struct fields
I find it easier to identify and read if they are labelled

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-22 14:51:24 -07:00
Evan Hazlett 30ace6716e centos: update config path
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:51 -04:00
Evan Hazlett 065982b7d2 centos: add provisioner
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:51 -04:00
Evan Hazlett cab167c21a fedora: remove configure repo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:51 -04:00
Evan Hazlett 8e9ce9ccdf fedora: provisioner based off of redhat
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:49 -04:00
Evan Hazlett 7998852368 fedora: use proper location for config file
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett b4fa9f10a8 fedora: remove configure repo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett f17556b2fa fedora: provisioner based off of redhat
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett bf7a5f2f53 redhat: remove aws check; update docs
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett 380aaa2670 redhat: update before docker install; use simpler config in proper location
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett 0dbfcd5535 redhat: remove configure repo as we use our own rpms now
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett 0920a2de1b redhat: update RPM path
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:39 -04:00
Evan Hazlett ff2c057c96 redhat: use docker RPMs for install
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:39 -04:00
Evan Hazlett c46e7945c5 redhat: install official docker
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:39 -04:00
Evan Hazlett 9e9c0f1751 redhat: update for generic provisioner
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:39 -04:00
Evan Hazlett da7ac61be7 redhat: add redhat provisioning
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:37 -04:00
Nathan LeClaire 2f78b7f92a Move code to use SSH "backends"
Default to shelling out to SSH when available.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-19 15:02:57 -07:00
Evan Hazlett bf8eaea8ac Merge pull request #1096 from ibuildthecloud/rancheros
Support RancherOS, Fixes #992
2015-05-14 10:02:30 -04:00
Nathan LeClaire 8afddbeab8 Fix cert copying bug
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-13 22:19:27 -07:00
Nathan LeClaire 7f6d19ff47 Fix a few issues with certs
- regenerate-certs was busted, because of recent changes I made to
  Provision() method
- checksum was different between local certs and remote certs

This PR fixes both issues and adds tests to verify that both conditions
are checked in the future.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-12 15:11:23 -07:00
Evan Hazlett 9c92fd934a Merge pull request #1132 from ehazlett/provisioner-update-package-manager
provisioner: update metadata before install or upgrade
2015-05-12 08:09:04 -04:00
Evan Hazlett 197e35a021
use var block for updating metadata
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-11 09:44:34 -04:00
Darren Shepherd 30f0273608 RancherOS provisioner
RancherOS provisioner, tested with VirtualBox and AWS

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-07 13:46:25 -07:00
Darren Shepherd 7013b45dde Avoid panic when stripping empty string
Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-07 13:46:25 -07:00
Evan Hazlett a3e08a010d Merge pull request #1108 from ibuildthecloud/vbox-sleep
Fix issue where GetIP in VirtualBox failes due to no SSH
2015-05-07 13:33:26 -07:00
Nathan LeClaire e152ecc30b Add check for machine state before upgrade
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-06 13:20:33 -07:00
Evan Hazlett 5adfb8b3f0
provisioner: update metadata before install or upgrade
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-06 13:18:46 -07:00
Evan Hazlett 4e64ff79f9 generic: update for upstream driver specification
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-05 11:04:48 -07:00
Darren Shepherd 8afe967a80 Fix issue where GetIP failes due to no SSH
The main goal of this patch was to make the VirtualBox driver wait for
SSH before trying to get the IP of the VM.  The generic WaitForSSH
method required a Host struct as an arg.  This patch moves most of the
logic to the driver package so that drivers can call WaitForSSH.  The
existing functions in host are just wrappers to the real
implementation in drivers now.

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-05 09:32:45 -07:00
Darren Shepherd 43b5786001 Default storage driver to "" and let provisioner choose default
The storage driver will be "" by default an the provisioner must choose
their default provisioner.  If the user chosen storage driver is not
supported the provisioner should return an error.

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-05 09:12:33 -07:00
Evan Hazlett e4b6ff1ae9 Merge pull request #1103 from nathanleclaire/active_based_on_env
Read active host from DOCKER_HOST instead of from file
2015-05-04 18:13:48 -07:00
Nathan LeClaire c602e69448 Read active host from DOCKER_HOST instead of from file
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-04 16:29:04 -07:00
Darren Shepherd fc4488a864 Refactor out common logic in UbuntuProvisioner
This change create GenericProvisioner which is the boilplate or
generic Linux functionality that was previously in the UbuntuProvisioner

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-03 17:21:46 -07:00
Nathan LeClaire 142ffadc2c Refactor logging to focus on simple STDOUT/STDERR
This also lays the foundation for the possibility of log drivers in the
future, if it is decided that is a direction to pursue.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-04-30 12:04:52 -07:00
Evan Hazlett a3eb0d077b Merge pull request #1040 from nathanleclaire/engine_options
Implement configurable engine options
2015-04-30 13:55:58 -04:00
Nathan LeClaire 2574c8ba5d Implement configurable engine options
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-04-29 17:58:14 -07:00
Aaron Welch 2a44f40f6c for ubuntu provision append hostname to 127.0.1.1 line in /etc/hosts
Signed-off-by: Aaron Welch <welch@packet.net>
2015-04-26 15:39:22 -04:00
Dave Henderson a0f079a627 Enhancing `docker-machine ip` to support multiple host arguments
Fixes #999

Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-04-22 22:10:45 -04:00
Simon Thulbourn 709b0a84e3 Add SSH client
Signed-off-by: Simon Thulbourn <simon+github@thulbourn.com>
2015-04-21 15:37:09 +01:00
Rick Wieman 2b269c0b66 Moves the 'stopping machine' log below error log
Fixes #1032.

Signed-off-by: Rick Wieman <git@rickw.nl>
2015-04-21 14:18:46 +02:00
Nathan LeClaire 29999e9b10 Add a few improvements to stability
This improves on a few issues which are not frequent but do sometimes
come up:

1. Check that the daemon is up before attempting to do anything
   docker-ey in provisioning Ubuntu
2. Set a max retries for SSH so that if a request fails it attempts
   again before giving up

Also have annotated a few of the SSH options slightly better.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-04-06 13:00:09 -07:00
Evan Hazlett 45c8673f13 Merge pull request #920 from nathanleclaire/provisioner_upgrade
Provisioner upgrade
2015-03-31 12:12:51 -04:00
Nathan LeClaire 9b5f395c60 Implement upgrade functionality for boot2docker
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-30 16:18:38 -07:00
Aaron Welch 5c3ac31931 return empty key, val strings and nil err when given an empty string in parseLine()
add Centos test for ParseOsRelease() and blank line in test for ParseLine()
Signed-off-by: Aaron Welch <welch@packet.net>
2015-03-30 18:41:10 -04:00
Nathan LeClaire a04b908fd3 Implement upgrade for Ubuntu provisioner
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-30 15:23:25 -07:00
Evan Hazlett ee7617c2e7 Merge pull request #887 from nathanleclaire/listen_on_socket
Fix unix:// not working inside VM issue
2015-03-27 11:39:45 -07:00
Nathan LeClaire d6db67d0be Fix unix:// not working inside VM issue
With the way that provisioning was implemented, there was an issue
getting connection to the UNIX socket to work with the new boot2docker
1.6rc2 ISO.  This issue is related to the fact that the docker
service was not truly stopped during the provisioning.  This PR fixes
the issue and provides some tests to help ensure that it does not come
up again.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-27 10:41:12 -07:00
Nathan LeClaire abc5462c77 Rename migration functions to be more descriptive and add tests
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-25 11:21:09 -07:00
Nathan LeClaire 9cccc3a147 Fix location of validating hostname functionality
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-23 14:15:09 -07:00
Nathan LeClaire 3b2c8f9845 Migrate (swarmConfig) => (swarmOptions)
and (SwarmConfig) => (SwarmOptions)

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>

Migrate (authConfig) => (authOptions)
        (AuthConfig) => (AuthOptions)

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>

Migrate (hostConfig) => (hostOptions)
        (HostConfig) => (HostOptions)

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 23:20:11 -07:00
Nathan LeClaire 04f5679e4f Add test for validation
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 21:47:11 -07:00
Evan Hazlett 28789604e9 provisioner: finished migration functions
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-20 23:17:42 -04:00
Nathan LeClaire 263c802d34 Fix missing test files
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 17:05:27 -07:00
Nathan LeClaire d189baf36c Move fakedriver to its own module for reuse
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 16:48:47 -07:00
Nathan LeClaire 73862e863c Update tests to work with new provisioning
Also, comment provisioner interface slightly better.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 16:30:46 -07:00
Nathan LeClaire 7b5c8a023f Clean up some remaining issues with libmachine merge
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 16:30:46 -07:00
Nathan LeClaire and Simon Thulborn 49feb33457 Implement majority of provisioning changes
Signed-off-by: Simon Thulborn <simon+github@thulborn.com>
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 16:30:46 -07:00
Evan Hazlett 4ca4a28788 libmachine: validate host config upon load
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-19 23:19:35 -04:00
Evan Hazlett 84c1d10a95 update tests
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-19 18:09:30 -04:00
Evan Hazlett 1691d19c9d libmachine: split swarm and engine options
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-19 18:09:30 -04:00
Evan Hazlett 31b63a1204 libmachine: add engine and swarm options
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-19 18:09:30 -04:00
Evan Hazlett 27be8cf28e initial pass at internal api
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-19 18:09:30 -04:00