Commit 7e215cca authored by Apoorva Srinivas Appadoo's avatar Apoorva Srinivas Appadoo
Browse files

fix: add to instance name to entrypoint in main.py

parent 10604c30
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -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.
@@ -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
@@ -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
@@ -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
+5 −1
Original line number Diff line number Diff line
@@ -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"),
@@ -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,
@@ -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(
@@ -236,4 +239,5 @@ def generate_kubeconfig(
        namespace=namespace,
        user_name=user_name,
        instance_id=instance_id,
        instance_name=instance_name,
    )