Skip to content

Releases: zebrunner/e3s

3.1.2 (2024-10-10)

11 Oct 13:49
40378fd
Compare
Choose a tag to compare

Enhancements

Replace shaping path

Fixes

Failed to pass long env vars to executor
Don't abort tasks that are produced by daemon service

Migration Steps

  1. Pull latest images
docker compose pull
  1. Restart services
./zebrunner.sh restart service
  1. Bump up zebrunner selenium grid agents versions.
    Zebrunner windows selenium grid agent v3.2

3.1.1 (2024-09-09)

09 Sep 11:06
f0bc927
Compare
Choose a tag to compare

Enhancements

  • Make target group optional

Migration Steps

  1. Pull latest images
docker compose pull
  1. Restart services
./zebrunner.sh restart
  1. Bump up zebrunner selenium grid agents versions.
    Zebrunner selenium grid agent v2.7
    Zebrunner windows selenium grid agent v3.1

3.1 (2024-08-02)

02 Aug 11:44
1adffcb
Compare
Choose a tag to compare

Enhancements

  • [#61] Divide to local and remote data-layer docker compose configuration
  • [#59] Update deploy doc to refer new deploy repository
  • Show version of task-definitions service on welcome page
  • Adjust redis client to work in cluster mode
  • Provide shell scripts to tail different logs
  • Parametrize migration image execution
  • Add support of *-debug browser images
  • Remove Apache 2.0 LICENSE file
  • Certify Aurora (PostgreSQL Compatible) DB for the project
  • Minimize nat gateway expenses
  • Investigate and implement CloudFormation with remote postgres and redis aws services
  • Implement better healthcheck for cypress
  • Reuse logging configurations for the ecs tasks

Fixes

  • Redis client stops working after nil error
  • Panic on session creation
  • Redis node logs fill up all free space
  • Redis cluster could be not initialized even with established connection
  • Scaler panics on scale down
  • S3_REGION var is not passed to task-definition

Migration Steps

  1. Stop services
./zebrunner.sh down
  1. Pull latest changes, fix conflicts if any
  2. Start services
./zebrunner.sh start
  1. [Optional] To enable cloud watch logs:

4.1. Create new cloud watch group

aws logs create-log-group --log-group-name e3s-{env}-logs

4.2. Add new actions to e3s-agent-role:

"logs:CreateLogStream",
"logs:PutLogEvents",

4.3. Insert log-group name into config.env file:

AWS_LOGS_GROUP=e3s-{env}-logs
  1. [Optional] Start support e3s infrastructure by terraform

3.0 (2024-06-17)

17 Jun 14:52
da0e289
Compare
Choose a tag to compare

Enhancements

  • [#49] Update .env versions to 3.0
  • [#45][#44][#43][#42][#41][#40][#39][#38][#37] Documentation updates
  • [#31] Remove version from docker-compose.yaml
  • Delete e3s- prefix from services naming
  • Bump up to uploader 3.6.1
  • Add support for redroid's latest tag
  • Parameterize redis db connections init
  • Replace deprecated ioutil.ReadAll with io.ReadAll
  • Make less synchronized multithreading in scaler
  • Delete EXTERNAL_PORT from router.env
  • Unite duplicate env vars from scaler.env and router.env to new .env file
  • Be able to parametrize ecr repository with images for browsers only
  • Decrease recorder's resource allocation
  • Improvements into the recorder steps

Fixes

  • Remove usage of password field on user creation
  • Artifacts are not pushed to s3 (uploader finishes with 137 exit code)
  • Review task definition refresh sorting order (especially for cypress images)

Migration Steps

  1. Stop services
./zebrunner.sh down
  1. Pull latest changes, fix conflicts if any
  2. Add "ecr:DescribeImages" action to e3s-{Env}-policy with resource restriction for every private browser repository used.
  3. Move router.env, scaler.env, data.env to properties folder.
  4. Move specified vars from scaler.env and router.env to config.env
IDLE_TIMEOUT=
MAX_TIMEOUT=

AWS_REGION=
AWS_RETRY=
AWS_CLUSTER=
AWS_ACESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_TASK_ROLE=

LOG_LEVEL=

ZEBRUNNER_HOST=
ZEBRUNNER_INTEGRATION_USER=
ZEBRUNNER_INTEGRATION_PASSWORD=
ZEBRUNNER_ENV=
  1. Start services
./zebrunner.sh start
  1. [Optional] Append new actions to deploy policy
"ec2:AssociateIamInstanceProfile",
"ec2:ModifyInstanceMetadataOptions",
"ec2:DescribeVpcs"

2.9.2 (2024-05-20)

20 May 11:19
96c9bc1
Compare
Choose a tag to compare

Enhancement

  • [#30] ALB steps generation updates
  • [#29] Documentation refactoring

Fixes

  • Task hangs on executor state if cloning failed
  • [#28] list-roles.sh script doesn't work
  • [#27] Some json files are absent and not accessible in documentation

Migration Steps

  1. Add "elasticloadbalancing:DescribeListeners" action to e3s-{Env}-policy
  2. Pull latest changes, fix conflicts if any
  3. Restart services

2.9.1 (2024-05-17)

17 May 10:44
f157782
Compare
Choose a tag to compare

Enhancement

  • [#24] Add to the prerequisites doc version of docker and docker compose plugin

Fixes

  • Launch cannot be aborted
  • Task startup failure could brake redis tasks workers

Migration Steps

  1. Pull latest changes, fix conflicts if any
  2. Restart services

2.9 (2024-04-30)

30 Apr 14:40
a47b439
Compare
Choose a tag to compare

Enhancements

  • [#18] Add cleanup steps
  • [#16] Adjust prereq doc to use docker compose v2.20.3
  • [#14] Add application load balancer deployment steps
  • [#13] Add security groups generation steps
  • [#8] Add valid s3 preparation steps
  • [#7] Introduce e3s developer role
  • Delete MAX_CPU and MAX_MEMORY vars
  • Change response code from 403 to 409 in case of interaction with finished task/session
  • Revert forkrepositoryurl changes
  • Lets calculate MAX_CPU and MAX_MEMORY automatically for every environment
  • Use release mode for gin by default
  • Add scaler and router versioning in the default web page
  • Unite uuid, sessions and tasks cache dbs into one
  • Be able to start router services for non configured cluster

Fixes

  • MAX_CPU and MAX_MEMORY are not taken into account with mitm_cpu and mitm_memory values
  • Cache entries are unnecessarily overwritten to Redis
  • Immediate launch abort after start don't interrupt generic task execution

Migration Steps

  1. Pull latest changes, fix conflicts if any
  2. Restart services

2.8.1 (2024-04-12)

12 Apr 10:55
91a1d23
Compare
Choose a tag to compare

Fixes

  • Provisioning seconds var on fast executor finish has negative value

Migration Steps

  1. Pull latest changes, fix conflicts if any
  2. Restart services

2.8 (2024-04-06)

06 Apr 10:32
f728b56
Compare
Choose a tag to compare

Enhancements

  • Bump up to entrypoint:2.5.1
  • Bump up to appium:2.0.15
  • Move all documentation to e3s public repo
  • Unify database settings using single database.env file
  • Implement migration for remote db
  • Migrate db esg_pgdata-volume volume
  • Create endpoint for executor container to call on finish
  • Move docker-compose single host deployment configuration to the public repo

Fixes

  • Small chance of double shaping on generic task abort
  • Failed to pull executor images from private repositories
  • Crashed generic launcher stuck in queued state for an hour
  • Stop generic task start retrying in case of incorrect launch command
  • Redroid create request has 10m readTimeout

Migration Steps

  1. Add elasticloadbalancing:DescribeLoadBalancers action to e3s-{Env}-policy
  2. Pull latest changes, fix conflicts if any
  3. Restart services

2.7 (2024-02-16)

28 Mar 12:47
60b7705
Compare
Choose a tag to compare

Enhancements

  • [#1026] Bump up to recorder:1.1-win
  • [#1021] Bump up to appium:2.0.10
  • [#1012] Bump up to uploader:1.1-win
  • [#1011] Bump up to uploader:3.5
  • [#1009] Bump up to mitmproxy 2.1
  • [#1035] Split session stop due idle timeout into different threads
  • [#1034] Update container-instance state to draining before termination
  • [#1033] Unite scaleUp and scaleDown to one thread
  • [#1032] Adjust scaler to be able to work with any instance weights
  • [#1028] Adjust routers to register/deregister targets in alb based on provided target group type
  • [#1018] Ask about forcible on restart or not
  • [#1015] Force imdsv2 token regeneration
  • [#1014] Update task definition info in db and redis every t hours
  • [#1008] Add logs to low level api calls
  • [#1005] Recreate cluster with http-put-response-hop-limit 1 value
  • [#982] Implement loadBalancer modification on every router start and stop
  • [#962] Rename migration image to something more meaningful
  • [#773] Document new role-policies requirements
  • [#279] Replace launch config by launch template

Fixes

  • [#1006] Unable to retrieve execution logs for a launch launched via launcher
  • [#965] In massive scale down instances with new attached tasks could be terminated

Migration Steps

  1. Create launch templates both for linux and windows instances. IMDSV2 should be required with HttpPutResponseHopLimit = 1
  2. Update auto scaling group with new launch templates instead of launch configurations.
  3. Specify in auto scaling groups new MixedInstancesPolicy based on cluster needs. Important: instance type's weights proportions are must be based on their resources (cpu and memory). Example: c5a.2xlarge with 1 weight capacity and c5a.4xlarge with 2 weight capacity
  4. Disable managedTerminationProtection for all capacity providers
  5. Update role's permissions, based on Installation doc
  6. Specify var in scaler.env: ZEBRUNNER_ENV - important due to resource constraint "arn:aws:ecs:${Region}:${Account}:task-definition/${env}-*" for ecs:RunTask action (which will allow to run tasks based only on task definitions with env prefix)
  7. Specify vars in router.env: AWS_TARGET_GROUP - target group name, that is used in application load balancer
  8. Change target group's deregistration_delay.timeout_seconds attribute to 660 seconds
  9. Rebuild and restart services