Skip to content

Instantly share code, notes, and snippets.

View frobware's full-sized avatar

Andy McDermott frobware

  • Red Hat
  • UK
  • 03:47 (UTC +01:00)
View GitHub Profile
import CommonCrypto
import CSSH2
import Foundation
/// Raw libssh2 operations with no orchestration logic.
///
/// Each method performs a single discrete step (TCP connect,
/// handshake, authenticate, open channel). The TransportDriver
/// calls these in the order dictated by the state machine.
public final class SSHConnection: @unchecked Sendable {

❯ And how did I advertise the local LAN?

● Let me check the NixOS configuration for tailgate01.

● Searched for 2 patterns, read 1 file (ctrl+o to expand)

● The route is advertised via the services.tailscale-gateway NixOS module at line 50-56. Let me find the module to show you the details.

● Searched for 1 pattern, read 1 file (ctrl+o to expand)

@frobware
frobware / issue.md
Last active March 18, 2026 17:33
konflux

Konflux bundle coordination problem

Background

The openshift/bpfman-operator repository builds three container images from the same codebase via Konflux:

  • bpfman-operator (the operator binary)
  • bpfman-agent (the agent DaemonSet binary)
  • bpfman-operator-bundle (the OLM bundle)
@frobware
frobware / bpfman-cli-walkthrough.md
Created February 11, 2026 14:39
bpfman CLI walkthrough -- real output from every program type and output format

bpfman CLI Walkthrough

Real output from running bpfman against a live kernel, demonstrating every supported program type and output format. Each section follows the full lifecycle: load, attach, list, detach, unload.

Table of Contents

@frobware
frobware / bpfman-help.md
Last active February 11, 2026 13:07
bpfman: complete CLI help reference
@frobware
frobware / tmux.conf
Last active January 7, 2026 15:13
tmux.conf
# On macOS Sequoia 15.2, the Nix-generated default-command uses
# reattach-to-user-namespace, which causes the shell to default to
# bash even though $SHELL is set to /bin/zsh. Override these to ensure
# the correct shell is used. I don't know why or when this behaviour
# changed.
set-option -g default-shell "$SHELL"
set-option -g default-command "$SHELL"
# Unbind all key bindings in the 'copy-mode-vi' table to use Emacs key bindings throughout.
unbind-key -a -T copy-mode-vi
@frobware
frobware / tpm2-ssh-keys.md
Last active January 2, 2026 12:23
TPM2-backed SSH Keys on NixOS with tpm2-pkcs11

TPM2-backed SSH Keys on NixOS

This describes how I set up TPM2 hardware-backed SSH keys using tpm2-pkcs11 on NixOS. Keys are generated inside the TPM and cannot be extracted, providing hardware-bound authentication.

Overview

  • Uses the kernel resource manager (/dev/tpmrm0) directly—no tpm2-abrmd daemon needed
  • Uses the esysdb backend instead of FAPI for simpler configuration
  • Integrates with pass for PIN storage (non-interactive operation)
  • Provides helper scripts for key management
@frobware
frobware / rebrand.patch
Created October 2, 2025 11:01
rebranding
diff --git a/bundle/manifests/bpfman-operator.clusterserviceversion.yaml b/bundle/manifests/bpfman-operator.clusterserviceversion.yaml
index 7120fc07..287d2b44 100644
--- a/bundle/manifests/bpfman-operator.clusterserviceversion.yaml
+++ b/bundle/manifests/bpfman-operator.clusterserviceversion.yaml
@@ -993,19 +993,21 @@ metadata:
]
capabilities: Basic Install
categories: OpenShift Optional
- containerImage: quay.io/bpfman/bpfman-operator:latest
- createdAt: "2025-06-03T12:16:50Z"
@frobware
frobware / rebrand.patch
Last active October 2, 2025 11:19
rebranding
diff --git a/bundle/manifests/bpfman-operator.clusterserviceversion.yaml b/bundle/manifests/bpfman-operator.clusterserviceversion.yaml
index 7120fc07..f8e753ad 100644
--- a/bundle/manifests/bpfman-operator.clusterserviceversion.yaml
+++ b/bundle/manifests/bpfman-operator.clusterserviceversion.yaml
@@ -993,19 +993,21 @@ metadata:
]
capabilities: Basic Install
categories: OpenShift Optional
- containerImage: quay.io/bpfman/bpfman-operator:latest
- createdAt: "2025-06-03T12:16:50Z"
@frobware
frobware / README.md
Last active September 16, 2025 11:36

Konflux Image Nudge Files

This directory contains placeholder files that Konflux populates with image references during the build process. These files are used as "nudge files" to trigger rebuilds of dependent components when base images are updated.

Understanding the Nudge System

The Konflux nudge system coordinates component rebuilds when dependencies change. The terminology can be confusing, so here's the actual flow: