Пример #1
0
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
Пример #2
0
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))
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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))
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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)))
Пример #14
0
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
Пример #15
0
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
Пример #16
0
def ns_read(namespace, verbose=False):
    ns = api.read_namespace(name=namespace)
    if verbose:
        pretty_print(json.dumps(ns.metadata, default=str))
    return ns
Пример #17
0
def context_get(verbose=False):
    contexts, active_context = config.list_kube_config_contexts()
    if verbose:
        pretty_print(json.dumps(active_context))
    return active_context
Пример #18
0
 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'
     )
Пример #19
0
def settings(settings):
    data = load_config(settings.settings_file)
    logging.info("Settings successfully loaded...\n")
    logging.debug(pretty_print(json.dumps(data, indent=4)))
Пример #20
0
 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'
     )
Пример #21
0
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