def _delete_user_efs_endpoint(user_name: str, user_namespace: str, logger: kopf.Logger, meta: kopf.Meta) -> None: efs = boto3.client("efs") logger.info( f"Fetching the EFS access point in the namespace {user_namespace} for user {user_name}" ) efs_access_point_id = meta.get("labels", {}).get("userEfsApId", None) logger.info( f"Deleting the EFS access point {efs_access_point_id} for user {user_name}" ) try: efs.delete_access_point(AccessPointId=efs_access_point_id) logger.info(f"Access point {efs_access_point_id} deleted") except efs.exceptions.AccessPointNotFound: logger.warning(f"Access point not found: {efs_access_point_id}") except efs.exceptions.InternalServerError as e: logger.warning(e)
def copy_poddefaults_to_user_namespaces( poddefaults: List[Dict[str, Any]], user_namespaces: List[str], client: DynamicClient, logger: kopf.Logger, ) -> None: logger.debug( "Copying PodDefaults %s to user Namespaces %s", [pd["metadata"]["name"] for pd in poddefaults], user_namespaces, ) for poddefault in poddefaults: for namespace in user_namespaces: try: kwargs = { "name": poddefault["metadata"]["name"], "desc": poddefault["spec"]["desc"], "labels": { "orbit/space": "user", "orbit/team": poddefault["metadata"]["labels"].get("orbit/team", None), }, } create_poddefault( namespace=namespace, poddefault=construct(**kwargs), client=client, logger=logger, ) except ApiException as e: logger.warning( "Unable to create PodDefault %s in Namespace %s: %s", poddefault["metadata"]["name"], namespace, str(e.body), ) except Exception as e: logger.warning( "Failed to create PodDefault", str(e), )
def _install_helm_chart( helm_release: str, namespace: str, team: str, user: str, user_email: str, user_efsapid: str, repo: str, package: str, logger: kopf.Logger, ) -> bool: install_status = True # try to uninstall first try: cmd = f"helm uninstall --debug {helm_release} -n {team}" logger.debug("running cmd: %s", cmd) output = run_command(cmd) logger.debug(output) logger.info("finished cmd: %s", cmd) except Exception: logger.debug("helm uninstall did not find the release") cmd = ( f"/usr/local/bin/helm upgrade --install --devel --debug --namespace {team} " f"{helm_release} {repo}/{package} " f"--set user={user},user_email={user_email},namespace={namespace},user_efsapid={user_efsapid}" ) try: logger.debug("running cmd: %s", cmd) output = run_command(cmd) logger.debug(output) logger.info("finished cmd: %s", cmd) except Exception: logger.warning("errored cmd: %s", cmd) install_status = False return install_status