Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the correct way of sharing your elasticbeanstalk configuration with your team?

I am looking for a way to share the EB configuration so anyone in my team with valid aws creds can deploy the code. By default, EB adds following to your .gitignore file.

# Elastic Beanstalk Files
.elasticbeanstalk/*
!.elasticbeanstalk/*.cfg.yml
!.elasticbeanstalk/*.global.yml

Do I need to check-in these files to share it with the team?

like image 509
Nirav Gandhi Avatar asked Oct 30 '17 11:10

Nirav Gandhi


People also ask

Where should an Elastic Beanstalk configuration file named?

ebextensions, see the Elastic Beanstalk Configuration Files Repository . Location – Place all of your configuration files in a single folder, named . ebextensions , in the root of your source bundle.

What is the configuration template within Elastic Beanstalk?

The Elastic Beanstalk console and documentation often refer to configuration templates as saved configurations. When you set configuration options in a saved configuration (configuration template), Elastic Beanstalk applies them with a particular precedence as part of applying options from multiple sources.


2 Answers

In my opinion, AWS royally messed up with their .gitignore defaults. This was confusing at first, because it seemed like it was there for a good reason. We couldn't find a good reason. Maybe it was just a precaution so you didn't commit something you shouldn't. However, firstly, modifying a project's .gitignore is not something it should be doing by default, in my opinion. And secondly, no one should be committing code they haven't reviewed.

As Kush notes in his reply, you can add the files into a nested directory which would be tracked by your VCS. I'm assuming the reason for this is so that different developers can maintain different configurations. We have zero use for anything remotely resembling this, but it's worth noting as I'm sure someone may.

We've completely removed these entries from our project and commit the entire .elasticbeanstalk and .ebextensions directories.

like image 189
Jacob Thomason Avatar answered Oct 11 '22 23:10

Jacob Thomason


Assuming you have CLI Access you can create template and share a command like:

eb config save dev-env --cfg prod

Now, open this file in a text editor to modify/remove sections as necessary for your production environment.

Note: AWSConfigurationTemplateVersion is a required field. Do not remove it from the configuration file.

Checking Configurations into Version Control If you want to check in your saved configurations so that anyone with access to your code can use the same settings in their own environments or if you want to track different versions of the saved configurations, move the file to the .elasticbeanstalk/folder directory. Saved configurations are located in the .elasticbeanstalk/saved_configs/ folder. By moving the configuration file up one level into the .elasticbeanstalk/ folder, the file can be checked in and will still work with the EB CLI. After you move the file, you must add and commit it.

Refer this AWS Blog Post

like image 37
Kush Vyas Avatar answered Oct 12 '22 01:10

Kush Vyas