annotate gcp_batch_netcat.xml @ 9:3fd12035e6c9 draft

planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
author enis
date Sun, 10 Aug 2025 21:32:04 +0000
parents 7c660a6be068
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
1 <tool id="gcp_batch_netcat" name="GCP Batch Netcat" version="0.2.0">
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
2 <description>Submit a job to GCP Batch to test network connectivity.</description>
0
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
3 <requirements>
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents: 2
diff changeset
4 <container type="docker">afgane/gcp-batch-netcat:0.2.0</container>
0
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
5 </requirements>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
6 <command><![CDATA[
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
7 python3 '$__tool_directory__/gcp_batch_netcat.py'
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
8 --output '$output'
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
9 --project '$project'
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
10 --region '$region'
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
11 --service_account_key '$service_account_key'
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
12 --network '$network'
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
13 --subnet '$subnet'
7
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
14 --nfs_address '$nfs_address'
0
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
15 ]]></command>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
16 <inputs>
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
17 <param name="region" type="text" label="GCP Batch Region" optional="false" help="Region where the Batch job will run (e.g., us-central1)"/>
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
18 <param name="network" type="text" label="GCP Network name" optional="false" help="VPC network name where Galaxy is deployed"/>
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
19 <param name="subnet" type="text" label="GCP Subnet name" optional="false" help="Subnet name where Galaxy is deployed"/>
8
7c660a6be068 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 7
diff changeset
20 <param name="nfs_address" type="text" label="NFS Server Address" help="The LoadBalancer external IP address of the NFS server (e.g., 10.150.0.17). This must be the external IP, not the internal ClusterIP." optional="false"/>
2
79160beab2a4 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents: 1
diff changeset
21 <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"/>
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
22 <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"/>
0
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
23 </inputs>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
24 <outputs>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
25 <data name="output" format="txt"/>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
26 </outputs>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
27 <help><![CDATA[
9
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
28 <help><![CDATA[
0
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
29 **What it does**
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
30
9
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
31 This tool submits a job to GCP Batch to test network connectivity and NFS mounting between Batch workers and your NFS server. It uses a custom Galaxy VM image and provides comprehensive testing including NFS mount operations, CVMFS repository access, and directory listings to help identify connectivity issues in Galaxy deployments on Google Kubernetes Engine (GKE).
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
32
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
33 **Test Capabilities**
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
34
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
35 The tool performs comprehensive testing using a container running on the custom `galaxy-k8s-boot-v2025-08-10` VM image:
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
36 - Network connectivity test (netcat to port 2049)
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
37 - NFS mount test with both NFSv3 and NFSv4
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
38 - Directory listing of the NFS share
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
39 - Galaxy-specific directory detection
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
40 - CVMFS repository access test (via bind mount from host VM)
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
41 - Galaxy reference data verification
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
42 - Disk usage and mount information
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
43
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
44 **Architecture**
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
45
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
46 The tool uses a hybrid approach:
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
47 - **Host VM**: Custom `galaxy-k8s-boot-v2025-08-10` image with CVMFS client and NFS utilities
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
48 - **Container**: `afgane/gcp-batch-netcat:0.2.0` with network testing tools
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
49 - **Bind Mount**: `/cvmfs` from host VM is bind-mounted into the container for CVMFS access
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
50
7
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
51 **Required: NFS LoadBalancer External IP**
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
52
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
53 You must provide the external IP address of your NFS server's LoadBalancer service. This is crucial because:
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
54 - Galaxy sees the NFS server via its internal ClusterIP (e.g., 10.96.0.1)
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
55 - GCP Batch jobs run outside the cluster and need the LoadBalancer external IP (e.g., 10.150.0.17)
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
56
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
57 **Finding Your NFS LoadBalancer IP**
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
58
7
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
59 To find the correct IP address, run:
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
60 ```
9
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
61 kubectl get svc | grep nfs
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
62 kubectl get svc <nfs-service-name> -o wide
7
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
63 ```
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
64
fcfb703748b1 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 6
diff changeset
65 Look for the "EXTERNAL-IP" column for LoadBalancer type services.
6
d25792770df8 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 5
diff changeset
66
d25792770df8 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 5
diff changeset
67 **Important: LoadBalancer Configuration**
d25792770df8 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 5
diff changeset
68
9
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
69 For NFS connectivity from GCP Batch jobs, your NFS server must be exposed via a LoadBalancer service with an external IP. The tool also requires:
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
70 - NFS ports (2049, 111, 20048) accessible from external networks
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
71 - Proper NFS export configuration allowing external mounts
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
72 - VM runs with sufficient privileges for mount operations
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
73
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
74 **Troubleshooting Results**
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
75
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
76 The tool provides detailed diagnostics:
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
77 - **Network connectivity success + NFS mount success**: Everything working correctly
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
78 - **Network connectivity success + NFS mount failure**: Network works but NFS configuration issues
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
79 - **Network connectivity failure**: Firewall or LoadBalancer configuration issues
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
80 - **CVMFS mount success/failure**: Indicates broader network connectivity and VM image capabilities
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
81
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
82 **Best Practices**
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
83
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
84 1. Ensure your NFS service is exposed as type LoadBalancer with an external IP
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
85 2. Verify GCP firewall rules allow traffic from Batch subnet to NFS LoadBalancer IP on ports 2049, 111, and 20048
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
86 3. Check NFS export configuration allows mounting from external IPs
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
87 4. Test the connection manually: `telnet <EXTERNAL-IP> 2049`
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
88 5. Verify the custom VM image is available in your GCP project
3fd12035e6c9 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit 4194f0defc4bebd6c95c76b58860c9ae6b9d1899-dirty
enis
parents: 8
diff changeset
89 ]]>
5
b2ce158b4f22 planemo upload commit ece227052d14d755b0d0b07a827152b2e98fb94b
enis
parents: 4
diff changeset
90
0
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
91 ]]></help>
7852c0efafd7 planemo upload for repository https://github.com/afgane/gcp_batch_netcat
enis
parents:
diff changeset
92 </tool>