ThoughtWorksStudios / eb_deployer

AWS Elastic Beanstalk blue-green deployment automation from ThoughtWorks Mingle Team

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

eb_deploy fails when passing in just the s3 bucket name

zaro0508 opened this issue · comments

eb_deploy fails to run when passing in the s3 bucket name as the parameter. eb_deploy setup a S3 bucket dummyebd.packages for me with a zip file. When I deploy with -p dummyebd.packages it fails with 'Unknown package file/format' error. However pass in '-p dummyebd.packages/4646cfbf9c26cd04e7a1698b978c1c42-dummyebd.zip' will work. The documentation and help seem to indicate that you only need to specify the bucket name which would make more sense than having to include the object if you need to setup on a CI system.

Here is the trace:
~/w/dummyebd ❯❯❯ eb_deploy -p dummyebd.packages -e dev
Found configuration at config/eb_deployer.yml.
/Users/zaro0508/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/eb_deployer-0.6.6/lib/eb_deployer/application.rb:29:in create_version': Unknown package file/format: "dummyebd.packages" (RuntimeError) from /Users/zaro0508/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/eb_deployer-0.6.6/lib/eb_deployer.rb:232:in deploy'
from /Users/zaro0508/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/eb_deployer-0.6.6/lib/eb_deployer.rb:276:in cli' from /Users/zaro0508/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/eb_deployer-0.6.6/bin/eb_deploy:11:in <top (required)>'
from /Users/zaro0508/.rbenv/versions/2.3.4/bin/eb_deploy:22:in load' from /Users/zaro0508/.rbenv/versions/2.3.4/bin/eb_deploy:22:in

'

I'm pretty sure this is working as designed. eb_deploy --help defines the format once at the end of the-p explanation, including an example, and then again at the end of the doc.

Usage: eb_deployer [options]
    -p, --package [FILE/S3_OBJECT]   Package to deploy, can be a war file for java application, or yaml 
 specification for package location on S3, or a S3 object & bucket name separated by colon, e.g. 
 bucket_name:key_name
    -e, --environment [ENV_NAME]     (Defaults to 'dev') Environment on which to operate (e.g. dev, 
 staging, production). This must be defined in 'environments' section of the config file
    -c, --config-file [FILE]         eb_deployer config file. Default location is config/eb_deployer.yml
    -d, --destroy                    Destroy all Elasticbeanstalk environments under the application which have 
 specified environment as name prefix
    -s, --stack-name [STACK_NAME]    CloudFormation stack name to use. If not specified, defaults to {app}-{env_name}
        --skip-resource-stack-update Skip cloud-formation stack update. (only for extreme situation like 
 hitting a cloudformation bug)
        --component [COMPONENT]      Specify which component to deploy
    -v, --version                    Print current version
        --debug                      Output AWS debug log
    -h, --help                       help

S3 object package format: s3_bucket_name:s3_object_key
YAML package file format:
s3_bucket: <bucket_name>
s3_key: <object_path>
*$```