Releases: efrecon/machinery
Releases · efrecon/machinery
Version 0.7
- Suppress most unexpected characters from temporary paths so as to minimise
problems (scp uses, for example, the colon sign as a separator between the
host and the path). - Default is now to create and use a machine storage cache in the same directory
as the main YAML cluster file. This is a breaking change, but eases project
migration between machines. To revert to prior behaviour and keep using
machinery
on an existing cluster, use the global option-storage
and set
it to something like~/.docker/machine
, which is the default location for
machine. - Machine specification now takes a list of
files
specifications. These are
formatted as the path to the source, possibly followed by a colon:
character and the path to the destination; modelled after the volume mounting
command ofdocker
. These files (or directories) will be copied early in the
initialisation process. They are meant to provide a quick way to initialise
machines and ensure that they, for example, host all necessary secrets, ready
to be mounted onto the containers running on those machines. - Preliminary support for running from windows, using the
DockerToolbox. - Ability to use another machine as a cache for the storage of images before
they are transmitted to the remote machines in the cluster. This is a
breaking change as it modifies the semantics of the-cache
global option
(contains the name of the machine used for cache). This new behaviour is
necessary for the windows port as the daemon runs within a machine created in
VirtualBox.
Version 0.6
- Fixed better exit from interactive ssh sessions.
- Refactoring all command-line parsing and operations under global
cli
command in order to make some of its services available to
other modules. - Implementation of a Web API, using a vocabulary similar to the one
from the command line. - Adding commands to search for components (by name patterns) and to
execute docker commands on groups of components (by the same name
patterns). - Adapting to new options in latest machine, which leads to quicker
machine creations as setting labels does not need a restart anymore. - Dynamically adapt to the OS on the created virtual machine when
installing necessary tools such as rsync. - Adding
-restrict
option toforall
andsearch
to restrict to a
subset of matching machine name patterns within the cluster. - Now accepting wildcards instead of (shortened) machine names in most
CLI commands. Most usefull is forps
sub-command: when called
without arguments it will return the components in the swarm, when
called with*
(matching all machine names), it will list all
components in the cluster. - Added a
ls
CLI sub-command, this will print out the list of
cluster machines and their state. - Use a dash-led marker at the beginning of YAML files to
automatically pick up the cluster description from the current
directory as a default failover. - Adding an
addendum
section to VMs, this contains a list of scripts
(or similar) that will automatically be run once the machine has
been created. They can be used to control access to ports,
etc. using provider-specific command-line tools.
Version 0.5.1
- Exported shares are now resolved relatively to the directory of the
main cluster description file, which helps migrating project trees
if necessary. - Mounted shares (still VirtualBox only) will persist reboots of the
virtual machines through adding a specific section to
/var/lib/boot2docker/bootlocal.sh or creating the file if necessary. - Shares can now have a type which defaults properly to vboxsf on the
virtualbox driver and to (new type) rsync on all other drivers.
This will use rsync to copy the content of a host directory at VM
creation and to copy back the content of the VM directory using the
new sub-command calledsync
. Runningmachinery sync
as acron
job is then probably a good solution. - Fixed bug that would prevent
machinery
to mount some of the shares
usingvboxsf
. - Adding support for human-readable sizes, e.g.
10G
for 10 gigabytes
(powers of 1000), or1GiB
for 1 gigibytes (powers of 1024
instead!). - Adding support for user-specified
ssh
command, which will be used
in place of the one that is guessed from introspection of
docker-machine ssh
whenever possible. - Using the new
docker-machine scp
sub-command for file copy
operations when it exists. - Added possibility to recreate the shares and mount them from within
areinit
call. This isn't entirely tested yet and will fail
reusing shares if they had already been created in the past. - Added possibility to read program options from configuration file
through-config
global option (handy when specifying complex ssh
commands for example). - Added
ps
command to return the status of the whole cluster (via
the swarm master). ssh
sub-command now can be called without arguments to get a
prompt into virtual machine (thus being a (handy?) relay to
docker-machine ssh
).
Version 0.5
- Fixed a bug when swarming compose project files: these would be started up on
the host and not within the cluster! - Added possibility to pass project name or substitution instructions to YAML
compose files being swarmed into the cluster. - Fixed bug so that
.env
files pointed by project files that should be
substituted will also be substituted and will be found by the project file
when running compose. - Fixed bug where compose projects would not be properly resolved when started
usingswarm
. - (Finally?) fixing login/pull bug so
machinery
will now be able to
properly download from private repositories. - Adding support for aliases, a new key called
aliases
under the VM
dictionary in the YAML file. This should be a list of names that
can also be used to point at the machine from the command line, but
will also appear in the discovery mechanisms. - Squeezed away a number of synchronisation bugs that would occur on
slow hosts, we typically wait for good markers and retry a number of
times sensitive operations. - The default is now to use the locally cached images when
initialising virtual machines. This will speed up initialisation in
a number of cases. Furthermore, this allows to push private images
on the machines withouth having to transfer repository credentials
or similar. - Factored away UNIX/linux specific commands into a separate package
to keep down the size of the main code-base.
Version 0.4.1
v 0.4.1
- Added support for passing docker-compose commands when swarming in
project files: -kill, -start, -rm, etc. - Fixed output bug so we get (again!) a list of running components
once compose operations have ended.
v 0.4 (never released)
- Added support for substitution of (local) environment variables as a
workaround for this
highly-requested missing
feature of compose. However, this means that, when crafting compose project
files to use the feature, you will not be able to use them directly outside of
machinery
, unless you run them through
envsubst - Adding support for "poor man's discovery".
machinery
automatically declares
and caches environment variables with network information for the created
machines. These variables can be, for example, used when starting components
through compose (see above). - Adding support for logging in at one or several registries at the
docker
daemon running within a specific virtual machine. Note that you will have to
start the components under the same user than the one that was automatically
logged in. - Adapting to new versions of
docker
,docker-machine
anddocker-compose
. - Automatically trying to update a machine to the latest
boot2docker.iso
when the installed version ofdocker
is lower than the one of the local
installation. - Arrange for the temporary files created for performing environment variable
substitution to point back correctly to the source files when using extending
services with compose. - Adding an
env
command to export all machinery network details to shell. - Extending the
swarm
command so it takes a list of compose project files, or
indirections to compose project file in a format similar to thecompose
key
of the YAML syntax. These projects will be sent to the swarm master for
creation. - Adding a
reinit
command to trigger some of the machine initialisation steps,
such as image downloading or component creation.