comparison gcp_batch_netcat.xml @ 7:fcfb703748b1 draft

planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
author enis
date Thu, 24 Jul 2025 22:32:12 +0000
parents d25792770df8
children 7c660a6be068
comparison
equal deleted inserted replaced
6:d25792770df8 7:fcfb703748b1
9 --project '$project' 9 --project '$project'
10 --region '$region' 10 --region '$region'
11 --service_account_key '$service_account_key' 11 --service_account_key '$service_account_key'
12 --network '$network' 12 --network '$network'
13 --subnet '$subnet' 13 --subnet '$subnet'
14 #if $nfs_address 14 --nfs_address '$nfs_address'
15 --nfs_address '$nfs_address'
16 #end if
17 ]]></command> 15 ]]></command>
18 <inputs> 16 <inputs>
19 <param name="region" type="text" label="GCP Batch Region" optional="false" help="Region where the Batch job will run (e.g., us-central1)"/> 17 <param name="region" type="text" label="GCP Batch Region" optional="false" help="Region where the Batch job will run (e.g., us-central1)"/>
20 <param name="network" type="text" label="GCP Network name" optional="false" help="VPC network name where Galaxy is deployed"/> 18 <param name="network" type="text" label="GCP Network name" optional="false" help="VPC network name where Galaxy is deployed"/>
21 <param name="subnet" type="text" label="GCP Subnet name" optional="false" help="Subnet name where Galaxy is deployed"/> 19 <param name="subnet" type="text" label="GCP Subnet name" optional="false" help="Subnet name where Galaxy is deployed"/>
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"/> 20 <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"/>
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"/> 21 <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 LoadBalancer external IP address of the NFS server (e.g., 10.150.0.17). If not provided, the tool will attempt to auto-discover it via Kubernetes API." optional="true"/> 22 <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"/>
25 </inputs> 23 </inputs>
26 <outputs> 24 <outputs>
27 <data name="output" format="txt"/> 25 <data name="output" format="txt"/>
28 </outputs> 26 </outputs>
29 <help><![CDATA[ 27 <help><![CDATA[
30 **What it does** 28 **What it does**
31 29
32 This tool submits a job to GCP Batch to test network connectivity between Batch workers and your NFS server. It provides network debugging to help identify connectivity issues in Galaxy deployments on Google Kubernetes Engine (GKE). 30 This tool submits a job to GCP Batch to test network connectivity between Batch workers and your NFS server. It provides network debugging to help identify connectivity issues in Galaxy deployments on Google Kubernetes Engine (GKE).
33 31
34 **NFS Address Auto-Discovery** 32 **Required: NFS LoadBalancer External IP**
35 33
36 If you don't provide an NFS server address, the tool will attempt to auto-discover it by: 34 You must provide the external IP address of your NFS server's LoadBalancer service. This is crucial because:
37 - Using Kubernetes API to find NFS LoadBalancer services and their external IPs 35 - Galaxy sees the NFS server via its internal ClusterIP (e.g., 10.96.0.1)
38 - Looking for services with names containing 'nfs', 'nfs-server', 'nfs-provisioner', or 'nfs-ganesha' 36 - GCP Batch jobs run outside the cluster and need the LoadBalancer external IP (e.g., 10.150.0.17)
37
38 **Finding Your NFS LoadBalancer IP**
39
40 To find the correct IP address, run:
41 ```
42 kubectl get svc | grep nfs
43 kubectl get svc <nfs-service-name> -o wide
44 ```
45
46 Look for the "EXTERNAL-IP" column for LoadBalancer type services.
39 47
40 **Important: LoadBalancer Configuration** 48 **Important: LoadBalancer Configuration**
41 49
42 For NFS connectivity from GCP Batch jobs, your NFS server must be exposed via a LoadBalancer service with an external IP. Internal ClusterIP services are not accessible from external Batch workers. 50 For NFS connectivity from GCP Batch jobs, your NFS server must be exposed via a LoadBalancer service with an external IP. Internal ClusterIP services are not accessible from external Batch workers.
43 51
44 **Troubleshooting Network Issues** 52 **Troubleshooting Network Issues**
45 53
46 The tool helps identify the root cause of connectivity issues: 54 The tool helps identify the root cause of connectivity issues:
47 - **Connection timeouts**: Usually indicates firewall rules blocking traffic or NFS service not accessible externally 55 - **Connection timeouts**: Usually indicates firewall rules blocking traffic or NFS service not accessible externally
48 - **DNS resolution failures**: May indicate DNS configuration issues 56 - **DNS resolution failures**: May indicate DNS configuration issues
49 - **Auto-discovery fails**: NFS service may only be exposed as ClusterIP (internal only) 57 - **Wrong IP address**: Ensure you're using the LoadBalancer external IP, not the ClusterIP
50 58
51 **Best Practices** 59 **Best Practices**
52 60
53 1. For most reliable results, provide the LoadBalancer external IP explicitly in the "NFS Server Address" field 61 1. Ensure your NFS service is exposed as type LoadBalancer with an external IP
54 2. If auto-discovery fails, check that your NFS service is properly exposed with a LoadBalancer type 62 2. Verify GCP firewall rules allow traffic from Batch subnet to NFS LoadBalancer IP on port 2049
55 3. Ensure GCP firewall rules allow traffic from Batch subnet to NFS LoadBalancer IP on port 2049 63 3. Test the connection manually: `telnet <EXTERNAL-IP> 2049`
56 ]]></help> 64 ]]></help>
57 </tool> 65 </tool>