- Support runtime_platform option
- Support ephemeral_storage option in ECS scheduler
- Fix keyword arguments for Ruby 3.0
- Drop support for Ruby 2.5 (EOL on 2021-04-05)
- Fix keyword arguments for Ruby 3.0
- Support protocol_version and matcher option of ALB target groups
- Support tags for task definition and propagate them to ECS tasks
- Now all created ECS services and launched ECS tasks have
propagate_tags=TASK_DEFINITION
parameter.
- Now all created ECS services and launched ECS tasks have
- Support repository_credentials
- Support capacity provider strategy
- Do not try to update assign_public_ip when it is not changed
- Support more overrides options for
hako oneshot
--app-cpu
,--app-memory
and--app-memory-reservation
are added
- Show
--health-*
options in dry-run
- Fix comparison of
system_controls
parameter
- Support
system_controls
parameter in container definition
- Support
depends_on
parameter in container definition
- Change threshold for detecting a deployment failure
- See this commit for details
- Skip creating load balancer on dry-run
- Regression in v2.9.0
- Add
remove_starting
method to Hako::Script which is called whenhako remove
starts - Support sharing load balancers
- When
elb_v2
field hasload_balancer_name
but doesn't havetarget_group_name
, hako will manage only the target group and doesn't touch the load balancer. - This is useful when one load balancer is shared with multiple target groups and some of them is deployed by hako.
- See examples/hello-shared-alb.jsonnet
- When
- When
load_balancer_name
is specified andtarget_group_name
is not, the defaulttarget_group_name
is changed fromload_balancer_name
tohako-#{app_id}
.- If you use
load_balancer_name
field only, you must specifytarget_group_name
field too.
- If you use
- Add
deploy_failed
method to Hako::Script which is called whenhako deploy
fails - Add .app.tag field to definition to specify the default value of app container's tag
- The default value was fixed to "latest", but you can now specify custom default value.
- Support
entry_point
parameter - Support ECS Service Discovery
- Set
platform_version
correctly
- Avoid updating service when
platform_version
is not specified - Keep essential parameter in
hako oneshot
- Show more information about tasks in
hako status
- Support
essential
parameter for each container- The default value remains
true
- The default value remains
- Stop trying to deregister non-existent scalable target on
hako remove
- Update service when
health_check_grace_period_seconds
changes
- Check secrets existence in dry-run mode
- Add
load_balancer_name
andtarget_group_name
option to skip creating ELB - Support ECS secrets
- Support
readonly_root_filesystem
parameter - Support
docker_security_options
parameter - Support
ssl_policy
option inelb_v2
- Skip updating
desired_count
before removing service using daemon scheduling strategy
- Change show-definition output from YAML to JSON
- The show-definition output is still parsable as YAML
- Set
deployment_configuration
to nil when absent
- Support
health_check
parameter - Support
shared_memory_size
parameter - Support
tmpfs
parameter - Support
docker_volume_configuration
parameter - Support target tracking scaling policy
- Run containers referenced by
volumes_from
on hako oneshot - Rename
additional_containers
parameter tosidecars
additional_containers
is still supported for compatibility
- Show
--volumes-from
in dry-run output - Fix
--init
not being shown in dry-run output
- Add support for
scheduling_strategy
on service - Change existing ELB's subnets when different from definition
- Take task-level cpu/memory into account on scale out
- Show
--memory-reservation
in the dry-run output
- Support Network Load Balancer
- Support
health_check_grace_period_seconds
- Pass AWS region of ECS scheduler to other AWS clients (CloudWatch, ApplicationAutoScaling)
- Eliminate
--memory
parameter from dry-run output if it's not given - Give missing unit to the value of
--memory
parameter in dry-run output - Take
memory_reservation
into account when calculating required memory
- create_aws_cloud_watch_logs_log_group script: Skip creating CloudWatch log group on dry-run
- Skip expanding variables in
remove
andstop
- Fix compatibility between Jsonnet and YAML when --dry-run is given
- Support Jsonnet as the definition file format
- See docs/jsonnet.md
- YAML definitions continues to be supported by hako at least v2.x series. Currently I don't have a plan which will be the default format.
- Add support for awsvpc network mode
- Add support for Fargate
- Support
linux_parameters
option - S3 and SNS client now uses the same region with ECS
- Support
extra_hosts
option
- Retry DeleteTargetGroup in
hako remove
- Deleting a load balancer may take several seconds
- Add target_group_attributes option to elb_v2
- Add container_name and container_port option to elb and elb_v2
- Migrate to aws-sdk v3
- Add experimental
autoscaling_topic_for_oneshot
option to ECS scheduler- It publishes scale-out request to SNS topic.
- Administrators is expected to receive SNS event and initiate scale-out.
- Exclude unusable instances when checking remaining capacity
- Output cluster information in
--no-wait
mode
- Add experimental option
--no-wait
to oneshothako oneshot --no-wait
runs Docker container in background and return an identifier depending on scheduler.- In ECS scheduler, it will output the task's ARN.
- Retry RegisterTaskDefinition when "too many concurrent attempts" error occurs
- Fix error in dry-run mode when ALB isn't created yet
- Support
load_balancer_attributes
option in elb_v2
- Support
ulimits
option
- Fix error of autoscaling for oneshot when container instances are empty
- Fix error when new task definition is registered
- Regression in v1.3.2
- Pass placement_configurations in oneshot mode
- Symbolize port_mapping keys to compare definitions correctly
- Reduce the number of DescribeTaskDefinition calls
- Retry DescribeAutoScalingGroups when rate limited
- Add
oneshot_notification_prefix
option- This is experimental , so might be reverted in near version.
- This option enables S3 polling instead of ECS polling.
- Retry DescribeTasks when rate limited
- Fail deployment when some tasks are stopped during deployment
- It should prevent infinite loop when the new revision always fails to start
- Add script hooks to rollback
Script#rollback_starting
- Similar to deploy_starting, but without containers
Script#rollback_started
- Current running image tag and target image tag are passed
Script#rollback_finished
- Similar to deploy_finished, but without containers
- Fix default value of
@volumes
- When
mount_points
is specified but novolumes
is given, hako was raising unfriendly errors
- When
- Raise error when env value is not String (#31)