Mercurial > repos > enis > gcp_batch_netcat
comparison README.md @ 4:2ff4a39ea41b draft
planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
author | enis |
---|---|
date | Tue, 22 Jul 2025 14:47:47 +0000 |
parents | |
children | d25792770df8 |
comparison
equal
deleted
inserted
replaced
3:0ea626b10557 | 4:2ff4a39ea41b |
---|---|
1 # GCP Batch Netcat Galaxy Tool | |
2 | |
3 A Galaxy tool that submits a job to Google Cloud Platform (GCP) Batch service to test connectivity to an NFS server using `netcat`. This tool is predominantly intended for use with Galaxy deployments using the Galaxy Helm chart, where it can verify network connectivity between GCP Batch workers and NFS storage systems. | |
4 | |
5 ## Overview | |
6 | |
7 This tool creates and submits a GCP Batch job that runs a simple network connectivity test to an NFS server using `netcat` (nc). It's particularly useful for: | |
8 - Testing network connectivity between GCP Batch compute nodes and NFS storage | |
9 - Validating that firewall rules allow communication on port 2049 (NFS) | |
10 - Troubleshooting connectivity issues in Galaxy deployments on Kubernetes | |
11 | |
12 The tool is available in the Main Tool Shed at: | |
13 https://toolshed.g2.bx.psu.edu/view/enis/gcp_batch_netcat/ | |
14 | |
15 ## For use with the Galaxy Helm Chart | |
16 | |
17 This tool is specifically designed for Galaxy deployments using the Galaxy Helm chart on Google Kubernetes Engine (GKE). A sample deployment can be obtained using the [galaxy-k8s-boot repository](https://github.com/galaxyproject/galaxy-k8s-boot/). | |
18 | |
19 ## Input Parameters Reference | |
20 | |
21 The Galaxy tool interface presents the following parameters: | |
22 | |
23 ### Required Parameters | |
24 | |
25 #### **GCP Batch Region** | |
26 - **Galaxy Label**: "GCP Batch Region" | |
27 - **Description**: The GCP region where the Batch job will be submitted | |
28 - **Example**: `us-central1` | |
29 - **Note**: Choose the region as the Galaxy deployment | |
30 | |
31 #### **GCP Network name** | |
32 - **Galaxy Label**: "GCP Network name" | |
33 - **Description**: The name of the GCP VPC network in which Galaxy runs | |
34 - **Examples**: `default`, `galaxy-vpc` | |
35 - **Important**: The network must allow communication between Batch workers and the Galaxy NFS server | |
36 | |
37 #### **GCP Subnet name** | |
38 - **Galaxy Label**: "GCP Subnet name" | |
39 - **Description**: The name of the subnet in which Galaxy runs | |
40 - **Examples**: `default` | |
41 | |
42 #### **GCP Service Account Key File** | |
43 - **Galaxy Label**: "GCP Service Account Key File" | |
44 - **Format**: JSON file | |
45 - **Description**: Upload the JSON key file for a GCP service account with Batch API permissions | |
46 - **Required Permissions**: | |
47 - Batch Job Editor role (or equivalent permissions) | |
48 - Access to the specified network and subnet | |
49 - **How to Create**: | |
50 1. Go to GCP Console → IAM & Admin → Service Accounts | |
51 2. Create a new service account or select existing one | |
52 3. Assign "Batch Job Editor" role | |
53 4. Create and download JSON key | |
54 | |
55 ### Optional Parameters | |
56 | |
57 #### **NFS Server Address** | |
58 - **Galaxy Label**: "NFS Server Address" | |
59 - **Description**: IP address or hostname of the NFS server to test connectivity to. This is the same address as Galaxy is using. | |
60 - **Auto-detection**: If not supplied, the tool attempts to detect the NFS server from Galaxy's database mount. This is the preferred mode of operation. | |
61 - **Example**: `10.0.0.100` | |
62 - **When to specify**: Use when auto-detection fails or when testing a different NFS server | |
63 | |
64 #### **GCP Project ID** | |
65 - **Galaxy Label**: "GCP Project ID" | |
66 - **Description**: The ID of the GCP project where the Batch job should be created | |
67 - **Auto-extraction**: If left blank, the project ID is automatically extracted from the service account key file | |
68 - **Example**: `my-galaxy-project` | |
69 | |
70 ## Using the Tool in Galaxy | |
71 | |
72 ### What Happens | |
73 | |
74 The tool will: | |
75 - Submit a lightweight job to GCP Batch in your specified region and network | |
76 - Test connectivity to the NFS server on port 2049 using `netcat` | |
77 - Return a report showing whether the connection was successful | |
78 | |
79 ## Setup Requirements | |
80 | |
81 Before using this tool in Galaxy, ensure you have: | |
82 | |
83 ### GCP Prerequisites | |
84 - A GCP project with the Batch API enabled | |
85 - A VPC network and subnet where both Galaxy and the NFS server can communicate | |
86 - A service account with "Batch Job Editor" role | |
87 - Downloaded JSON key file for the service account | |
88 | |
89 ### Network Configuration | |
90 - Firewall rule allowing traffic from the Batch subnet to NFS server on port 2049 for the specified network: | |
91 ``` | |
92 gcloud compute firewall-rules create allow-nfs-from-batch \ | |
93 --network=NETWORK_NAME \ | |
94 --allow=tcp:2049 | |
95 ``` | |
96 | |
97 ### NFS server Setup | |
98 - The Ganesha NFS service needs to use an internal LoadBalancer | |
99 ``` | |
100 apiVersion: v1 | |
101 kind: Service | |
102 metadata: | |
103 name: nfs-provisioner-nfs-server-provisioner | |
104 namespace: nfs-provisioner | |
105 annotations: | |
106 cloud.google.com/load-balancer-type: "Internal" | |
107 ... | |
108 spec: | |
109 type: LoadBalancer | |
110 ... | |
111 ``` |