Skip to content

Instantly share code, notes, and snippets.

View ksuderman's full-sized avatar

Keith Suderman ksuderman

View GitHub Profile
@ksuderman
ksuderman / helm-app.md
Last active June 5, 2026 16:22
Galaxy Helm Chart Release App Creation

Creating the release GitHub App

The release workflow uses a GitHub App (rather than the default GITHUB_TOKEN) because it must bypass branch protection to push the version-bump commit and tag to master, publish to another repository, and trigger a downstream repo. The default GITHUB_TOKEN cannot do these things.

  1. Create the App. Go to the organization's Settings → Developer settings → GitHub Apps → New GitHub App (an org-owned App is recommended over a personal one so ownership survives
@ksuderman
ksuderman / github-app-token-setup.md
Created April 16, 2026 18:37
GitHub App Token Setup for Galaxy Helm Chart Updates

GitHub App Token Setup for Galaxy Helm Chart Updates

This document explains how to create a GitHub App token for the workflow that automatically creates PRs to update the Galaxy Helm chart when new Galaxy releases are tagged.

Why Use GitHub App Tokens?

GitHub App tokens are more secure than Personal Access Tokens (PATs) because they provide:

  • Better Security: Scoped permissions, automatic token rotation
  • Better Audit Trail: Actions appear as performed by the app
  • No User Dependencies: Doesn't depend on individual user accounts
@ksuderman
ksuderman / comparison.html
Created March 8, 2026 14:30
Compare Pulsar and Direct GCP Batch job runners
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pulsar vs GCP Batch: Runtime Comparison</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
@ksuderman
ksuderman / parallel-tool-loading-results.md
Created February 3, 2026 19:06
Parallel tool loading comparison

Parallel Tool Loading Results

Date: 2026-02-03 Cluster: ks-gcp-test (GCP) Galaxy Image: ksuderman/galaxy-guerler:26.0.dev0 Tools: ~2,776 total (~2,673 from CVMFS, 103 local)

Test Configurations

| Test | Workers | Configuration |

@ksuderman
ksuderman / GCP_BATCH_COMPARISON.md
Created January 15, 2026 02:14
Compare and contrast the two options available to dispatch Galaxy jobs to Google Batch.

GCP Batch Job Runners Comparison

Galaxy supports two approaches for dispatching jobs to Google Cloud Batch: the Direct GCP Batch Runner and the Pulsar GCP Batch Runner. Each has distinct architectures and trade-offs.

Architecture Overview

Direct GCP Batch Runner (gcp_batch)

  • Runner class: galaxy.jobs.runners.gcp_batch:GoogleCloudBatchJobRunner
  • File access: NFS mount from Kubernetes cluster
@ksuderman
ksuderman / scikit.ipynb
Last active August 22, 2025 13:22
Jupyter Playbook - scikit 01
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@ksuderman
ksuderman / Instructions.md
Last active June 3, 2024 20:07
Patch to fix NFS permission problems

Installations instructions

PR #314 had the unfortunate side effect of breaking some tools with permission denied or file not found errors. This affects Helms chart versions 5.10.0 through 5.14.0. Until that PR is rolled back please add the above YAML snippet when installing Galaxy to Kubernetes with the Galaxy Helm chart.

  1. Use curl to download the nfs-fix.yml file. If you copy/paste the nfs-fix.yml file be sure to do so from the raw view
curl -o nfs-fix.yml https://gist.githubusercontent.com/ksuderman/7147b41832ab9434a243fbe58141a7a4/raw/c29820b60de205b0ab55d9d1c92acdaffa3894bb/nfs-fix.yml
  1. Include the nfs-fix.yml file as one of the --values files in the helm install command.
@ksuderman
ksuderman / gist.txt
Created May 11, 2024 13:29
Pod details for failed SnpEff job
apiVersion: v1
kind: Pod
metadata:
name: gxy-galaxy-7sfwd-bcf7s
generateName: gxy-galaxy-7sfwd-
namespace: galaxy
uid: 6d31be0a-146b-498a-82ad-1cd91f99d7ac
resourceVersion: '77286'
creationTimestamp: '2024-05-11T08:49:46Z'
labels:
@ksuderman
ksuderman / GalaxyTests1C.md
Created October 30, 2023 19:37
Galaxy Test Summary

The approximate number and type of each kind of tests run as GitHub actions as of Oct 30, 2023

Test Number
API 1724
Client 834
Converter 109
DB Migration 92
Framework 360
Integration 889
@ksuderman
ksuderman / log-timing.py
Created October 19, 2023 16:04
Compare greedy vs lazy string interpolation in log messages
# A simple timing test to compare lazy and greedy string interpolation
# in log messages
import timeit
# Debug messages will not be logged
SETUP = '''
import logging
logging.basicConfig(level=logging.WARNING)
log = logging.getLogger("mylogger")