timeout: float = 300,
params: dict = None,
db_dict: dict = None,
- kdu_name: str = None
+ kdu_name: str = None,
+ namespace: str = None
):
"""
Deploys of a new KDU instance. It would implicitly rely on the `install` call to deploy the Chart/Bundle
It contains a dict with {collection: <str>, filter: {}, path: <str>},
e.g. {collection: "nsrs", filter: {_id: <nsd-id>, path: "_admin.deployed.K8S.3"}
:param kdu_name: Name of the KDU instance to be installed
+ :param namespace: K8s namespace to use for the KDU instance
:return: True if successful
"""
timeout: float = 300,
params: dict = None,
db_dict: dict = None,
- kdu_name: str = None
+ kdu_name: str = None,
+ namespace: str = None
):
self.log.debug('installing {} in cluster {}'.format(kdu_model, cluster_uuid))
atomic_str = ''
if atomic:
atomic_str = '--atomic'
+ # namespace
+ namespace_str = ''
+ if namespace:
+ namespace_str = "--namespace {}".format(namespace)
# version
version_str = ''
pass
# helm repo install
- command = '{} install {} --output yaml --kubeconfig={} --home={} {} {} --name={} {} {}'\
- .format(self._helm_command, atomic_str, config_filename, helm_dir,
- params_str, timeout_str, kdu_instance, kdu_model, version_str)
+ command = '{helm} install {atomic} --output yaml --kubeconfig={config} --home={dir} {params} {timeout} ' \
+ '--name={name} {ns} {model} {ver}'.format(helm=self._helm_command, atomic=atomic_str,
+ config=config_filename, dir=helm_dir, params=params_str,
+ timeout=timeout_str, name=kdu_instance, ns=namespace_str,
+ model=kdu_model, ver=version_str)
self.log.debug('installing: {}'.format(command))
if atomic:
timeout: float = 300,
params: dict = None,
db_dict: dict = None,
- kdu_name: str = None
+ kdu_name: str = None,
+ namespace: str = None
) -> bool:
"""Install a bundle
to finish
:param params dict: Key-value pairs of instantiation parameters
:param kdu_name: Name of the KDU instance to be installed
+ :param namespace: K8s namespace to use for the KDU instance
:return: If successful, returns ?
"""
)
self.log.debug("All units active.")
- except concurrent.futures._base.TimeoutError:
+ except concurrent.futures._base.TimeoutError: # TODO use asyncio.TimeoutError
os.chdir(previous_workdir)
self.log.debug("[install] Timeout exceeded; resetting cluster")
await self.reset(cluster_uuid)