diff --git a/sdcm/sct_provision/region_definition_builder.py b/sdcm/sct_provision/region_definition_builder.py index 19a3a6a570..a4e2b33b50 100644 --- a/sdcm/sct_provision/region_definition_builder.py +++ b/sdcm/sct_provision/region_definition_builder.py @@ -27,6 +27,7 @@ from sdcm.sct_provision.user_data_objects.scylla import ScyllaUserDataObject from sdcm.sct_provision.user_data_objects.sshd import SshdUserDataObject from sdcm.sct_provision.user_data_objects.syslog_ng import SyslogNgUserDataObject, SyslogNgExporterUserDataObject +from sdcm.sct_provision.user_data_objects.walinuxagent import EnableWaLinuxAgent from sdcm.test_config import TestConfig @@ -147,6 +148,7 @@ def _get_user_data_objects(self, instance_name: str, node_type: NodeTypeType) -> SyslogNgUserDataObject, SyslogNgExporterUserDataObject, SshdUserDataObject, + EnableWaLinuxAgent, ScyllaUserDataObject, ] user_data_objects = [ diff --git a/sdcm/sct_provision/user_data_objects/walinuxagent.py b/sdcm/sct_provision/user_data_objects/walinuxagent.py new file mode 100644 index 0000000000..f86bfdab96 --- /dev/null +++ b/sdcm/sct_provision/user_data_objects/walinuxagent.py @@ -0,0 +1,37 @@ +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# See LICENSE for more details. +# +# Copyright (c) 2025 ScyllaDB +from dataclasses import dataclass +from textwrap import dedent + +from sdcm.sct_provision.user_data_objects import SctUserDataObject + + +@dataclass +class EnableWaLinuxAgent(SctUserDataObject): + """ + Scylla machines on Azure have WaLinuxAgent disabled by default. This script enables it. + https://github.com/scylladb/scylla-machine-image/pull/627 + """ + @property + def is_applicable(self) -> bool: + return self.node_type == "scylla-db" and self.params.get("cluster_backend") == "azure" + + @property + def script_to_run(self) -> str: + return dedent(""" + systemctl daemon-reload + systemctl unmask walinuxagent + systemctl enable walinuxagent + systemctl start walinuxagent + systemctl status walinuxagent --no-pager + """)