Skip to content
This repository has been archived by the owner on Sep 26, 2021. It is now read-only.

New Driver: Hypriot (for Raspberry Pi) #1225

Closed
wants to merge 42 commits into from

Conversation

DieterReuter
Copy link
Contributor

This is a new machine driver for using provisioning a Raspberry Pi running the Hypriot SD card image (it's based on Raspbian Wheezy).

We included some BATS integrations tests and tested it successfully against the latest Hypriot release 0.4. Here are the results:

$ HYPRIOT_IP_ADDRESS=192.168.2.110 bats test/integration/driver-hypriot.bats
 ✓ hypriot: machine ip=192.168.2.110 is reachable
 ✓ hypriot: machine bats-hypriot-test should not exist
 ✓ hypriot: create
 ✓ hypriot: ls
 ✓ hypriot: config
 ✓ hypriot: inspect
 ✓ hypriot: url
 ✓ hypriot: ip
 ✓ hypriot: run a container
 ✓ hypriot: ssh
 ✓ hypriot: ssh 'type docker' should show command docker is installed
 ✓ hypriot: ssh 'sudo service docker status' should show docker daemon is running
 ✓ hypriot: ssh 'sudo service docker stop' should stop docker daemon
 ✓ hypriot: ssh 'sudo service docker start' should start docker daemon
 ✓ hypriot: ssh 'sudo service docker status' should show docker daemon is running
 ✓ hypriot: run a container
 ✓ hypriot: ssh 'sudo service docker restart' should restart docker daemon
 ✓ hypriot: ssh 'sudo service docker status' should show docker daemon is running
 ✓ hypriot: run a container
 ✓ hypriot: stop is not supported
 ✓ hypriot: machine should show running after stop
 ✓ hypriot: start not supported
 ✓ hypriot: machine should show running after start
 ✓ hypriot: kill not supported
 ✓ hypriot: machine should show running after kill
 ✓ hypriot: restart not supported
 ✓ hypriot: machine should show running after restart
 ✓ hypriot: apt source /etc/apt/sources.list.d/hypriot.list should exist
 ✓ hypriot: apt source should contain hypriot/wheezy/main
 ✓ hypriot: upgrade
 ✓ hypriot: ssh 'sudo service docker status' should show docker daemon is running
 ✓ hypriot: machine should show running after upgrade
 ✓ hypriot: run a container
 ✓ hypriot: remove
 ✓ hypriot: machine should not exist
 ✓ hypriot: cleanup

36 tests, 0 failures

The latest Hypriot release includes Docker 1.6.0 and could be used without any further setup or configuration, just flash the SD card, boot the Raspi, install your SSH credentials and use docker-machine. For more details on installing the basic system see the detailled tutorial Getting started with Docker on your Raspberry Pi.

$ ssh-copy-id root@192.168.2.110
$ docker-machine create -d hypriot --hypriot-ip-address=192.168.2.110 black-pearl
Importing SSH key...
To see how to connect Docker to this machine, run: docker-machine env black-pearl
$ eval "$(docker-machine env black-pearl)"
$ docker version
Client version: 1.6.0
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 4749651
OS/Arch (client): linux/arm
Server version: 1.6.0
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 4749651
OS/Arch (server): linux/arm

Even a docker-machine upgrade is working well to get the latest available Docker version:

$ docker-machine upgrade black-pearl
$ docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 7c8fca2
OS/Arch (client): darwin/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2
OS/Arch (server): linux/arm

@hairyhenderson
Copy link
Contributor

Thanks for the PR! Looks like you need to sign some commits:

These commits do not have a proper 'Signed-off-by:' marker:
 - b707afdb721acf0c0299b75d1f8bc2938c7b4c35
 - 06eb6b3ce6d3b69c559d22532e253abe21cdfa9e
 - 5d49d6667b428d4739d9a811b1476bc1c2bbd4fa
 - 7c8acd850e7fa421550f73678176be6025aeb73e
 - c30e6b19c5d8a181f7e40f66a3e0e0444dc59c08
 - d394e087b800668f369efadd09e3a95310226d37
 - c1843f04f7059b9df92fe4ba77bbdae0ca6c07a1
 - 3018db54fff73e16339d65ee42735ba89de5d8c1
 - 57f30ecd782886a2df268dc33b033d2b0e8d763d
 - bb0faf9627766c9d16501c68b45aeaa9a353f622
 - 136a2ea5da9644d0e2d5fe09cebaad42ed1591de
 - 4b749b39441245783a97b13b1d2ef31c207b9048
 - 532e7be23ad61dd61cb7ad6f05e3e24e11e8381c
 - 761e3b07211bb09fa34d039ba87e830f5963da8c
 - 547215c32b825e33d720e7da76fe0e94bb7c49ff
 - 0ec7817efffb81bd4986e05d122bac6b060938f5
 - 11c0e8cef46f84f857dbf3b2f5dd81d1240bcdbd
Please amend each commit to include a properly formatted DCO marker.
Visit the following URL for information about the Docker DCO:
 https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work

Thanks!

@DieterReuter
Copy link
Contributor Author

@hairyhenderson thanks for the advice, maybe I need some help to sign these commits, never done it before.

@hairyhenderson
Copy link
Contributor

@DieterReuter - basically all you need to do is add a -s option to your git commit command. See https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work for details.

@DieterReuter
Copy link
Contributor Author

@hairyhenderson OK, that's already clear to me. But the questions is, how to do this now after the commits are already done. I tried to find some hints but with out any luck until now.

@hairyhenderson
Copy link
Contributor

@DieterReuter ah :) For that, you'll have to squash the commits and force push.

Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
StefanScherer and others added 8 commits May 25, 2015 12:06
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
When upgrading a package with `apt-get install --only-upgrade $PACKAGE`
the package is only upgraded, when it's already installed.  To make sure to upgrade
it anyway just use `apt-get install $PACKAGE`.

Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
@DieterReuter
Copy link
Contributor Author

