Exemplo n.º 1
0
def ingress_controller_prerequisites(
        cli_arguments, kube_apis, request) -> IngressControllerPrerequisites:
    """
    Create RBAC, SA, IC namespace and default-secret.

    :param cli_arguments: tests context
    :param kube_apis: client apis
    :param request: pytest fixture
    :return: IngressControllerPrerequisites
    """
    print(
        "------------------------- Create IC Prerequisites  -----------------------------------"
    )
    rbac = configure_rbac(kube_apis.rbac_v1_beta1)
    namespace = create_ns_and_sa_from_yaml(
        kube_apis.v1, f"{DEPLOYMENTS}/common/ns-and-sa.yaml")
    config_map_yaml = f"{DEPLOYMENTS}/common/nginx-config.yaml"
    create_configmap_from_yaml(kube_apis.v1, namespace, config_map_yaml)
    with open(config_map_yaml) as f:
        config_map = yaml.safe_load(f)
    create_secret_from_yaml(
        kube_apis.v1, namespace,
        f"{DEPLOYMENTS}/common/default-server-secret.yaml")

    def fin():
        print("Clean up prerequisites")
        delete_namespace(kube_apis.v1, namespace)
        cleanup_rbac(kube_apis.rbac_v1_beta1, rbac)

    request.addfinalizer(fin)

    return IngressControllerPrerequisites(config_map, namespace)
Exemplo n.º 2
0
def ingress_controller_prerequisites(cli_arguments, kube_apis, request) -> IngressControllerPrerequisites:
    """
    Create RBAC, SA, IC namespace and default-secret.

    :param cli_arguments: tests context
    :param kube_apis: client apis
    :param request: pytest fixture
    :return: IngressControllerPrerequisites
    """
    print("------------------------- Create IC Prerequisites  -----------------------------------")
    rbac = configure_rbac(kube_apis.rbac_v1_beta1)
    namespace = create_ns_and_sa_from_yaml(kube_apis.v1, f"{DEPLOYMENTS}/common/ns-and-sa.yaml")
    config_map_yaml = f"{DEPLOYMENTS}/common/nginx-config.yaml"
    create_configmap_from_yaml(kube_apis.v1, namespace, config_map_yaml)
    with open(config_map_yaml) as f:
        config_map = yaml.safe_load(f)
    create_secret_from_yaml(kube_apis.v1, namespace, f"{DEPLOYMENTS}/common/default-server-secret.yaml")

    def fin():
        print("Clean up prerequisites")
        delete_namespace(kube_apis.v1, namespace)
        cleanup_rbac(kube_apis.rbac_v1_beta1, rbac)

    request.addfinalizer(fin)

    return IngressControllerPrerequisites(config_map, namespace)
Exemplo n.º 3
0
def ingress_controller_prerequisites(
        cli_arguments, kube_apis, request) -> IngressControllerPrerequisites:
    """
    Create RBAC, SA, IC namespace and default-secret.

    :param cli_arguments: tests context
    :param kube_apis: client apis
    :param request: pytest fixture
    :return: IngressControllerPrerequisites
    """
    print(
        "------------------------- Create IC Prerequisites  -----------------------------------"
    )
    rbac = configure_rbac(kube_apis.rbac_v1)
    namespace = create_ns_and_sa_from_yaml(
        kube_apis.v1, f"{DEPLOYMENTS}/common/ns-and-sa.yaml")
    k8sVersionBin = subprocess.run(["kubectl", "version"], capture_output=True)
    k8sVersion = (k8sVersionBin.stdout).decode('ascii')
    serverVersion = k8sVersion[k8sVersion.find("Server Version:"):].lstrip()
    minorSerVer = serverVersion[serverVersion.find("Minor"):].lstrip()[0:10]
    k8sMinorVersion = int("".join(filter(str.isdigit, minorSerVer)))
    if (k8sMinorVersion >= 18):
        print("Create IngressClass resources:")
        subprocess.run([
            "kubectl", "apply", "-f",
            f"{DEPLOYMENTS}/common/ingress-class.yaml"
        ])
        subprocess.run([
            "kubectl", "apply", "-f",
            f"{TEST_DATA}/ingress-class/resource/custom-ingress-class-res.yaml"
        ])
    config_map_yaml = f"{DEPLOYMENTS}/common/nginx-config.yaml"
    create_configmap_from_yaml(kube_apis.v1, namespace, config_map_yaml)
    with open(config_map_yaml) as f:
        config_map = yaml.safe_load(f)
    create_secret_from_yaml(
        kube_apis.v1, namespace,
        f"{DEPLOYMENTS}/common/default-server-secret.yaml")

    def fin():
        print("Clean up prerequisites")
        delete_namespace(kube_apis.v1, namespace)
        if (k8sMinorVersion >= 18):
            print("Delete IngressClass resources:")
            subprocess.run([
                "kubectl", "delete", "-f",
                f"{DEPLOYMENTS}/common/ingress-class.yaml"
            ])
            subprocess.run([
                "kubectl", "delete", "-f",
                f"{TEST_DATA}/ingress-class/resource/custom-ingress-class-res.yaml"
            ])
        cleanup_rbac(kube_apis.rbac_v1, rbac)

    request.addfinalizer(fin)

    return IngressControllerPrerequisites(config_map, namespace,
                                          k8sMinorVersion)
Exemplo n.º 4
0
def ingress_controller_prerequisites(
        cli_arguments, kube_apis, request) -> IngressControllerPrerequisites:
    """
    Create RBAC, SA, IC namespace and default-secret.

    :param cli_arguments: tests context
    :param kube_apis: client apis
    :param request: pytest fixture
    :return: IngressControllerPrerequisites
    """
    print(
        "------------------------- Create IC Prerequisites  -----------------------------------"
    )
    rbac = configure_rbac(kube_apis.rbac_v1)
    namespace = create_ns_and_sa_from_yaml(
        kube_apis.v1, f"{DEPLOYMENTS}/common/ns-and-sa.yaml")
    print("Create IngressClass resources:")
    subprocess.run(
        ["kubectl", "apply", "-f", f"{DEPLOYMENTS}/common/ingress-class.yaml"])
    subprocess.run([
        "kubectl",
        "apply",
        "-f",
        f"{TEST_DATA}/ingress-class/resource/custom-ingress-class-res.yaml",
    ])
    config_map_yaml = f"{DEPLOYMENTS}/common/nginx-config.yaml"
    create_configmap_from_yaml(kube_apis.v1, namespace, config_map_yaml)
    with open(config_map_yaml) as f:
        config_map = yaml.safe_load(f)
    create_secret_from_yaml(
        kube_apis.v1, namespace,
        f"{DEPLOYMENTS}/common/default-server-secret.yaml")

    def fin():
        print("Clean up prerequisites")
        delete_namespace(kube_apis.v1, namespace)
        print("Delete IngressClass resources:")
        subprocess.run([
            "kubectl", "delete", "-f",
            f"{DEPLOYMENTS}/common/ingress-class.yaml"
        ])
        subprocess.run([
            "kubectl",
            "delete",
            "-f",
            f"{TEST_DATA}/ingress-class/resource/custom-ingress-class-res.yaml",
        ])
        cleanup_rbac(kube_apis.rbac_v1, rbac)

    request.addfinalizer(fin)

    return IngressControllerPrerequisites(config_map, namespace)