scaleway / docker-machine-driver-scaleway

:whale: Scaleway driver for Docker Machine
MIT License
249 stars 34 forks source link

Problem creating non-default instance type #40

Closed juskrey closed 5 years ago

juskrey commented 8 years ago

Trying to create a machine with VC1M instance type like

docker-machine create -d scaleway --scaleway-name="my-docker1" --scaleway-commercial-type="VC1M" --scaleway-debug my-docker1

Produces error:

Error creating machine: Error in driver during machine creation: The sum of volumes sizes of VC1M instances must be between 51GB and 100GB```
moul commented 8 years ago

Hi @juskrey,

Yes, the API recently changed on this point and we now need to automatically append new disks to match the requirements.

We will fix it asap

moul commented 8 years ago

Thanks @QuentinPerez for your fix,

Can you explain how to use your workaround ?


In the meantime, I'm thinking about how to hide this complexity

QuentinPerez commented 8 years ago

Hi @juskrey, thank you

Now you can add an additional volume with --scaleway-volumes like that:

docker-machine create -d scaleway --scaleway-name="my-docker1" --scaleway-commercial-type="VC1M" --scaleway-volumes="50G" --scaleway-debug my-docker1
pascalandy commented 8 years ago

When I run:

docker-machine create -d scaleway --scaleway-name="SVR-54321" --scaleway-commercial-type="VC1S" --scaleway-volumes="50G" --scaleway-debug SVR-54321

the system keep responding: flag provided but not defined: -scaleway-debug

When I remove -scaleway-debug, the system keep responding: flag provided but not defined: -scaleway-volumes

I also open a ticket via my account. Thanks!

QuentinPerez commented 8 years ago

Hi @pascalandy, are you using the latest version ?

When I tried with the latest version, I have this.

docker-machine create -d scaleway --scaleway-name="SVR-54321" --scaleway-commercial-type="VC1S" --scaleway-volumes="50G" --scaleway-debug SVR-54321
Running pre-create checks...
Creating machine...
(SVR-54321) Creating SSH key...
(SVR-54321) Creating server...
Error creating machine: Error in driver during machine creation: VC1S instances are limited to 50GB volumes

It's because you can not add extra volumes with VC1S instance.

To install the latest version, pull this repository and go install

pascalandy commented 8 years ago

I've this: ~|⇒ brew install scaleway/scaleway/docker-machine-driver-scaleway --HEAD Warning: scaleway/scaleway/docker-machine-driver-scaleway-1.0.2 already installed


About:

It's because you can not add extra volumes with VC1S instance.

I get it.

EDIT!: What about the image error?


About:

To install the latest version, pull this repository and go install

This is what I did:

scaleway|⇒ ls
docker-machine-driver-scaleway
scaleway|⇒ cd docker-machine-driver-scaleway 
docker-machine-driver-scaleway|master ⇒ ls
Godeps    README.md driver    main.go   vendor
LICENSE   contrib   examples  misc
docker-machine-driver-scaleway|master ⇒ go install
main.go:4:2: cannot find package "github.com/docker/machine/libmachine/drivers/plugin" in any of:
    /usr/local/Cellar/go/1.6/libexec/src/github.com/docker/machine/libmachine/drivers/plugin (from $GOROOT)
    ($GOPATH not set)
main.go:5:2: cannot find package "github.com/scaleway/docker-machine-driver-scaleway/driver" in any of:
    /usr/local/Cellar/go/1.6/libexec/src/github.com/scaleway/docker-machine-driver-scaleway/driver (from $GOROOT)
    ($GOPATH not set)
docker-machine-driver-scaleway|master ⇒ 

I'm lost here ... $GOPATH not set.

Cheers!

QuentinPerez commented 8 years ago

Ok, your golang workflow is not well configured, (you can remove your docker-machine-driver-scaleway/) To configure your environment, you can do it like that

$ cd                     # go to home directory
$ mkdir go               # create your gopath directory
$ export GOPATH=$(pwd)/go # you can add this in your .{zsh,bash,...}rc
$ go get -u github.com/scaleway/docker-machine-driver-scaleway # pull the latest version from github

And retry your docker-machine command.

For the next time, if you want to get the latest version you can do this

$ cd $GOPATH/src/github.com/docker-machine-driver-scaleway
$ git pull
$ go install
pascalandy commented 8 years ago

I'm still having issue with my installation.

~|⇒ cd $GOPATH/src/github.com/docker-machine-driver-scaleway
cd: no such file or directory: /src/github.com/docker-machine-driver-scaleway

# it's under scaleway!

~|⇒ cd go/src/github.com/scaleway/docker-machine-driver-scaleway

docker-machine-driver-scaleway|master ⇒ ls
Godeps    README.md driver    main.go   vendor
LICENSE   contrib   examples  misc

docker-machine-driver-scaleway|master ⇒ git pull
Already up-to-date.

docker-machine-driver-scaleway|master ⇒ go install
main.go:4:2: cannot find package "github.com/docker/machine/libmachine/drivers/plugin" in any of:
    /usr/local/Cellar/go/1.6/libexec/src/github.com/docker/machine/libmachine/drivers/plugin (from $GOROOT)
    ($GOPATH not set)
main.go:5:2: cannot find package "github.com/scaleway/docker-machine-driver-scaleway/driver" in any of:
    /usr/local/Cellar/go/1.6/libexec/src/github.com/scaleway/docker-machine-driver-scaleway/driver (from $GOROOT)
    ($GOPATH not set)

I'm sorry for this, I have no anchors/knowledge about how Go is supposed to be installed.

Cheers!

QuentinPerez commented 8 years ago

You must export your $GOPATH, please follow my instructions above (just the first block)

moul commented 8 years ago

@QuentinPerez, as the project is still young, we need to release new binaries as soon as we fix blocking issues and keep the manual install only for small improvements

moul commented 8 years ago

@pascalandy, here is a new release: https://github.com/scaleway/docker-machine-driver-scaleway/releases/tag/v1.2.0

@QuentinPerez, can you add a "build from source" section in the README ?

pascalandy commented 8 years ago

OK guys, I rm the old repo to ensure I use v1.2.0

Got another kind of error: expected 'package', found 'IDENT' spackage

docker-machine-driver-scaleway-1.2.0|⇒ export GOPATH=/users/pascalandy/go/
docker-machine-driver-scaleway-1.2.0|⇒ go install
main.go:5:2:
/usr/local/Cellar/go/1.6/libexec/src/github.com/scaleway/docker-machine-driver-scaleway/driver/scaleway.go:1:1: expected 'package', found 'IDENT' spackage
docker-machine-driver-scaleway-1.2.0|⇒ ls -la
total 72
drwxr-xr-x@ 14 pascalandy  staff    476  8 May 09:43 .
drwxr-xr-x   4 pascalandy  staff    136  8 May 16:20 ..
-rwxr-xr-x@  1 pascalandy  staff    331  8 May 09:43 .gitignore
-rwxr-xr-x@  1 pascalandy  staff    821  8 May 09:43 .goxc.json
-rwxr-xr-x@  1 pascalandy  staff    518  8 May 09:43 .travis.yml
drwxr-xr-x@  4 pascalandy  staff    136  8 May 09:43 Godeps
-rwxr-xr-x@  1 pascalandy  staff   1111  8 May 09:43 LICENSE
-rwxr-xr-x@  1 pascalandy  staff  13164  8 May 09:43 README.md
drwxr-xr-x@  3 pascalandy  staff    102  8 May 09:43 contrib
drwxr-xr-x@  4 pascalandy  staff    136  8 May 09:43 driver
drwxr-xr-x@  5 pascalandy  staff    170  8 May 09:43 examples
-rwxr-xr-x@  1 pascalandy  staff    209  8 May 09:43 main.go
drwxr-xr-x@  3 pascalandy  staff    102  8 May 09:43 misc
drwxr-xr-x@  4 pascalandy  staff    136  8 May 09:43 vendor

I keep the faith :-p

moul commented 8 years ago

@pascalandy, I introduced a typo (just removed, try again please)

pascalandy commented 8 years ago

go install worked.

Tried to launch a host via docker-machine but it failed.

So, I re-installed docker-machine-driver-scaleway via brew. This is what I get:

driver|⇒ brew install scaleway/scaleway/docker-machine-driver-scaleway
==> Installing docker-machine-driver-scaleway from scaleway/scaleway
Error: You must `brew link docker-machine` before scaleway/scaleway/docker-machine-driver-scaleway can be installed
driver|⇒ brew tap scaleway/scaleway
Warning: Tap scaleway/scaleway already tapped.
driver|⇒ brew install scaleway/scaleway/docker-machine-driver-scaleway --HEAD
==> Installing docker-machine-driver-scaleway from scaleway/scaleway
Error: You must `brew link docker-machine` before scaleway/scaleway/docker-machine-driver-scaleway can be installed

driver|⇒ brew link docker-machine
Linking /usr/local/Cellar/docker-machine/0.6.0...
Error: Could not symlink bin/docker-machine
Target /usr/local/bin/docker-machine
already exists. You may want to remove it:
  rm '/usr/local/bin/docker-machine'

To force the link and overwrite all conflicting files:
  brew link --overwrite docker-machine

To list all files that would be deleted:
  brew link --overwrite --dry-run docker-machine

driver|⇒ brew link --overwrite docker-machine
Linking /usr/local/Cellar/docker-machine/0.6.0... 4 symlinks created
driver|⇒ brew install scaleway/scaleway/docker-machine-driver-scaleway --HEAD
==> Installing docker-machine-driver-scaleway from scaleway/scaleway
==> Cloning https://github.com/scaleway/docker-machine-driver-scaleway.git
Cloning into '/Library/Caches/Homebrew/docker-machine-driver-scaleway--git'...
remote: Counting objects: 434, done.
remote: Compressing objects: 100% (322/322), done.
remote: Total 434 (delta 116), reused 331 (delta 87), pack-reused 0
Receiving objects: 100% (434/434), 773.74 KiB | 239.00 KiB/s, done.
Resolving deltas: 100% (116/116), done.
Checking connectivity... done.
==> Checking out branch master
==> go build -o /usr/local/Cellar/docker-machine-driver-scaleway/HEAD/bin/docker-machine-driver-scaleway ./main.go
Last 15 lines from /Users/pascalandy/Library/Logs/Homebrew/docker-machine-driver-scaleway/01.go:
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/pkg.go:947 +0x4397
main.loadImport(0xc82016dec1, 0x33, 0xc82015ca80, 0x77, 0xc820183400, 0xc8201b94e8, 0xc820147710, 0x1, 0x1, 0x1, ...)
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/pkg.go:377 +0x84e
main.(*Package).load(0xc820183400, 0xc8201b94e8, 0xc820185180, 0x0, 0x0, 0xc82019a2e0)
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/pkg.go:947 +0x4397
main.goFilesPackage(0xc82000a220, 0x1, 0x1, 0x3)
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/build.go:829 +0x8f5
main.packagesAndErrors(0xc82000a220, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/pkg.go:1662 +0x12c
main.packagesForBuild(0xc82000a220, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/pkg.go:1694 +0x82
main.runBuild(0x886ae0, 0xc82000a220, 0x1, 0x1)
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/build.go:442 +0x8d
main.main()
    /usr/local/Cellar/go/1.6/libexec/src/cmd/go/main.go:181 +0x783

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/scaleway/homebrew-scaleway/issues

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:353:in `open_http': 422 Unprocessable Entity (GitHub::Error)
Validation Failed
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:709:in `buffer_open'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:210:in `block in open_loop'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:208:in `catch'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:208:in `open_loop'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:149:in `open_uri'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:689:in `open'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:30:in `open'
    from /usr/local/Library/Homebrew/utils.rb:555:in `open'
    from /usr/local/Library/Homebrew/utils.rb:586:in `issues_matching'
    from /usr/local/Library/Homebrew/utils.rb:618:in `issues_for_formula'
    from /usr/local/Library/Homebrew/exceptions.rb:222:in `fetch_issues'
    from /usr/local/Library/Homebrew/exceptions.rb:218:in `issues'
    from /usr/local/Library/Homebrew/exceptions.rb:263:in `dump'
    from /usr/local/Library/brew.rb:132:in `rescue in <main>'
    from /usr/local/Library/brew.rb:28:in `<main>'
driver|⇒
pascalandy commented 8 years ago

Hey guys!

May I asked if I can count on docker-machine scaleway? I really need to put swarm at work for our production needs. Or if docker-machine is not ready, I would appreciate help about moving on and use Swarm with C2s :)

BTW, I tried Rancher and I was impressed, but they don't support Compose V2 at this point.

Cheers!

QuentinPerez commented 8 years ago

Hi @pascalandy can you retry brew install scaleway/scaleway/docker-machine-driver-scaleway ?

pascalandy commented 8 years ago

Hey Quentin,

I tried hard for 90 minutes to make it work but I'm running after my tail :-(

1) Go

export GOPATH=/usr/local/Cellar/go &&
cd $GOPATH/1.6/libexec/src/github.com/scaleway/docker-machine-driver-scaleway &&
git pull &&
go install

The system does not return any confirmation or error. I assume it's all good here. Go works fine.

2) Re-installing via brew

brew install scaleway/scaleway/docker-machine-driver-scaleway --HEAD

Damm ... errors, see here: https://gist.github.com/pascalandy/b43c4c4cc20ce2a5afccb8c79410f20f

3a) Driver

docker-machine-driver-scaleway|master ⇒ docker-machine create -d scaleway -h
Driver "scaleway" not found. Do you have the plugin binary accessible in your PATH?

3b) I see the binary here: /usr/local/Cellar/go/1.6/libexec/bin/docker-machine-driver-scaleway

EDIT — It would be great to have a video cast about the installation. There is too many moving parts. I never messed this much with a CLI before.

Are the info I provided help ?

QuentinPerez commented 8 years ago

Hi @pascalandy,

Can you just try:

$ brew update
$ brew upgrade scaleway/scaleway/docker-machine-driver-scaleway

We will add the instructions to uprade docker-machine-driver-scaleway from homebrew. 😊

pascalandy commented 8 years ago

Hi @QuentinPerez,

1) I can't upgrade as I can't install.

2) When I enter: $ brew install scaleway/scaleway/docker-machine-driver-scaleway

here is the issue again - https://gist.github.com/pascalandy/75a47e7450584c34769d700dd74e01ea

3) So it goes back to the issue I had 17 days ago. https://github.com/scaleway/docker-machine-driver-scaleway/issues/40#issuecomment-217748364

pascalandy commented 7 years ago

Let's close this. The readme is now clearer to follow :)