@hairyhenderson Thanks for your help and tips. With a "little" research I was able to sign all the commits, even w/o a squash. Git is great, but it's hard to achieve a "master" level. ;-)

nathanleclaire and others added 4 commits June 26, 2015 10:22
[vsphere driver] not working with Esxi free license documentation update
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
DieterReuter and others added 21 commits July 2, 2015 17:22
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
When upgrading a package with `apt-get install --only-upgrade $PACKAGE`
the package is only upgraded, when it's already installed.  To make sure to upgrade
it anyway just use `apt-get install $PACKAGE`.

Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
@ehazlett
Copy link
Contributor

Hi , thanks for your efforts and persistence in submitting this driver. We are extremely excited that there is so much interest in Docker Machine and we really appreciate your interest. However, at this time it is proving to be extremely difficult for us to keep up with reviewing and testing each of these drivers for inclusion in the Machine core. We really want to switch to a more pluggable model, as well as polish up a few things about the driver model which need to be changed to ensure a smooth and sustainable future.

Therefore, we will be moving to a plugin model for 0.5 and would love to have you involved in the design and development process. We are closing the outstanding driver PRs at this time, but please keep the code. We will stick closely to the current driver interface and you should be able to re-use a lot (if not all) of the existing driver along with the new plugin model. We will be moving all of the drivers which are merged directly into Machine today to the plugin model when it is available, so there will be no special treatment of those, and there will be documentation outlining the process of developing and using a Docker Machine driver plugin.

With all of that being said, we want to apologize for the lack of feedback on your pull request. As contributors ourselves, we understand that being left in limbo is no fun. We would have liked to address this sooner, and in the future we will be more responsive around these kinds of issues.

Once again, we thank you for the contribution and the tremendous support. Keep hacking strong!

If you want to contribute to the design of the plugin model, we'd love to get your input on this issue where we will be planning it:

#1626

@ehazlett & @nathanleclaire

@ehazlett ehazlett closed this Jul 31, 2015
tomeon pushed a commit to tomeon/machine that referenced this pull request May 9, 2018
Add SHA256 verification to our VBoxGuestAdditions.iso fetching
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants