annotate README.md @ 11:fe0bf22037a5 draft

planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
author enis
date Thu, 14 Aug 2025 16:39:36 +0000
parents d25792770df8
children 56543de39954
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
1 # GCP Batch NFS and CVMFS Connectivity Test Tool
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
2
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
3 A Galaxy tool that submits a job to Google Cloud Platform (GCP) Batch service to
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
4 test comprehensive network connectivity to NFS storage and CVMFS repositories.
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
5 This tool is specifically designed for Galaxy deployments using the Galaxy Helm
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
6 chart, where it validates connectivity between GCP Batch workers and critical
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
7 Galaxy infrastructure services.
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
8
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
9 ## Overview
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
10
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
11 This tool creates and submits a GCP Batch job that runs comprehensive
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
12 connectivity tests using a custom VM image with CVMFS support. It's particularly
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
13 useful for:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
14 - Testing network connectivity and mounting capabilities for NFS storage servers
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
15 - Validating access to Galaxy's CVMFS reference data repositories
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
16 - Verifying NFSv4.2 mounting with proper security contexts
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
17 - Testing specific Galaxy reference data file access (e.g., Arabidopsis TAIR10)
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
18 - Troubleshooting connectivity issues in Galaxy deployments on Kubernetes
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
19 - Debugging firewall rules, NFS export configurations, and CVMFS client setup
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
20 - Comprehensive Network Diagnostics: DNS resolution, routing, and external connectivity
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
21 - Custom VM Integration: Uses galaxy-k8s-boot-v2025-08-12 image with pre-configured CVMFS client
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
22
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
23 The tool is available in the Main Tool Shed at:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
24 https://toolshed.g2.bx.psu.edu/view/enis/gcp_batch_netcat/
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
25
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
26 ## For use with the Galaxy Helm Chart
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
27
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
28 This tool is specifically designed for Galaxy deployments using the Galaxy Helm
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
29 chart. A sample deployment can be obtained using the [galaxy-k8s-boot
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
30 repository](https://github.com/galaxyproject/galaxy-k8s-boot/).
6
d25792770df8 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 4
diff changeset
31
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
32 ## Input Parameters Reference
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
33
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
34 The Galaxy tool interface presents the following parameters:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
35
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
36 ### Required Parameters
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
37
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
38 #### **GCP Batch Region**
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
39 - **Galaxy Label**: "GCP Batch Region"
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
40 - **Description**: The GCP region where the Batch job will be submitted
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
41 - **Example**: `us-central1`
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
42 - **Note**: Choose the region as the Galaxy deployment
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
43
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
44 #### **GCP Network name**
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
45 - **Galaxy Label**: "GCP Network name"
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
46 - **Description**: The name of the GCP VPC network in which Galaxy runs
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
47 - **Examples**: `default`, `galaxy-vpc`
6
d25792770df8 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit ece227052d14d755b0d0b07a827152b2e98fb94b-dirty
enis
parents: 4
diff changeset
48 - **Important**: The network must allow communication between Batch workers and the target services
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
49
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
50 #### **GCP Subnet name**
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
51 - **Galaxy Label**: "GCP Subnet name"
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
52 - **Description**: The name of the subnet in which Galaxy runs
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
53 - **Examples**: `default`
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
54
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
55 #### **NFS Server Address**
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
56 - **Galaxy Label**: "NFS Server Address"
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
57 - **Description**: LoadBalancer external IP address of the NFS service that GCP Batch jobs should connect to. This is typically a private IP within your VPC network that's accessible to Batch jobs but not the public internet. This must be the LoadBalancer external IP, not the ClusterIP that Galaxy pods use internally.
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
58 - **Example**: `10.150.0.60` (LoadBalancer external IP - private within VPC)
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
59 - **Important**: This is different from the internal ClusterIP (e.g., `10.43.86.187`) that Galaxy pods use
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
60 - **How to find**: `kubectl get svc -n nfs-provisioner` and look for the EXTERNAL-IP of the LoadBalancer service
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
61
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
62 #### **GCP Service Account Key File**
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
63 - **Galaxy Label**: "GCP Service Account Key File"
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
64 - **Format**: JSON file
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
65 - **Description**: Upload the JSON key file for a GCP service account with Batch API permissions
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
66 - **Required Permissions**:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
67 - Batch Job Editor role (or equivalent permissions)
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
68 - Access to the specified network and subnet
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
69 - **How to Create**:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
70 1. Go to GCP Console → IAM & Admin → Service Accounts
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
71 2. Create a new service account or select existing one
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
72 3. Assign "Batch Job Editor" role
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
73 4. Create and download JSON key
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
74
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
75 ### Optional Parameters
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
76
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
77 #### **GCP Project ID**
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
78 - **Galaxy Label**: "GCP Project ID"
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
79 - **Description**: The ID of the GCP project where the Batch job should be created
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
80 - **Auto-extraction**: If left blank, the project ID is automatically extracted from the service account key file
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
81 - **Example**: `my-galaxy-project`
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
82
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
83 ## Using the Tool in Galaxy
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
84
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
85 ### What Happens
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
86
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
87 The tool will:
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
88 1. **Submit a GCP Batch job** using a custom VM image (galaxy-k8s-boot-v2025-08-12) with CVMFS client pre-installed
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
89 2. **Trigger CVMFS mount** on the host VM by accessing the Galaxy data repository
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
90 3. **Run a container** with bind-mounted CVMFS from the host to test comprehensive connectivity
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
91 4. **Test NFS connectivity** including:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
92 - Basic network connectivity to port 2049
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
93 - NFS volume mounting via GCP Batch (avoiding container capability issues)
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
94 - Directory listing and dynamic PVC discovery
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
95 - Search for actual Galaxy directories (jobs_directory, shed_tools, objects, tools, cache)
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
96 - Write access testing to verify Batch job permissions
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
97 5. **Test CVMFS access** including:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
98 - Repository accessibility and directory listing
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
99 - Specific file access (Arabidopsis TAIR10 reference genome)
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
100 - Galaxy reference data directory validation
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
101 6. **Comprehensive network diagnostics** including:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
102 - DNS resolution testing
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
103 - Network routing analysis
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
104 - External connectivity verification
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
105 7. **Generate detailed report** with success/failure status and troubleshooting information
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
106
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
107 ## Setup Requirements
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
108
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
109 Before using this tool in Galaxy, ensure you have:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
110
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
111 ### GCP Prerequisites
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
112 - A GCP project with the Batch API enabled
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
113 - A VPC network and subnet where both Galaxy and the NFS server can communicate
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
114 - A service account with "Batch Job Editor" role
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
115 - Downloaded JSON key file for the service account
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
116 - Access to the custom VM image: e.g., `galaxy-k8s-boot-v2025-08-12`
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
117
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
118 ### Network Configuration
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
119 - Firewall rule allowing traffic from the Batch subnet to NFS server (all required NFS ports):
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
120 ```
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
121 gcloud compute firewall-rules create allow-nfs-from-batch \
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
122 --network=NETWORK_NAME \
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
123 --allow=tcp:2049,tcp:111,tcp:20048,udp:111,udp:2049
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
124 ```
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
125 **Important**: Port 111 (RPC portmapper) is critical for NFS mounting to work. Without it, you'll get "operation not permitted" errors even if port 2049 is accessible.
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
126
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
127 ### NFS Server Setup
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
128 - The NFS service must be accessible via LoadBalancer with external IP (typically private within VPC)
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
129 - NFS server should support NFSv4.2 with sec=sys security
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
130 - Exports should be configured to allow access from GCP Batch subnet
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
131 ```
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
132 apiVersion: v1
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
133 kind: Service
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
134 metadata:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
135 name: nfs-provisioner-nfs-server-provisioner
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
136 namespace: nfs-provisioner
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
137 annotations:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
138 cloud.google.com/load-balancer-type: "Internal"
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
139 spec:
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
140 type: LoadBalancer
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
141 ports:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
142 - name: nfs
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
143 port: 2049
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
144 protocol: TCP
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
145 - name: rpcbind
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
146 port: 111
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
147 protocol: TCP
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
148 - name: mountd
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
149 port: 20048
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
150 protocol: TCP
4
2ff4a39ea41b planemo upload commit 1bf6938d35be8e67e317f504f43f281ce7dc06e6
enis
parents:
diff changeset
151 ```
11
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
152
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
153 ### CVMFS Requirements
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
154 - The custom VM image includes a pre-configured CVMFS client
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
155 - CVMFS repositories are mounted via autofs on first access
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
156 - Galaxy data repository (`data.galaxyproject.org`) should be accessible
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
157 - Network connectivity to CVMFS stratum servers
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
158
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
159 ## Key Features
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
160
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
161 ### NFS Volume Mounting
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
162 The tool uses GCP Batch's native NFS volume support instead of attempting to mount from within containers. This approach:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
163 - **Eliminates capability issues**: No need for privileged containers or CAP_SYS_ADMIN
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
164 - **Improves reliability**: Batch handles the mount with full host privileges
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
165 - **Simplifies debugging**: Clear separation between network connectivity and mount issues
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
166
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
167 ### Dynamic Galaxy Directory Discovery
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
168 The tool automatically discovers Galaxy installations regardless of PVC structure:
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
169 - **Smart PVC detection**: Finds all `pvc-*` directories under `/export`
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
170 - **Flexible directory mapping**: Adapts to actual Galaxy directory structure (`jobs_directory`, `shed_tools`, etc.)
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
171 - **Comprehensive validation**: Tests both read and write access to Galaxy directories
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
172 - **Detailed reporting**: Shows directory contents, sizes, and file counts for verification
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
173
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
174 ### Comprehensive Testing
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
175 - **Network connectivity**: Basic port testing and DNS resolution
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
176 - **NFS functionality**: Mount verification and directory access
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
177 - **CVMFS access**: Repository mounting and file availability
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
178 - **Galaxy structure**: Specific directory and file validation
fe0bf22037a5 planemo upload for repository https://github.com/afgane/gcp_batch_netcat commit f730cbb207e028a5d4fd982fe65ece7345af4879
enis
parents: 6
diff changeset
179 - **Write permissions**: Actual file creation tests to verify Batch job capabilities