Loading aws_auth_provider/kubeconfig.py +13 −7 Original line number Diff line number Diff line Loading @@ -192,6 +192,7 @@ def generate_kubeconfig( namespace: str = Query(default="default", alias="namespace"), user_name: str = Query(default="kubectl-user", alias="user_name"), instance_id: str = Query(default=None, alias="instance_id"), instance_name: str = Query(default=None, alias="instance_name"), ) -> str: """ Generate a kubeconfig file by retrieving cluster information from AWS EKS. Loading @@ -206,6 +207,7 @@ def generate_kubeconfig( namespace: Default namespace (default: "default") user_name: Username for the kubeconfig (default: "kubectl-user") instance_id: EC2 instance ID for SSM port forwarding (required for private clusters, optional for public clusters) instance_name: EC2 instance Name tag for SSM port forwarding (alternative to instance_id) Returns: YAML-formatted kubeconfig as a string Loading Loading @@ -260,24 +262,27 @@ def generate_kubeconfig( endpoint_private_access = resources_vpc_config.get("endpointPrivateAccess", False) is_private_cluster = not endpoint_public_access and endpoint_private_access use_ssm = is_private_cluster or instance_id is not None use_ssm = is_private_cluster or instance_id is not None or instance_name is not None # Save original endpoint for metadata and verification original_endpoint = cluster_endpoint if use_ssm: # For private clusters, instance_id is required if is_private_cluster and not instance_id: # For private clusters, instance_id or instance_name is required if is_private_cluster and not instance_id and not instance_name: raise HTTPException( status_code=400, detail=f"Private cluster '{cluster_name}' requires 'instance_id' parameter. " f"Please provide an EC2 instance ID with SSM agent in the cluster's VPC for port forwarding.", detail=f"Private cluster '{cluster_name}' requires 'instance_id' or 'instance_name' parameter. " f"Please provide an EC2 instance ID or Name tag with SSM agent in the cluster's VPC for port forwarding.", ) logger.info( f"Instance ID provided, using SSM port forwarding for cluster {cluster_name}" f"Instance ID/Name provided, using SSM port forwarding for cluster {cluster_name}" ) if instance_id: logger.info(f"Using provided instance ID: {instance_id}") else: logger.info(f"Using provided instance name: {instance_name}") # Parse the cluster endpoint to get host and port original_endpoint = cluster_endpoint # Save original endpoint before proxying Loading @@ -296,6 +301,7 @@ def generate_kubeconfig( region=region, role_arn=role_arn, instance_id=instance_id, instance_name=instance_name, remote_port=remote_port, remote_host=remote_host, local_port=None, # Let it find an available port Loading aws_auth_provider/main.py +5 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,8 @@ def start_ssm_port_forward_endpoint( env_ctx: str = Query(default=None, alias="env_ctx"), region: str = Query(default=None, alias="region"), role_arn: str = Query(default=None, alias="role_arn"), instance_id: str = Query(alias="instance_id"), instance_id: str = Query(default=None, alias="instance_id"), instance_name: str = Query(default=None, alias="instance_name"), remote_port: int = Query(alias="remote_port"), remote_host: str = Query(default=None, alias="remote_host"), local_port: int = Query(default=None, alias="local_port"), Loading @@ -207,6 +208,7 @@ def start_ssm_port_forward_endpoint( region=region, role_arn=role_arn, instance_id=instance_id, instance_name=instance_name, remote_port=remote_port, remote_host=remote_host, local_port=local_port, Loading @@ -225,6 +227,7 @@ def generate_kubeconfig( namespace: str = Query(default="default", alias="namespace"), user_name: str = Query(default="kubectl-user", alias="user_name"), instance_id: str = Query(default=None, alias="instance_id"), instance_name: str = Query(default=None, alias="instance_name"), ) -> str: """Generate a kubeconfig file by retrieving cluster information from AWS EKS.""" return kubeconfig.generate_kubeconfig( Loading @@ -236,4 +239,5 @@ def generate_kubeconfig( namespace=namespace, user_name=user_name, instance_id=instance_id, instance_name=instance_name, ) Loading
aws_auth_provider/kubeconfig.py +13 −7 Original line number Diff line number Diff line Loading @@ -192,6 +192,7 @@ def generate_kubeconfig( namespace: str = Query(default="default", alias="namespace"), user_name: str = Query(default="kubectl-user", alias="user_name"), instance_id: str = Query(default=None, alias="instance_id"), instance_name: str = Query(default=None, alias="instance_name"), ) -> str: """ Generate a kubeconfig file by retrieving cluster information from AWS EKS. Loading @@ -206,6 +207,7 @@ def generate_kubeconfig( namespace: Default namespace (default: "default") user_name: Username for the kubeconfig (default: "kubectl-user") instance_id: EC2 instance ID for SSM port forwarding (required for private clusters, optional for public clusters) instance_name: EC2 instance Name tag for SSM port forwarding (alternative to instance_id) Returns: YAML-formatted kubeconfig as a string Loading Loading @@ -260,24 +262,27 @@ def generate_kubeconfig( endpoint_private_access = resources_vpc_config.get("endpointPrivateAccess", False) is_private_cluster = not endpoint_public_access and endpoint_private_access use_ssm = is_private_cluster or instance_id is not None use_ssm = is_private_cluster or instance_id is not None or instance_name is not None # Save original endpoint for metadata and verification original_endpoint = cluster_endpoint if use_ssm: # For private clusters, instance_id is required if is_private_cluster and not instance_id: # For private clusters, instance_id or instance_name is required if is_private_cluster and not instance_id and not instance_name: raise HTTPException( status_code=400, detail=f"Private cluster '{cluster_name}' requires 'instance_id' parameter. " f"Please provide an EC2 instance ID with SSM agent in the cluster's VPC for port forwarding.", detail=f"Private cluster '{cluster_name}' requires 'instance_id' or 'instance_name' parameter. " f"Please provide an EC2 instance ID or Name tag with SSM agent in the cluster's VPC for port forwarding.", ) logger.info( f"Instance ID provided, using SSM port forwarding for cluster {cluster_name}" f"Instance ID/Name provided, using SSM port forwarding for cluster {cluster_name}" ) if instance_id: logger.info(f"Using provided instance ID: {instance_id}") else: logger.info(f"Using provided instance name: {instance_name}") # Parse the cluster endpoint to get host and port original_endpoint = cluster_endpoint # Save original endpoint before proxying Loading @@ -296,6 +301,7 @@ def generate_kubeconfig( region=region, role_arn=role_arn, instance_id=instance_id, instance_name=instance_name, remote_port=remote_port, remote_host=remote_host, local_port=None, # Let it find an available port Loading
aws_auth_provider/main.py +5 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,8 @@ def start_ssm_port_forward_endpoint( env_ctx: str = Query(default=None, alias="env_ctx"), region: str = Query(default=None, alias="region"), role_arn: str = Query(default=None, alias="role_arn"), instance_id: str = Query(alias="instance_id"), instance_id: str = Query(default=None, alias="instance_id"), instance_name: str = Query(default=None, alias="instance_name"), remote_port: int = Query(alias="remote_port"), remote_host: str = Query(default=None, alias="remote_host"), local_port: int = Query(default=None, alias="local_port"), Loading @@ -207,6 +208,7 @@ def start_ssm_port_forward_endpoint( region=region, role_arn=role_arn, instance_id=instance_id, instance_name=instance_name, remote_port=remote_port, remote_host=remote_host, local_port=local_port, Loading @@ -225,6 +227,7 @@ def generate_kubeconfig( namespace: str = Query(default="default", alias="namespace"), user_name: str = Query(default="kubectl-user", alias="user_name"), instance_id: str = Query(default=None, alias="instance_id"), instance_name: str = Query(default=None, alias="instance_name"), ) -> str: """Generate a kubeconfig file by retrieving cluster information from AWS EKS.""" return kubeconfig.generate_kubeconfig( Loading @@ -236,4 +239,5 @@ def generate_kubeconfig( namespace=namespace, user_name=user_name, instance_id=instance_id, instance_name=instance_name, )