Mercurial > repos > enis > gcp_batch_netcat
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 |
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> |