dimensiondataresearch / docker-machine-driver-ddcloud Goto Github PK
View Code? Open in Web Editor NEWDocker Machine driver for Dimension Data CloudControl
License: MIT License
Docker Machine driver for Dimension Data CloudControl
License: MIT License
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
When I create new host with the dimension data machine driver I always receive a host with 10 gb disk size and there is no possibility to set the disk size when creating the machine.
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.
@adrianvolpe, will this be sufficient for your use case?
machinelib
already has functionality to do this, we just need to wire it up.
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.
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$
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.
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
Will add command-line argument ddcloud-use-private-ip
. If this flag is set, then no NAT or firewall rules will be created for the target server.
This is to align with best practice on MCP documentation. By using MCP_ prefix we encourage our partners to use their Provider MCP or other forms of white-label services.
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.