aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn O Loughlin <john.oloughlin@intel.com>2018-05-11 18:09:54 +0100
committerRodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>2018-07-06 09:02:21 +0000
commitab8629071966fb46a4eeac473cda3352424fa350 (patch)
treed151462673de51b90f54b7b7ea178225be1e0efe
parent42d82c8766fc449e4f495ce0d727ea3499a8b6de (diff)
Add "env" parameter in Kubernetes context
This new parameter, "env", will allow the user to automatically to add environment variables in a pod definition Example of definition in a context: context: type: Kubernetes servers: host: image: ... commands: ... env: - <variable name>: <variable value> - <variable name>: <variable value> The volume type and the definition must be one of the supported ones in Kubernetes [1]. [1] https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes JIRA: YARDSTICK-1161 Change-Id: Icf372a98c090063f10c9217755519ab92ba9b0ba Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
-rw-r--r--yardstick/orchestrator/kubernetes.py6
-rw-r--r--yardstick/tests/unit/orchestrator/test_kubernetes.py17
2 files changed, 23 insertions, 0 deletions
diff --git a/yardstick/orchestrator/kubernetes.py b/yardstick/orchestrator/kubernetes.py
index a595de86d..f690ab3e9 100644
--- a/yardstick/orchestrator/kubernetes.py
+++ b/yardstick/orchestrator/kubernetes.py
@@ -31,6 +31,7 @@ class ContainerObject(object):
self._args = kwargs.get('args', [])
self._volume_mounts = kwargs.get('volumeMounts', [])
self._security_context = kwargs.get('securityContext')
+ self._env = kwargs.get('env', [])
def _create_volume_mounts(self):
"""Return all "volumeMounts" items per container"""
@@ -58,6 +59,11 @@ class ContainerObject(object):
'volumeMounts': self._create_volume_mounts()}
if self._security_context:
container['securityContext'] = self._security_context
+ if self._env:
+ container['env'] = []
+ for env in self._env:
+ container['env'].append({'name': env['name'],
+ 'value': env['value']})
return container
diff --git a/yardstick/tests/unit/orchestrator/test_kubernetes.py b/yardstick/tests/unit/orchestrator/test_kubernetes.py
index 70d17e216..5eba1a02a 100644
--- a/yardstick/tests/unit/orchestrator/test_kubernetes.py
+++ b/yardstick/tests/unit/orchestrator/test_kubernetes.py
@@ -285,6 +285,23 @@ class ContainerObjectTestCase(base.BaseUnitTestCase):
'securityContext': {'key': 'value'}}
self.assertEqual(expected, container_obj.get_container_item())
+ def test_get_container_item_with_env(self):
+ volume_mount = {'name': 'fake_name',
+ 'mountPath': 'fake_path'}
+ args = ['arg1', 'arg2']
+ container_obj = kubernetes.ContainerObject(
+ 'cname', ssh_key='fake_sshkey', volumeMount=[volume_mount],
+ args=args, env=[{'name': 'fake_var_name',
+ 'value': 'fake_var_value'}])
+ expected = {'args': args,
+ 'command': [kubernetes.ContainerObject.COMMAND_DEFAULT],
+ 'image': kubernetes.ContainerObject.IMAGE_DEFAULT,
+ 'name': 'cname-container',
+ 'volumeMounts': container_obj._create_volume_mounts(),
+ 'env': [{'name': 'fake_var_name',
+ 'value': 'fake_var_value'}]}
+ self.assertEqual(expected, container_obj.get_container_item())
+
class CustomResourceDefinitionObjectTestCase(base.BaseUnitTestCase):