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 ```