def get_current_context_name(): name = "default" docker_cfg_path = find_config_file() if docker_cfg_path: try: with open(docker_cfg_path, "r") as f: name = json.load(f).get("currentContext", "default") except Exception: return "default" return name
def get_docker_secret(): try: docker_config_file = find_config_file(config_path=None) with open(docker_config_file, 'r') as f: data = f.read() data = {".dockerconfigjson": b64encode( data.encode('utf-8')).decode("utf-8")} docker_secret = client.V1Secret( metadata=client.V1ObjectMeta(name=constants.DOCKER_CREDS_SECRET_NAME), data=data, kind="Secret", type="kubernetes.io/dockerconfigjson" ) return docker_secret except Exception as e: logger.warning("could not get docker secret: {}".format(e)) return None
def write_context_name_to_docker_config(name=None): if name == 'default': name = None docker_cfg_path = find_config_file() config = {} if docker_cfg_path: try: with open(docker_cfg_path, "r") as f: config = json.load(f) except Exception as e: return e current_context = config.get("currentContext", None) if current_context and not name: del config["currentContext"] elif name: config["currentContext"] = name else: return try: with open(docker_cfg_path, "w") as f: json.dump(config, f, indent=4) except Exception as e: return e
def docker_config_folder(): docker_config_file = find_config_file() return None if not docker_config_file \ else os.path.dirname(os.path.abspath(docker_config_file))
def get_context_dir(): return os.path.join(os.path.dirname(find_config_file() or ""), "contexts")
def test_find_config_from_home_windows(self): tmpdir = self.tmpdir('test_find_config_from_home_windows') config_path = tmpdir.ensure('.docker', 'config.json') with mock.patch.dict(os.environ, {'USERPROFILE': str(tmpdir)}): assert config.find_config_file() == str(config_path)
def test_find_config_from_home_legacy_name(self): tmpdir = self.tmpdir('test_find_config_from_home_legacy_name') config_path = tmpdir.ensure('.dockercfg') with mock.patch.dict(os.environ, {'HOME': str(tmpdir)}): assert config.find_config_file() == str(config_path)
def test_find_config_from_environment(self): tmpdir = self.tmpdir('test_find_config_from_environment') config_path = tmpdir.ensure('config.json') with mock.patch.dict(os.environ, {'DOCKER_CONFIG': str(tmpdir)}): assert config.find_config_file() == str(config_path)
def test_find_config_from_explicit_path(self): tmpdir = self.tmpdir('test_find_config_from_explicit_path') config_path = tmpdir.ensure('my-config-file.json') assert config.find_config_file(str(config_path)) == str(config_path)
def test_find_config_fallback(self): tmpdir = self.tmpdir('test_find_config_fallback') with mock.patch.dict(os.environ, {'HOME': str(tmpdir)}): assert config.find_config_file() is None
def test_find_config_from_home_posix(self): tmpdir = self.mkdir('test_find_config_from_home_posix') config_path = tmpdir.ensure('.docker', 'config.json') with mock.patch.dict(os.environ, {'HOME': str(tmpdir)}): assert config.find_config_file() == str(config_path)