GithubHelp home page GithubHelp logo

dimensiondataresearch / docker-machine-driver-ddcloud Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 2.0 282 KB

Docker Machine driver for Dimension Data CloudControl

License: MIT License

Makefile 3.31% Go 96.69%
docker-machine-driver

docker-machine-driver-ddcloud's People

Contributors

bernard357 avatar tintoy avatar tmuskal avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ryanngch tmuskal

docker-machine-driver-ddcloud's Issues

--ddcloud-networkdomain needs to be url encoded

When trying this driver I ran into an issue where I got the following error:

Development' in region 'EU'...
Error with pre-create check: "Unexpected error while performing 'GET' request to 'https://api-EU.dimensiondata.com/caas/2.2/9ce4f241-ae0f-47c2-a042-7e285b9875b7/network/networkDomain?name=Enterprise message routing (EMR) Development&datacenterId=EU7': Get https://api-EU.dimensiondata.com/caas/2.2/9ce4f241-ae0f-47c2-a042-7e285b9875b7/network/networkDomain?name=Enterprise message routing (EMR) Development&datacenterId=EU7: read tcp 10.1.1.13:51291->83.217.252.132:443: read: connection reset by peer"

I did a bit of investigating and it turns out that the network name I have: Enterprise message routing (EMR) Development if not passed to docker-machine as a url encoded value will not work.

If you could do the url encoding in the driver that would be awesome.

The following is the original request I made that did not work (excluding my username and password):

$docker-machine create --driver ddcloud \
--ddcloud-region EU \
--ddcloud-datacenter EU7 \
--ddcloud-networkdomain "Enterprise message routing (EMR) Development" \
--ddcloud-vlan 'Development' \
--ddcloud-ssh-key ~/.ssh/id_rsa.uat-gsoaapp \
--ddcloud-ssh-bootstrap-password 'throw-away-password' \
--ddcloud-user 'xxxxxxx' \
--ddcloud-password 'xxxxx'\
 devdock01

Running pre-create checks…
(devdock01) Will create machine 'devdock01' on VLAN 'Development' in network domain 'Enterprise message routing (EMR) Development' (data centre 'EU7').
(devdock01) Resolving target network domain 'Enterprise message routing (EMR) Development' in region 'EU'...
Error with pre-create check: "Unexpected error while performing 'GET' request to 'https://api-EU.dimensiondata.com/caas/2.2/9ce4f241-ae0f-47c2-a042-7e285b9875b7/network/networkDomain?name=Enterprise message routing (EMR) Development&datacenterId=EU7': Get https://api-EU.dimensiondata.com/caas/2.2/9ce4f241-ae0f-47c2-a042-7e285b9875b7/network/networkDomain?name=Enterprise message routing (EMR) Development&datacenterId=EU7: read tcp 10.1.1.13:51291->83.217.252.132:443: read: connection reset by peer"

This is the version that worked even though it reports an error:

$docker-machine create --driver ddcloud \
--ddcloud-region EU \
--ddcloud-datacenter EU7 \
--ddcloud-networkdomain 'Enterprise%20message%20routing%20(EMR)%20Development' \
--ddcloud-vlan Development \
--ddcloud-ssh-key ~/.ssh/id_rsa.uat-gsoaapp \
--ddcloud-ssh-bootstrap-password 'throw-away-password' \
--ddcloud-user 'xxx' --ddcloud-password 'xxxx' devdock01

Running pre-create checks...
(devdock01) Will create machine 'devdock01' on VLAN 'Development' in network domain 'Enterprise%20message%20routing%20(EMR)%20Development' (data centre 'EU7').
(devdock01) Resolving target network domain 'Enterprise%20message%20routing%20(EMR)%20Development' in region 'EU'...
(devdock01) Resolving target VLAN 'Development' in network domain 'Enterprise%20message%20routing%20(EMR)%20Development'...
(devdock01) Resolving OS image 'Ubuntu 14.04 2 CPU' in data centre 'EU7'...
Creating machine...
(devdock01) Local machine's public IP address is '203.158.32.35'.
(devdock01) Importing SSH key...
(devdock01) Creating server 'devdock01'...
Wrapper Docker Machine process exiting due to closed plugin server (connection is shut down)
Error creating machine: Error in driver during machine creation: unexpected EOF

Add (optional) command-line argument to specify OS image name

