From a1332d361206f45e6c3180d9c334d47714e54c44 Mon Sep 17 00:00:00 2001 From: Yifan Xiong Date: Tue, 3 Sep 2019 16:46:27 +0800 Subject: [PATCH] [Deployment] Choose services for different cluster type (#3528) * Choose services for different cluster type Choose services for different cluster type in deployment. * Update cluster type in service.yaml Update cluster type in service.yaml. * Change the initial cluster type to None Change the initial cluster type to None. --- .../service_management_configuration.py | 7 +++++-- .../paiService/service_management_delete.py | 11 +++++------ .../paiService/service_management_refresh.py | 15 ++++++--------- .../paiService/service_management_start.py | 11 +++++------ .../paiService/service_management_stop.py | 11 +++++------ src/alert-manager/deploy/service.yaml | 4 ++++ src/cleaner/deploy/service.yaml | 3 +++ src/cluster-configuration/deploy/service.yaml | 4 ++++ src/drivers/deploy/service.yaml | 4 ++++ src/end-to-end-test/deploy/service.yaml | 3 +++ src/grafana/deploy/service.yaml | 4 ++++ src/hadoop-batch-job/deploy/service.yaml | 3 +++ src/hadoop-data-node/deploy/service.yaml | 3 +++ src/hadoop-jobhistory/deploy/service.yaml | 3 +++ src/hadoop-name-node/deploy/service.yaml | 3 +++ src/hadoop-node-manager/deploy/service.yaml | 3 +++ src/hadoop-resource-manager/deploy/service.yaml | 3 +++ src/job-exporter/deploy/service.yaml | 4 ++++ src/k8s-dashboard/deploy/service.yaml | 4 ++++ src/log-manager/deploy/service.yaml | 3 +++ src/node-exporter/deploy/service.yaml | 4 ++++ src/prometheus/deploy/service.yaml | 4 ++++ src/pylon/deploy/service.yaml | 4 ++++ src/rest-server/deploy/service.yaml | 4 ++++ src/watchdog/deploy/service.yaml | 4 ++++ src/webportal/deploy/service.yaml | 4 ++++ src/yarn-frameworklauncher/deploy/service.yaml | 2 ++ src/zookeeper/deploy/service.yaml | 3 +++ 28 files changed, 106 insertions(+), 29 deletions(-) diff --git a/deployment/paiLibrary/paiService/service_management_configuration.py b/deployment/paiLibrary/paiService/service_management_configuration.py index 8443e1b54a..b99a8cd9ae 100644 --- a/deployment/paiLibrary/paiService/service_management_configuration.py +++ b/deployment/paiLibrary/paiService/service_management_configuration.py @@ -14,6 +14,7 @@ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + import time import os import tempfile @@ -41,12 +42,14 @@ def get_cluster_object_model_from_k8s(kube_config_path): return cluster_object_service -def get_service_list(): +def get_service_list(cluster_type="yarn"): service_list = list() subdir_list = directory_handler.get_subdirectory_list("src/") for subdir in subdir_list: service_deploy_dir = "src/{0}/deploy".format(subdir) service_deploy_conf_path = "src/{0}/deploy/service.yaml".format(subdir) if file_handler.directory_exits(service_deploy_dir) and file_handler.file_exist_or_not(service_deploy_conf_path): - service_list.append(subdir) + service_conf = file_handler.load_yaml_config(service_deploy_conf_path) + if ("cluster-type" not in service_conf) or ("cluster-type" in service_conf and cluster_type in service_conf["cluster-type"]): + service_list.append(subdir) return service_list diff --git a/deployment/paiLibrary/paiService/service_management_delete.py b/deployment/paiLibrary/paiService/service_management_delete.py index 4867e1589c..29e002e4a9 100644 --- a/deployment/paiLibrary/paiService/service_management_delete.py +++ b/deployment/paiLibrary/paiService/service_management_delete.py @@ -34,12 +34,14 @@ class service_management_delete: def __init__(self, kube_config_path=None, service_list=None, **kwargs): self.logger = logging.getLogger(__name__) - self.cluster_object_model = None - + self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path) self.kube_config_path = kube_config_path + self.cluster_type = None if service_list is None: - self.service_list = service_management_configuration.get_service_list() + if "cluster-type" in self.cluster_object_model["cluster"]["common"]: + self.cluster_type = self.cluster_object_model["cluster"]["common"]["cluster-type"] + self.service_list = service_management_configuration.get_service_list(self.cluster_type) else: self.service_list = service_list self.logger.info("Get the service-list to manage : {0}".format(str(self.service_list))) @@ -75,9 +77,6 @@ def start(self, serv): self.logger.info("----------------------------------------------------------------------") def run(self): - - self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path=self.kube_config_path) - for serv in self.service_list: if serv == "cluster-configuration": continue diff --git a/deployment/paiLibrary/paiService/service_management_refresh.py b/deployment/paiLibrary/paiService/service_management_refresh.py index 4638ef67a9..9badd0960f 100644 --- a/deployment/paiLibrary/paiService/service_management_refresh.py +++ b/deployment/paiLibrary/paiService/service_management_refresh.py @@ -33,14 +33,14 @@ class service_management_refresh: def __init__(self, kube_config_path=None, service_list=None, **kwargs): self.logger = logging.getLogger(__name__) - self.cluster_object_model = None - - self.kube_config_path = None - if kube_config_path != None: - self.kube_config_path = kube_config_path + self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path) + self.kube_config_path = kube_config_path + self.cluster_type = None if service_list is None: - self.service_list = service_management_configuration.get_service_list() + if "cluster-type" in self.cluster_object_model["cluster"]["common"]: + self.cluster_type = self.cluster_object_model["cluster"]["common"]["cluster-type"] + self.service_list = service_management_configuration.get_service_list(self.cluster_type) else: self.service_list = service_list self.logger.info("Get the service-list to manage : {0}".format(str(self.service_list))) @@ -156,9 +156,6 @@ def start(self, serv): self.done_dict[serv] = True def run(self): - - self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path=self.kube_config_path) - self.done_dict = dict() self.refresh_all_label() for serv in self.service_list: diff --git a/deployment/paiLibrary/paiService/service_management_start.py b/deployment/paiLibrary/paiService/service_management_start.py index 9a0b7bd294..286ecf404e 100644 --- a/deployment/paiLibrary/paiService/service_management_start.py +++ b/deployment/paiLibrary/paiService/service_management_start.py @@ -34,12 +34,14 @@ class serivce_management_start: def __init__(self, kube_config_path=None, service_list=None, **kwargs): self.logger = logging.getLogger(__name__) - self.cluster_object_model = None - + self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path) self.kube_config_path = kube_config_path + self.cluster_type = None if service_list is None: - self.service_list = service_management_configuration.get_service_list() + if "cluster-type" in self.cluster_object_model["cluster"]["common"]: + self.cluster_type = self.cluster_object_model["cluster"]["common"]["cluster-type"] + self.service_list = service_management_configuration.get_service_list(self.cluster_type) else: self.service_list = service_list self.logger.info("Get the service-list to manage : {0}".format(str(self.service_list))) @@ -111,9 +113,6 @@ def start(self, serv): self.done_dict[serv] = True def run(self): - - self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path=self.kube_config_path) - self.done_dict = dict() for serv in self.service_list: diff --git a/deployment/paiLibrary/paiService/service_management_stop.py b/deployment/paiLibrary/paiService/service_management_stop.py index 7f94feb239..f1e552689e 100644 --- a/deployment/paiLibrary/paiService/service_management_stop.py +++ b/deployment/paiLibrary/paiService/service_management_stop.py @@ -33,12 +33,14 @@ class service_management_stop: def __init__(self, kube_config_path=None, service_list=None, **kwargs): self.logger = logging.getLogger(__name__) - self.cluster_object_model = None - + self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path) self.kube_config_path = kube_config_path + self.cluster_type = None if service_list is None: - self.service_list = service_management_configuration.get_service_list() + if "cluster-type" in self.cluster_object_model["cluster"]["common"]: + self.cluster_type = self.cluster_object_model["cluster"]["common"]["cluster-type"] + self.service_list = service_management_configuration.get_service_list(self.cluster_type) else: self.service_list = service_list self.logger.info("Get the service-list to manage : {0}".format(str(self.service_list))) @@ -75,9 +77,6 @@ def start(self, serv): self.logger.info("----------------------------------------------------------------------") def run(self): - - self.cluster_object_model = service_management_configuration.get_cluster_object_model_from_k8s(kube_config_path=self.kube_config_path) - for serv in self.service_list: if serv == "cluster-configuration": continue diff --git a/src/alert-manager/deploy/service.yaml b/src/alert-manager/deploy/service.yaml index 106af676be..3a9c00d712 100644 --- a/src/alert-manager/deploy/service.yaml +++ b/src/alert-manager/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration - drivers diff --git a/src/cleaner/deploy/service.yaml b/src/cleaner/deploy/service.yaml index f55c97b4d2..ae2fdeeb5a 100644 --- a/src/cleaner/deploy/service.yaml +++ b/src/cleaner/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + # to avoid possible race condition, start cleaner after all services are ready prerequisite: - cluster-configuration diff --git a/src/cluster-configuration/deploy/service.yaml b/src/cluster-configuration/deploy/service.yaml index c6edc4651a..91c9224851 100644 --- a/src/cluster-configuration/deploy/service.yaml +++ b/src/cluster-configuration/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + template-list: - secret.yaml - host-configuration/host-configuration.yaml diff --git a/src/drivers/deploy/service.yaml b/src/drivers/deploy/service.yaml index 10fa48d66c..4f2f1c56d2 100644 --- a/src/drivers/deploy/service.yaml +++ b/src/drivers/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration diff --git a/src/end-to-end-test/deploy/service.yaml b/src/end-to-end-test/deploy/service.yaml index 258609ad79..d9d19a14e4 100644 --- a/src/end-to-end-test/deploy/service.yaml +++ b/src/end-to-end-test/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - yarn-frameworklauncher diff --git a/src/grafana/deploy/service.yaml b/src/grafana/deploy/service.yaml index 6691cffe58..8ef1f7d622 100644 --- a/src/grafana/deploy/service.yaml +++ b/src/grafana/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration - prometheus diff --git a/src/hadoop-batch-job/deploy/service.yaml b/src/hadoop-batch-job/deploy/service.yaml index 79e6d88822..b20bbfeb99 100644 --- a/src/hadoop-batch-job/deploy/service.yaml +++ b/src/hadoop-batch-job/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - drivers diff --git a/src/hadoop-data-node/deploy/service.yaml b/src/hadoop-data-node/deploy/service.yaml index d4ddf1f160..d22b6e357f 100644 --- a/src/hadoop-data-node/deploy/service.yaml +++ b/src/hadoop-data-node/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - drivers diff --git a/src/hadoop-jobhistory/deploy/service.yaml b/src/hadoop-jobhistory/deploy/service.yaml index 11df6d0fe7..20511c9f96 100644 --- a/src/hadoop-jobhistory/deploy/service.yaml +++ b/src/hadoop-jobhistory/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - drivers diff --git a/src/hadoop-name-node/deploy/service.yaml b/src/hadoop-name-node/deploy/service.yaml index 0d36164992..35ccfac871 100644 --- a/src/hadoop-name-node/deploy/service.yaml +++ b/src/hadoop-name-node/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - drivers diff --git a/src/hadoop-node-manager/deploy/service.yaml b/src/hadoop-node-manager/deploy/service.yaml index 43577f4d84..32849690a8 100644 --- a/src/hadoop-node-manager/deploy/service.yaml +++ b/src/hadoop-node-manager/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - drivers diff --git a/src/hadoop-resource-manager/deploy/service.yaml b/src/hadoop-resource-manager/deploy/service.yaml index 46a780c7ec..756fd9f0bf 100644 --- a/src/hadoop-resource-manager/deploy/service.yaml +++ b/src/hadoop-resource-manager/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration - drivers diff --git a/src/job-exporter/deploy/service.yaml b/src/job-exporter/deploy/service.yaml index e91eff5619..5461603424 100644 --- a/src/job-exporter/deploy/service.yaml +++ b/src/job-exporter/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration - drivers diff --git a/src/k8s-dashboard/deploy/service.yaml b/src/k8s-dashboard/deploy/service.yaml index d62f42dc53..5b7ecfdecb 100644 --- a/src/k8s-dashboard/deploy/service.yaml +++ b/src/k8s-dashboard/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + template-list: - k8s-dashboard.yaml - start.sh diff --git a/src/log-manager/deploy/service.yaml b/src/log-manager/deploy/service.yaml index 12f29cbbf1..0f8039a6a1 100644 --- a/src/log-manager/deploy/service.yaml +++ b/src/log-manager/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - k8s + prerequisite: - cluster-configuration diff --git a/src/node-exporter/deploy/service.yaml b/src/node-exporter/deploy/service.yaml index fb6fcbe790..f39127355b 100644 --- a/src/node-exporter/deploy/service.yaml +++ b/src/node-exporter/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration diff --git a/src/prometheus/deploy/service.yaml b/src/prometheus/deploy/service.yaml index faca4f53cf..9d71c45786 100644 --- a/src/prometheus/deploy/service.yaml +++ b/src/prometheus/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration diff --git a/src/pylon/deploy/service.yaml b/src/pylon/deploy/service.yaml index f509eab71e..ebed68e765 100644 --- a/src/pylon/deploy/service.yaml +++ b/src/pylon/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration diff --git a/src/rest-server/deploy/service.yaml b/src/rest-server/deploy/service.yaml index 3a9994cba0..bec7eb747b 100644 --- a/src/rest-server/deploy/service.yaml +++ b/src/rest-server/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration - yarn-frameworklauncher diff --git a/src/watchdog/deploy/service.yaml b/src/watchdog/deploy/service.yaml index 354c01ae89..845c9e7ffd 100644 --- a/src/watchdog/deploy/service.yaml +++ b/src/watchdog/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration diff --git a/src/webportal/deploy/service.yaml b/src/webportal/deploy/service.yaml index 5f9cbb9c3e..25d63e4bc3 100644 --- a/src/webportal/deploy/service.yaml +++ b/src/webportal/deploy/service.yaml @@ -15,6 +15,10 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + - k8s + prerequisite: - cluster-configuration - rest-server diff --git a/src/yarn-frameworklauncher/deploy/service.yaml b/src/yarn-frameworklauncher/deploy/service.yaml index 600a75b2a8..b81bbd9430 100644 --- a/src/yarn-frameworklauncher/deploy/service.yaml +++ b/src/yarn-frameworklauncher/deploy/service.yaml @@ -15,6 +15,8 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn prerequisite: - cluster-configuration diff --git a/src/zookeeper/deploy/service.yaml b/src/zookeeper/deploy/service.yaml index 5b8b5f0fd3..2ef44483f4 100644 --- a/src/zookeeper/deploy/service.yaml +++ b/src/zookeeper/deploy/service.yaml @@ -15,6 +15,9 @@ # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +cluster-type: + - yarn + prerequisite: - cluster-configuration