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)
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)
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)
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)