Giter Club home page Giter Club logo

yoda's Issues

Add possibility of controlling start flow

Sometimes you need control start / restart flow of container. For example, restart each one by one not once on deploy. Allow this possibility with configurable Startfile config

Simplify deploy script

PATH=\$PATH:~/.yoda ENV=$env GIT_BRANCH=$git_branch REVISION=$rev $custom_args yoda start
Its possible to simplify this call when you switching to selected revision or branch GIT_BRANCH and REVISION could be found automatic using .yodarc definition

Use tput instead of escape sequences

Sometimes its buggy when using deploy command. It displays with broken new lines without refreshing old ones. Its better to replace escaping characters with tput command to fix cursor position and refresh screen on change.

Validate Startfile

We should validate flow in Startfile before anything else cuz we can use undefined containers names there and affect starting

Make yoda start accept only name of service

You can start one container using yoda start container.0 now. But its better way to start all types of containers for current environment just using its name. For example yoda start container that will start all extra containers with same type too.

Dont up rest of containers if its empty

Now if we have all containers described in flow of Startfile we also do docker-compose up for rest of containers, so it runs all containers at once with message like 'up to date'.

Deploy on same node different project same time

When you deploy same node with different projects same time it can be a problem while each project uses own yoda version. It needs to change that behavior using installation of specified version with yoda and use this bin file on each deploy

Using of ENV%%.* is unclear

In start.sh we using ${ENV%%.*}. Its unclear because there is no information in documentation. Think about it and make it more clear that we can have environment and subenv for changing services and number of its services

Fix deploy rerendering

When you press enter after deploy its rerender only since Elapsed block. Rerender whole screen is better

Add --no-cache for yoda build command

Sometimes you need to rebuild Dockerfile without using any cache, not like --rebuild. think about adding this parameter or change rebuild behaviour

Automated switching to current project version

When you init one project with custom Yoda version and Yoda is updated. You could have conflicts.
So its good idea to do it more clever. So when you run Yoda inside current project you just check project version and switch yoda git path to this tag and fork again with right version.

Add info about log path

When you deploy and deploy fails you dont know where is to find log. Add hint with log path to CLI command output

Add documentation about namespaces

Environment can have namespace followed after dot, for example: production.master to allow make different nodes with different bunch of services running on it.

Build only images you need

Yoda builds now every image on node also if this image will not be used. Build only images that will be used on current node with selected containers to run as services.

Optimize image checking in build.sh

Its checking docker images -q [image_id] on each iteration of images to build.
Simplify this iteration to get built image once and rebuild only needed without unnecesery checks

image: foo can't be changed in container.$ENV.yml

For example:
in container.yml

image: some_image_name_that_is_in_my_Byildfile

in another file container.dev.yml

image: some_another_image_name_that_also_in_my_Byildfile

Output from yoda compose command will be like this

image: ${COMPOSE_PROJECT_NAME}/some_image_name_that_is_in_my_Byildfile:${REVISION}
image: some_another_image_name_that_also_in_my_Byildfile

Possible solution:

Redefining can be done by passing multiple compose files for each docker-compose commandс

And this solution has some cool feature like deep-merge for incoming compose files:

compose.first.yml

environment:
  FOO: foo
  BAR: bar

compose.second.yml

environment:
  BAR: baz

docker-compose -f compose.first.yml -f compose.second.yml ... will use this file

environment:
  FOO: foo
  BAR: baz

Allow custom yml for dev environment

Now there is only one YML template for container. But what if in development you need to add volumes of source code and dont need it in production?

Make hostname immutable

Its better to make hostname immutable like container_name in container.yml. Because it has all parts HOSTNAME prefix and container name

Yoda deploy --host regexp values

Add possibility to pass regexp values to --host parameter on yoda deploy command. It will allow to deploy on bunch of servers by custom pattern.

Nested images issue

When you create image inside project that inherti previous image created you can get bug when you cant build it cuz wrong sequence of building in that case

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.