Skip to content

Commit 48292c8

Browse files
authored
Scaffold basic alertmanager autorollback configs (#4359)
There'll very likely be more than these in the near future, but just adding a couple simple ones to get started
1 parent 3e572c8 commit 48292c8

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

paasta_tools/cli/schemas/deploy_schema.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,13 @@
105105
"enable_automated_redeploys": {
106106
"type": "boolean"
107107
},
108+
"alertmanager_rollback": {
109+
"type": "boolean"
110+
},
111+
"alertmanager_poll_interval_s": {
112+
"type": "integer",
113+
"minimum": 30
114+
},
108115
"enable_crashloop_auto_rollback": {
109116
"type": "boolean"
110117
},

paasta_tools/utils.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189
class RollbackTypes(Enum):
190190
AUTOMATIC_SLO_ROLLBACK = "automatic_slo_rollback"
191191
AUTOMATIC_METRIC_ROLLBACK = "automatic_metric_rollback"
192+
AUTOMATIC_ALERTMANAGER_ROLLBACK = "automatic_alertmanager_rollback"
192193
AUTOMATIC_CRASHLOOP_ROLLBACK = "automatic_crashloop_rollback"
193194
USER_INITIATED_ROLLBACK = "user_initiated_rollback"
194195

@@ -1981,6 +1982,9 @@ class SystemPaastaConfigDict(TypedDict, total=False):
19811982
enable_crashloop_auto_rollback: bool
19821983
min_restarts_for_crashloop_rollback: int
19831984
crashloop_rollback_percentage_threshold: float
1985+
alertmanager_url: str
1986+
enable_alertmanager_rollback: bool
1987+
alertmanager_poll_interval_s: int
19841988
mesos_config: Dict
19851989
metrics_provider: str
19861990
monitoring_config: Dict
@@ -2684,6 +2688,15 @@ def get_mark_for_deployment_should_ping_for_unhealthy_pods(self) -> bool:
26842688
"mark_for_deployment_should_ping_for_unhealthy_pods", True
26852689
)
26862690

2691+
def get_alertmanager_url(self) -> Optional[str]:
2692+
return self.config_dict.get("alertmanager_url", None)
2693+
2694+
def get_enable_alertmanager_rollback(self) -> bool:
2695+
return self.config_dict.get("enable_alertmanager_rollback", False)
2696+
2697+
def get_alertmanager_poll_interval_s(self) -> int:
2698+
return self.config_dict.get("alertmanager_poll_interval_s", 30)
2699+
26872700
def get_enable_crashloop_auto_rollback(self) -> bool:
26882701
return self.config_dict.get("enable_crashloop_auto_rollback", False)
26892702

0 commit comments

Comments
 (0)