For now, this will only be for OS images, not customer images (I'm unsure as to just how clever the core Docker Machine logic for installing Docker actually is, but I figure most of our OS (built-in) images are probably OK.

  • Implementation
  • Documentation

@adrianvolpe, will this be sufficient for your use case?

v0.3 - Error creating machine: Error in driver during machine creation: unexpected EOF

Hi,

I've attempted creating docker hosts specifying the image and using the default image. Both attempts results in an error however the virtual machine is created in both instances. I seem to get the errors as the cloud control portal is in step 8 of 13. Could it be because docker is not installed by default on either image I tested with? I've also noticed that the SSH key is not deployed.

Attempt 1: Creation of docker machine with OS image specified:

Adrians-MacBook-Pro-2:darwin-amd64 adrian$ docker-machine create --driver ddcloud \
--ddcloud-region EU \
--ddcloud-datacenter EU7 \
--ddcloud-networkdomain 'Enterprise message routing (EMR) Development' \
--ddcloud-vlan DEV \
--ddcloud-image-name 'RedHat 7 64-bit 2 CPU' \
--ddcloud-ssh-bootstrap-password 'GsoaXXXX' \
--ddcloud-create-ssh-firewall-rule \
--ddcloud-user 'xxxxxx' \
--ddcloud-password 'xxxxxxx' \
--ddcloud-ssh-key ~/.ssh/id_rsa.gsoa-v2 \
devdock01

Running pre-create checks…
(devdock01) Will create machine 'devdock01' on VLAN 'DEV' in network domain 'Enterprise message routing (EMR) Development' (data centre 'EU7').
(devdock01) Resolving target network domain 'Enterprise message routing (EMR) Development' in region 'EU'...
(devdock01) Resolving target VLAN 'DEV' in network domain 'Enterprise message routing (EMR) Development'...
(devdock01) Resolving OS image 'RedHat 7 64-bit 2 CPU' in data centre 'EU7'...
Creating machine...
(devdock01) Importing SSH key...
(devdock01) Creating server 'devdock01'...
Error creating machine: Error in driver during machine creation: unexpected EOF
Adrians-MacBook-Pro-2:darwin-amd64 adrian$

Attempt 2: Creation of a docker host without the --ddcloud-image-name specified:

Adrians-MacBook-Pro-2:darwin-amd64 adrian$ docker-machine create --driver ddcloud \
--ddcloud-region EU \
--ddcloud-datacenter EU7 \
--ddcloud-networkdomain 'Enterprise message routing (EMR) Development' \
--ddcloud-vlan DEV \
--ddcloud-ssh-bootstrap-password 'GsoaXXXX' \
--ddcloud-create-ssh-firewall-rule \
--ddcloud-user 'xxxxxxxxx' \
--ddcloud-password 'xxxxxxxx' \
--ddcloud-ssh-key ~/.ssh/id_rsa.gsoa-v2 \
devdock02

 Running pre-create checks...
(devdock02) Will create machine 'devdock02' on VLAN 'DEV' in network domain 'Enterprise message routing (EMR) Development' (data centre 'EU7').
(devdock02) Resolving target network domain 'Enterprise message routing (EMR) Development' in region 'EU'...
(devdock02) Resolving target VLAN 'DEV' in network domain 'Enterprise message routing (EMR) Development'...
(devdock02) Resolving OS image 'Ubuntu 14.04 2 CPU' in data centre 'EU7'...
Creating machine...
(devdock02) Importing SSH key...
(devdock02) Creating server 'devdock02'...
Wrapper Docker Machine process exiting due to closed plugin server (connection is shut down)
Error creating machine: Error in driver during machine creation: unexpected EOF

Executing a check of docker-machine shows the following:

Adrians-MacBook-Pro-2:darwin-amd64 adrian$ docker-machine ls
NAME        ACTIVE   DRIVER    STATE   URL   SWARM   DOCKER    ERRORS
devdock01   -        ddcloud   Error                 Unknown   Server 'devdock01' has not been created
devdock02   -        ddcloud   Error                 Unknown   Server 'devdock02' has not been created

However in the cloud control UI I have two systems and I can log into both using the password supplied.

v0.3 - Error creating machine: Error in driver during machine creation: Request to create firewall rule in network domain '' failed with unexpected status code 400 (INVALID_INPUT_DATA): networkDomainId must be provided.

Everything is going fine through the creation of the host, but the creation of the firewall fails towards the end of the process.

docker-machine create --driver ddcloud \
    --ddcloud-region EU \
    --ddcloud-datacenter EU6 \
    --ddcloud-networkdomain 'GreenPowerFox' \
    --ddcloud-vlan 'GreenPowerNetwork' \
    --ddcloud-ssh-key ~/.ssh/id_rsa \
    --ddcloud-ssh-bootstrap-password 'throw-away-password' \
    --ddcloud-create-ssh-firewall-rule \
    mydockermachine

The output in terminal window:

$ docker-machine create --driver ddcloud \
>     --ddcloud-region EU \
>     --ddcloud-datacenter EU6 \
>     --ddcloud-networkdomain 'GreenPowerFox' \
>     --ddcloud-vlan 'GreenPowerNetwork' \
>     --ddcloud-ssh-key ~/.ssh/id_rsa \
>     --ddcloud-ssh-bootstrap-password 'throw-away-password' \
>     --ddcloud-create-ssh-firewall-rule \
>     mydockermachine
Running pre-create checks...
(mydockermachine) Will create machine 'mydockermachine' on VLAN 'GreenPowerNetwork' in network domain 'GreenPowerFox' (data centre 'EU6').
(mydockermachine) Resolving target network domain 'GreenPowerFox' in region 'EU'...
(mydockermachine) Resolving target VLAN 'GreenPowerNetwork' in network domain 'GreenPowerFox'...
(mydockermachine) Resolving OS image 'Ubuntu 14.04 2 CPU' in data centre 'EU6'...
Creating machine...
(mydockermachine) Importing SSH key...
(mydockermachine) Creating server 'mydockermachine'...
(mydockermachine) Exposing server 'mydockermachine'...
(mydockermachine) Server 'mydockermachine' has private IP '10.90.45.7'.
(mydockermachine) Server 'mydockermachine' has public IP '168.128.13.16'.
(mydockermachine) Creating firewall rule to enable inbound SSH traffic from local machine '' ('81.82.197.139') to 'mydockermachine' ('168.128.13.16':22)...
Error creating machine: Error in driver during machine creation: Request to create firewall rule in network domain '' failed with unexpected status code 400 (INVALID_INPUT_DATA): networkDomainId must be provided.

Can you help? Thanks

Create tutorial documentation

It would be great to have one or more tutorials to introduce potential users to operating Docker Machine with the ddcloud driver.

As discussed previously, we can basically create a documentation/tutorials folder and write the documentation as markdown files in it.

Are you still happy to write this tutorial, @bernard357?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.