mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-07-29 10:54:41 +00:00
Fix kubeconfig parameter when multiple config files are provided (#468)
Fix kubeconfig parameter when multiple config files are provided SUMMARY #435 ISSUE TYPE Bugfix Pull Request Reviewed-by: Mike Graves <mgraves@redhat.com>
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
bugfixes:
|
||||||
|
- Fix kubeconfig parameter when multiple config files are provided (https://github.com/ansible-collections/kubernetes.core/issues/435).
|
||||||
@@ -11,6 +11,7 @@ import copy
|
|||||||
import traceback
|
import traceback
|
||||||
import os
|
import os
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
import platform
|
||||||
|
|
||||||
from ansible.config.manager import ensure_type
|
from ansible.config.manager import ensure_type
|
||||||
from ansible.errors import (
|
from ansible.errors import (
|
||||||
@@ -50,6 +51,9 @@ class RemoveOmit(object):
|
|||||||
return [self.remove_omit(d) for d in self.data]
|
return [self.remove_omit(d) for d in self.data]
|
||||||
|
|
||||||
|
|
||||||
|
ENV_KUBECONFIG_PATH_SEPARATOR = ";" if platform.system() == "Windows" else ":"
|
||||||
|
|
||||||
|
|
||||||
class ActionModule(ActionBase):
|
class ActionModule(ActionBase):
|
||||||
|
|
||||||
TRANSFERS_FILES = True
|
TRANSFERS_FILES = True
|
||||||
@@ -308,11 +312,15 @@ class ActionModule(ActionBase):
|
|||||||
if not remote_transport:
|
if not remote_transport:
|
||||||
# kubeconfig is local
|
# kubeconfig is local
|
||||||
# find in expected paths
|
# find in expected paths
|
||||||
kubeconfig = self._find_needle("files", kubeconfig)
|
configs = []
|
||||||
|
for config in kubeconfig.split(ENV_KUBECONFIG_PATH_SEPARATOR):
|
||||||
|
config = self._find_needle("files", config)
|
||||||
|
|
||||||
# decrypt kubeconfig found
|
# decrypt kubeconfig found
|
||||||
actual_file = self._loader.get_real_file(kubeconfig, decrypt=True)
|
configs.append(self._loader.get_real_file(config, decrypt=True))
|
||||||
new_module_args["kubeconfig"] = actual_file
|
new_module_args["kubeconfig"] = ENV_KUBECONFIG_PATH_SEPARATOR.join(
|
||||||
|
configs
|
||||||
|
)
|
||||||
|
|
||||||
elif isinstance(kubeconfig, dict):
|
elif isinstance(kubeconfig, dict):
|
||||||
new_module_args["kubeconfig"] = kubeconfig
|
new_module_args["kubeconfig"] = kubeconfig
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ options:
|
|||||||
options are provided, the Kubernetes client will attempt to load the default
|
options are provided, the Kubernetes client will attempt to load the default
|
||||||
configuration file from I(~/.kube/config). Can also be specified via K8S_AUTH_KUBECONFIG environment
|
configuration file from I(~/.kube/config). Can also be specified via K8S_AUTH_KUBECONFIG environment
|
||||||
variable.
|
variable.
|
||||||
|
- Multiple Kubernetes config file can be provided using separator ';' for Windows platform or ':' for others platforms.
|
||||||
- The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0. Added in version 2.2.0.
|
- The kubernetes configuration can be provided as dictionary. This feature requires a python kubernetes client version >= 17.17.0. Added in version 2.2.0.
|
||||||
type: raw
|
type: raw
|
||||||
context:
|
context:
|
||||||
|
|||||||
Reference in New Issue
Block a user