Originate / exosphere

A modern cloud-based micro-service framework
MIT License
17 stars 6 forks source link

Long term solution for dbs and third party dependencies #559

Closed hugoesthere closed 7 years ago

hugoesthere commented 7 years ago

Per our discussion here: https://github.com/Originate/exosphere/issues/508, we are going with a more permanent solution to third party dependencies in production. What do we think about this proposed format in application.yml taken from the discussion in #508:

development:
  dependencies:
    - name: exocom
      version: 0.24.0
    - name: mongo
      version: 3.4.0
       silent: true
       config:
          ...

production:
  dependencies
    - name: exocom
      version: 0.24.0
    - name: mongo
      version: 3.4.0
      config:
         ...
charlierudolph commented 7 years ago

To be clear: development refers to using exo run and production refers to using exo deploy?

For the first version. I suggest no new features: no external in local, no overriding the version in dev, no type field

I would also prefer that dependencies only has name/version (as in this PR).

For development/dependencies, I would prefer that we move the silent and config options there, but don't introduce a type as I don't think its needed to retain current functionality.

For production/dependencies. We would move the external-in-production flag there and probably rename to external.

I think that would be a minimal first start and we can build on it after that.

hugoesthere commented 7 years ago

Ok, I've updated the comment above to reflect that. ~Renamed development -> local.~ Do we allow dependencies to be listed under production and not in dependencies?

charlierudolph commented 7 years ago

In the example shouldn't production be production/dependencies?

Hmm. Thoughts on not having the top level dependencies? Since its an array, I think overriding is not very straightforward. We only save a few lines and could have the entire dependency config be in local/dependencies and production/dependencies

hugoesthere commented 7 years ago

Yeah I agree, it's just kind of a source of confusion right now. Let's just get rid of it.

hugoesthere commented 7 years ago

At which point couldn't we also just get rid of the external flag? That way you only list a dependency under production/dependencies if you need it, and you don't otherwise.

charlierudolph commented 7 years ago

Perfect. Looks good to me. Do we have any current production config for dependencies?

hugoesthere commented 7 years ago

Not currently, but I assume as we move onto supporting RDS probably

charlierudolph commented 7 years ago

Okay cool. Just wanted to check that for production dependencies we don't currently need to add the config property.