comparison gcp_batch_netcat.xml @ 5:b2ce158b4f22 draft

planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
author enis
date Thu, 24 Jul 2025 21:41:18 +0000
parents 2ff4a39ea41b
children d25792770df8
comparison
equal deleted inserted replaced
4:2ff4a39ea41b 5:b2ce158b4f22
1 <tool id="gcp_batch_netcat" name="GCP Batch Netcat" version="0.1.1"> 1 <tool id="gcp_batch_netcat" name="GCP Batch Netcat" version="0.2.0">
2 <description>Submit a job to GCP Batch and connect to an NFS server.</description> 2 <description>Submit a job to GCP Batch to test network connectivity.</description>
3 <requirements> 3 <requirements>
4 <!-- <requirement type="package" version="529.0.0">google-cloud-sdk</requirement>
5 <requirement type="package" version="0.7.1">netcat</requirement> -->
6 <container type="docker">afgane/gcp-batch-netcat:0.2.0</container> 4 <container type="docker">afgane/gcp-batch-netcat:0.2.0</container>
7 </requirements> 5 </requirements>
8 <command><![CDATA[ 6 <command><![CDATA[
9 python3 '$__tool_directory__/gcp_batch_netcat.py' --nfs_address '$nfs_address' --output '$output' --project '$project' --region '$region' --service_account_key '$service_account_key' --network '$network' --subnet '$subnet' 7 python3 '$__tool_directory__/gcp_batch_netcat.py'
8 --output '$output'
9 --project '$project'
10 --region '$region'
11 --service_account_key '$service_account_key'
12 --network '$network'
13 --subnet '$subnet'
14 #if $nfs_address
15 --nfs_address '$nfs_address'
16 #end if
10 ]]></command> 17 ]]></command>
11 <inputs> 18 <inputs>
12 <param name="region" type="text" label="GCP Batch Region" optional="false"/> 19 <param name="region" type="text" label="GCP Batch Region" optional="false" help="Region where the Batch job will run (e.g., us-central1)"/>
13 <param name="network" type="text" label="GCP Network name" optional="false"/> 20 <param name="network" type="text" label="GCP Network name" optional="false" help="VPC network name where Galaxy is deployed"/>
14 <param name="subnet" type="text" label="GCP Subnet name" optional="false"/> 21 <param name="subnet" type="text" label="GCP Subnet name" optional="false" help="Subnet name where Galaxy is deployed"/>
15 <param name="nfs_address" type="text" label="NFS Server Address" help="The address of the NFS server to connect to. If not provided, will be auto-detected." />
16 <param name="service_account_key" type="data" format="json" label="GCP Service Account Key File" help="JSON key file for GCP service account with Batch API permissions"/> 22 <param name="service_account_key" type="data" format="json" label="GCP Service Account Key File" help="JSON key file for GCP service account with Batch API permissions"/>
17 <param name="project" type="text" label="GCP Project ID" help="The ID of the GCP project to use. If not provided, will be extracted from the service account key."/> 23 <param name="project" type="text" label="GCP Project ID" help="The ID of the GCP project to use. If not provided, will be extracted from the service account key." optional="true"/>
24 <param name="nfs_address" type="text" label="NFS Server Address" help="The address of the NFS server to connect to. Default is the LoadBalancer external IP. If not provided, will be auto-detected from Galaxy's database mount." optional="false"/>
18 </inputs> 25 </inputs>
19 <outputs> 26 <outputs>
20 <data name="output" format="txt"/> 27 <data name="output" format="txt"/>
21 </outputs> 28 </outputs>
22 <help><![CDATA[ 29 <help><![CDATA[
23 **What it does** 30 **What it does**
24 31
25 Submits a job to GCP Batch that connects to the specified NFS server using netcat. 32 This enhanced tool submits a job to GCP Batch to test network connectivity between Batch workers and your NFS server. It runs comprehensive network debugging tests to help identify connectivity issues in Galaxy deployments on Google Kubernetes Engine (GKE).
33
34 **Enhanced Debugging Features**
35
36 The tool now provides detailed network analysis including:
37
38 * **Network Interface Information**: IP addresses, routing tables
39 * **DNS Configuration and Testing**: Nameserver configuration and resolution tests
40 * **Primary Connectivity Test**: Connection to NFS server on port 2049
41 * **Port Scanning**: Advanced port connectivity testing with nmap
42 * **Additional Tests**: External connectivity (Google DNS), Kubernetes API access
43 * **Network Path Tracing**: Traceroute to identify routing issues
44 * **Socket Statistics**: Active network connections
45 * **System Information**: Container OS, kernel, architecture details
46
47 **Troubleshooting Network Issues**
48
49 This tool is particularly useful when Galaxy jobs fail to access shared storage. The comprehensive test output helps identify the root cause:
50
51 * **Connection timeouts**: Usually indicates firewall rules blocking traffic or services not accessible from external networks
52 * **DNS resolution failures**: May indicate DNS configuration issues
53 * **External connectivity works but NFS fails**: Suggests NFS service is ClusterIP type (internal only)
54
55 **Viewing Detailed Results**
56
57 * **Basic results**: Available in the Galaxy output file
58 * **Detailed debugging logs**: Check Google Cloud Logging for comprehensive network analysis:
59 ```
60 gcloud logging read 'resource.type=gce_instance AND jsonPayload.job_name="netcat-job-xyz"' --project=your-project
61 ```
62
63 **Common Solutions**
64
65 If the test fails to connect to your NFS server:
66
67 1. **Use NodePort service** to expose NFS externally for testing
68 2. **Configure LoadBalancer** with proper firewall rules for production
69 3. **Consider Google Cloud Filestore** for managed NFS storage
70
71 The enhanced debugging output will guide you to the specific networking issue and solution.
26 ]]></help> 72 ]]></help>
27 </tool> 73 </tool>