v0.12.90
Pre-release
Pre-release
This is a pre-release in preparation for v0.13.
This release adds an all-new template and variables system built on top of the workflow configuration mechanism. It also brings numerous improvements throughout AliECS, including reorganized path handling, task cleanup facilities, FLP Suite workflow versioning, an environment fast destroy operation, as well as API extensions for interfacing with the variables system.
- Variables system:
- [coconut] Print variables in coconut env show
- [coconut] Variables output in role query
- [coconut] Acquire --extra-vars when creating environment
- [coconut] Correctly handle env create with empty extra-vars
- [coconut] Extract a new componentcfg package from configurationutil.go
- [coconut] Add root role column in coconut env list
- [coconut] Sort printed maps by key
- [common] Make gera.Map implement yaml.Unmarshaler
- [core] New hierarchical property map
- [core] Add WrappedAndFlattened to hierarchical map
- [core] Extend o2control.proto to accept environment properties
- [core] Update proto and regenerate
- [core] Add StringMap to gera package
- [core] Add support for defaults and vars in confsys
- [core] Implement variables KV in workflow
- [core] Add properties to TaskInfo in protofile
- [core] Task properties
- [core] Use the full roleBase unmarshal path in aggregatorRole
- [core] Output vars in GetEnvironment
- [core][OCTRL-73] Add properties to running task
- [core][OCTRL-73] Add properties to buildcommand properties
- [core] Correctly unmarshal properties map into task.Class
- [core] Add Copy method to gera.StringWrapMap
- [core] Add defaults map to task template
- [core] gera.FlattenStack convenience function
- Reorganized path handling:
- [config] Add trailing slash to viper defaultRepo field
- [core] Manage a single writable directory path
- [misc] Update default executor path to a generic one
- [repos] Consistent trailing slash use for repos
- Mesos lost task cleanup on startup:
- [core] Persistent FID with reconciliation for previous running tasks
- [core] Repos and runcounter.txt are stored inside coreWorkingDir
- [core] Sanitize viper paths to remove trailing slash
- [core] Use filepath.Join to concatenate paths
- [core] Use path/filepath to remove trailing '/'
- [core] Remove repositoriesPath from configuration
- [core] Cleaner reposPath approach in service
- [core] Use GetReposPath in repos manager
- [core] Use service to get reposPath
- Mesos task cleanup on incoming UNIX signals:
- [core] Handle UNIX signals
- [core] Use taskman to cleanup and to get tasks
- [core] Use proper exit status
- Support for per-repo default revision (FLP Suite workflow versioning):
- [core+coconut] Introduce global default branch for repos
- [core+coconut] Add default bracnh option for new repos and improve API and coconut
- [core] Support perisistent default revisions per repo
- [core] Update backend when a default-revision is explicitly set
- [docs] Improve coconut repo add help dialogue
- Template engine:
- [core] Implement new template engine
- [core] Correctly handle precedence of template resolution
- [core] Template support in constraints and objStack
- [core] Add support for wrapping slices in template
- [core] Parametrize basic task arguments and env vars
- [core] Run template system on Task.properties
- [core] Implement GetKeysByPrefix for all configuration.Sources
- [core] Implement confsys.GetComponentConfiguration
- [core] Implement To/FromJson and GetConfig functions for template system
- [core] Template Task.Value and User
- [core] Allow variables to control the expansion of an iteratorRole
- [core] Fix issue with user provided vars not accessible
- [core] Ensure correct template output when the result is a slice
- [core] Fix bug with nil TaskCommandInfo preventing deployment
- [core] Facilities for pushing runtime variables back up the stack
- [core] Propagate task result to parent taskRole
- [core] Include task class defaults in varStack for TaskCommandInfo
- Environment fast destroy feature:
- [coconut][OCTRL-206] Add option in coconut to allow destroy env in running state
- [core][OCTRL-206] Update core to destroy running env if specified
- Miscellaneous:
- [build] Make "make generate" independent from $PATH and $GOPATH
- [build] Improve Makefile output
- [core] New proposed protofile for DCS integration
- [core] Move NewUnixTimestamp to common/utils
- [core] Suppress periodic output unless veryVerbose=true
- [executor] Lower logrus severity of task stout/stderr
- [executor] Make incoming MESSAGE handling concurrent
- [executor] Ensure correct log level for task stdout/stderr