From a0f76d884c1f13c27e906136d3418f12b5342fc4 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Sat, 22 Aug 2020 16:36:19 +0200 Subject: Add xrally_kubernetes_full MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It iterates 10 times all operations run by xrally_kubernetes. Now times, concurrenty and count can be set via testcases.yaml. It creates a new containers functest-kubernetes-benchamrking as Functest. Change-Id: Ibfd493b987a359a3f16c2d8db0aef6b8e90b7e92 Signed-off-by: Cédric Ollivier --- functest_kubernetes/rally/all-in-one.yaml | 112 +++++++++++++------------- functest_kubernetes/rally/rally_kubernetes.py | 17 +++- 2 files changed, 69 insertions(+), 60 deletions(-) (limited to 'functest_kubernetes') diff --git a/functest_kubernetes/rally/all-in-one.yaml b/functest_kubernetes/rally/all-in-one.yaml index 9437f760..ae4157ff 100644 --- a/functest_kubernetes/rally/all-in-one.yaml +++ b/functest_kubernetes/rally/all-in-one.yaml @@ -8,16 +8,16 @@ subtasks: Kubernetes.list_namespaces: {} runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} - title: Run a single workload with create/read/delete namespace scenario: Kubernetes.create_and_delete_namespace: {} runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} - title: Run a single workload with create/read/delete pod scenario: @@ -25,11 +25,11 @@ subtasks: image: kubernetes/pause runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/read/delete replication controller @@ -39,11 +39,11 @@ subtasks: replicas: 2 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/scale/delete replication controller @@ -54,11 +54,11 @@ subtasks: scale_replicas: 3 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/read/delete replicaset @@ -68,11 +68,11 @@ subtasks: replicas: 1 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/scale/delete replicaset @@ -83,11 +83,11 @@ subtasks: scale_replicas: 2 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: @@ -98,11 +98,11 @@ subtasks: mount_path: /opt/check runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: >- @@ -125,7 +125,7 @@ subtasks: times: 1 contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/read/delete pod with secret volume @@ -138,11 +138,11 @@ subtasks: mount_path: /opt/check runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/check/delete pod with secret volume @@ -159,11 +159,11 @@ subtasks: error_regexp: No such file runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: >- @@ -188,7 +188,7 @@ subtasks: times: 1 contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: @@ -206,11 +206,11 @@ subtasks: test runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: >- @@ -237,7 +237,7 @@ subtasks: times: 1 contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/read/delete deployment @@ -247,11 +247,11 @@ subtasks: replicas: 2 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/rollout/delete deployment @@ -271,11 +271,11 @@ subtasks: value: "true" runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/read/delete statefulset @@ -285,11 +285,11 @@ subtasks: replicas: 2 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/scale/delete statefulset @@ -300,11 +300,11 @@ subtasks: scale_replicas: 2 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/read/delete job @@ -316,11 +316,11 @@ subtasks: - "SUCCESS" runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/check/delete clusterIP service @@ -331,11 +331,11 @@ subtasks: protocol: TCP runner: constant: - concurrency: 1 - times: 2 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: >- @@ -353,7 +353,7 @@ subtasks: times: 1 contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true - title: Run a single workload with create/check/delete NodePort service @@ -365,9 +365,9 @@ subtasks: request_timeout: 10 runner: constant: - concurrency: 1 - times: 1 + concurrency: {{ concurrency }} + times: {{ times }} contexts: namespaces: - count: 3 + count: {{ namespaces_count }} with_serviceaccount: true diff --git a/functest_kubernetes/rally/rally_kubernetes.py b/functest_kubernetes/rally/rally_kubernetes.py index e7a903d9..28415579 100644 --- a/functest_kubernetes/rally/rally_kubernetes.py +++ b/functest_kubernetes/rally/rally_kubernetes.py @@ -11,6 +11,7 @@ import logging import os import time +from jinja2 import Template import pkg_resources from rally import api from rally import exceptions @@ -26,6 +27,10 @@ class RallyKubernetes(testcase.TestCase): __logger = logging.getLogger(__name__) + concurrency = 1 + times = 1 + namespaces_count = 1 + def __init__(self, **kwargs): super(RallyKubernetes, self).__init__(**kwargs) self.dir_results = "/home/opnfv/functest/results" @@ -53,10 +58,14 @@ class RallyKubernetes(testcase.TestCase): "Cannot check env heath: %s", result['existing@kubernetes']['message']) return - input_task = open( - pkg_resources.resource_filename( - 'functest_kubernetes', 'rally/all-in-one.yaml')).read() - task = yaml.safe_load(input_task) + with open(pkg_resources.resource_filename( + 'functest_kubernetes', 'rally/all-in-one.yaml')) as file: + template = Template(file.read()) + task = yaml.safe_load(template.render( + concurrency=kwargs.get("concurrency", self.concurrency), + times=kwargs.get("times", self.times), + namespaces_count=kwargs.get( + "namespaces_count", self.namespaces_count))) rapi.task.validate(deployment='my-kubernetes', config=task) task_instance = rapi.task.create(deployment='my-kubernetes') rapi.task.start( -- cgit 1.2.3-korg