def secret_read(name, namespace='default', verbose=False): secret = api.read_namespaced_secret(name=name, namespace=namespace) for key, value in secret.data.items(): if value: secret.data[key] = base64.b64decode(value).decode( 'utf-8', 'ignore') if verbose: pretty_print(json.dumps(secret.data)) return secret.data
def ns_create(namespace, verbose=False): try: ns_read(namespace, verbose=verbose) except ApiException: ns = client.V1Namespace() ns.metadata = client.V1ObjectMeta(name=namespace) api.create_namespace(ns) if verbose: print(TERM.green('Created namespace "{}"'.format(namespace))) pretty_print(json.dumps(ns.metadata, default=str))
def context_get(verbose=False): """Obtain active K8S context. Args: verbose (bool): Verbosity. False by default. Returns: object: Active context. """ _, active_context = config.list_kube_config_contexts() if verbose: pretty_print(json.dumps(active_context)) return active_context
def ns_read(namespace, verbose=False): """Read Name of namespace. Args: namespace (str): Name of namespace. verbose (bool): Verbosity. False by default. Returns: object: Namespace object. """ ns = api.read_namespace(name=namespace) if verbose: pretty_print(json.dumps(ns.metadata, default=str)) return ns
def cm_read(name, namespace="default", verbose=False): """Read a K8S ConfigMap. Args: name (str): Name of the ConfigMap. namespace (str): Name of namespace. verbose (bool): Verbosity. False by default. Returns: dict: Keys and values stored in the ConfigMap. """ cm = api.read_namespaced_config_map(name=name, namespace=namespace) if verbose: pretty_print(json.dumps(cm.data)) return cm.data
def ns_create(namespace, verbose=False): """Create K8S namespace. Args: namespace (str): Name of namespace. verbose (bool): Verbosity. False by default. """ try: ns_read(namespace, verbose=verbose) except ApiException: ns = client.V1Namespace() ns.metadata = client.V1ObjectMeta(name=namespace) api.create_namespace(ns) if verbose: print(TERM.green('Created namespace "{}"'.format(namespace))) pretty_print(json.dumps(ns.metadata, default=str))
def ingress_read(name, namespace="default", verbose=False): """Get host names contained in K8S Ingress. Args: name (str): Name of Ingress. namespace (str): Name of namespace. verbose (bool): Verbosity. False by default. Returns: list: List of host names. """ ingress = api_ext.read_namespaced_ingress(name=name, namespace=namespace) hosts = [item.host for item in ingress.spec.rules if item.host] if verbose: pretty_print(json.dumps(hosts)) return hosts
def context_get(): """Obtain active K8S context. Returns: object: Active context. """ _, active_context = config.list_kube_config_contexts() logging.debug(pretty_print(json.dumps(active_context))) return active_context
def secret_read(name, namespace="default", verbose=False): """Read a K8S Secret. Args: name (str): Name of the Secret. namespace (str): Name of namespace. verbose (bool): Verbosity. False by default. Returns: dict: Keys and values stored in the Secret. """ secret = api.read_namespaced_secret(name=name, namespace=namespace) for key, value in secret.data.items(): if value: secret.data[key] = base64.b64decode(value).decode( "utf-8", "ignore") if verbose: pretty_print(json.dumps(secret.data)) return secret.data
def ns_read(namespace): """Read Name of namespace. Args: namespace (str): Name of namespace. Returns: object: Namespace object. """ ns = api.read_namespace(name=namespace) logging.debug(pretty_print(json.dumps(ns.metadata, default=str))) return ns
def cm_read(name, namespace="default"): """Read a K8S ConfigMap. Args: name (str): Name of the ConfigMap. namespace (str): Name of namespace. Returns: dict: Keys and values stored in the ConfigMap. """ cm = api.read_namespaced_config_map(name=name, namespace=namespace) logging.debug(pretty_print(json.dumps(cm.data))) return cm.data
def ingress_read(name, namespace="default"): """Get host names contained in K8S Ingress. Args: name (str): Name of Ingress. namespace (str): Name of namespace. Returns: list: List of host names. """ ingress = api_ext.read_namespaced_ingress(name=name, namespace=namespace) hosts = [item.host for item in ingress.spec.rules if item.host] logging.debug(pretty_print(json.dumps(hosts))) return hosts
def ns_create(namespace): """Create K8S namespace. Args: namespace (str): Name of namespace. """ try: ns_read(namespace) except ApiException: ns = client.V1Namespace() ns.metadata = client.V1ObjectMeta(name=namespace) api.create_namespace(ns) logging.info(f'Created namespace "{namespace}"') logging.debug(pretty_print(json.dumps(ns.metadata, default=str)))
def secret_read(name, namespace="default"): """Read a K8S Secret. Args: name (str): Name of the Secret. namespace (str): Name of namespace. Returns: dict: Keys and values stored in the Secret. """ secret = api.read_namespaced_secret(name=name, namespace=namespace) for key, value in secret.data.items(): if value: secret.data[key] = base64.b64decode(value).decode( "utf-8", "ignore") logging.debug(pretty_print(json.dumps(secret.data))) return secret.data
def cm_read(name, namespace, verbose=False): cm = api.read_namespaced_config_map(name=name, namespace=namespace) if verbose: pretty_print(json.dumps(cm.data)) return cm.data
def ns_read(namespace, verbose=False): ns = api.read_namespace(name=namespace) if verbose: pretty_print(json.dumps(ns.metadata, default=str)) return ns
def context_get(verbose=False): contexts, active_context = config.list_kube_config_contexts() if verbose: pretty_print(json.dumps(active_context)) return active_context
def test_pretty_print(self): assert ( pretty_print('{"some": "json"}') == '{\x1b[34;01m"some"\x1b[39;49;00m: \x1b[33m"json"\x1b[39;49;00m}\n' )
def settings(settings): data = load_config(settings.settings_file) logging.info("Settings successfully loaded...\n") logging.debug(pretty_print(json.dumps(data, indent=4)))
def test_pretty_print(self, mock_print): pretty_print('{"some": "json"}') mock_print.assert_called_with( '{\x1b[34;01m"some"\x1b[39;49;00m: \x1b[33m"json"\x1b[39;49;00m}\n' )
def ingress_read(name, namespace='default', verbose=False): ingress = api_ext.read_namespaced_ingress(name=name, namespace=namespace) hosts = [item.host for item in ingress.spec.rules] if verbose: pretty_print(json.dumps(hosts)) return hosts