diff options
author | John O Loughlin <john.oloughlin@intel.com> | 2018-05-11 18:09:54 +0100 |
---|---|---|
committer | Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> | 2018-07-06 09:02:21 +0000 |
commit | ab8629071966fb46a4eeac473cda3352424fa350 (patch) | |
tree | d151462673de51b90f54b7b7ea178225be1e0efe | |
parent | 42d82c8766fc449e4f495ce0d727ea3499a8b6de (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.py | 6 | ||||
-rw-r--r-- | yardstick/tests/unit/orchestrator/test_kubernetes.py | 17 |
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): |