~troyanov/maas:agent-temporal-retry

Last commit made on 2023-08-10
Get this branch:
git clone -b agent-temporal-retry https://git.launchpad.net/~troyanov/maas
Only Anton Troyanov can upload to this branch. If you are Anton Troyanov please log in for upload directions.

Branch merges

Branch information

Name:
agent-temporal-retry
Repository:
lp:~troyanov/maas

Recent commits

3f997b7... by Anton Troyanov

feat(agent): add backoff for temporal worker init

Use exponential backoff and try for 60 sec before failing.

9ee16e7... by Anton Troyanov

feat(temporal): configure region worker client

Temporal Client should use EncryptionCodec
PoC Configure Workflow stub to configure MAAS Agent per-VLAN Task Queues

eaee122... by Anton Troyanov

fix(reverse_proxy): yield service_monitor call

6502c2c... by Christian Grabowski

feat: add region temporal worker

f32e6fd... by Adam Collard

fix perf tests - subnet should be an IPNetwork

1ede3c4... by Christian Grabowski

use correct ip field for Answer section of notify message

85cfac3... by Anton Troyanov

fix(temporal): _reload_service produce generator

1ab477b... by "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>

Update maas-ui to 0576040e2
chore(deps): update dependency eslint-config-prettier to v9 (#5089)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

965dd1b... by Igor Brovtsin

Allow changing the default expected state of `ToggleableService`

Some services can be managed by both region and rack, with the latter
being in control for rack-only deployments. In order to achieve that, a
layer of logic implemented in `RackOnlyExternalService` class checks the
deployment type and decides whether rack should control the service
state or not (service expected status = ANY). Once it have a decision,
the expected state of the service is updated by calling the appropriate
method of `ToggleableService` instance for the corresponding service.

However, this logic needs some time before the expected state is updated.
Since the current default expected service state is `SERVICE_STATE.OFF`,
in rack+region deployments, rack will try to bring the services down
until `RackOnlyExternalService` instance updates the state, while region
will bring the services back online. The side effects of such races are
devastating to some services, especially ones that have cleanup steps in
their startup shell script.

The proposed solution is to have the affected services default expected
state as `SERVICE_STATE.ANY` to prevent rack from bringing them down.

689cbe9... by Alberto Donato

apiserver: use sqlalchemy.URL for DSN