RHELS LAB
Contents · the agent book

Agent book · Start here

RHELS Lab — Agent Docs

This is the deep-reference documentation for the RHELS lab. It is private: never published publicly, it is served only inside the lab — the showcase at / and this book at /agent-docs/ behind the docs front door (the public GitHub Pages path remains gated off — see cicd.md). This directory is the raw working reference for agents operating the lab.

Tool pages — the coverage matrix

Every tool in the lab has a dedicated page with the same two parts: Part A — how it is set up (deployment, GitOps source, the mechanics that surprise people) and Part B — how to use it (the tasks a reader actually performs).

ToolPageWhat the parts cover
OpenLDAPIdentity & AccessA: seed + PostSync ldapadd propagation rules, group machinery · B: add/change/remove users and groups, verify a login
VaultVault & SecretsA: deployment, seal model, KV layout, VSO tenants, backup summary · B: read/write secrets, give a workload a secret, rotate
cert-manager & Let’s EncryptCertificates & DNSA: the DNS-01-only constraint, the issuer, front doors · B: get/check/renew a certificate, add a front door
Tailscale & CloudflareTailscale & CloudflareA: the tailnet, the operator, zones and the two API tokens · B: resolve names, add a front door, renew a token
Argo CDArgo CDA: the two installs, app layout, sync model · B: check health, sync, roll back, add an app
HarborHarborA: chart install, storage, LDAP auth, admin custody · B: log in, pull/push, robot accounts, scan results
GrafanaGrafanaA: the three surfaces and their provisioning/auth · B: sign in, find dashboards, Explore, add a dashboard
Logging pipelineLogging pipelineA: collection, the aggregator’s sinks, the two Lokis · B: query logs, prove delivery, add a sink
Prometheus & AlertmanagerPrometheus & AlertmanagerA: three metrics tiers, two Pushgateways, the alert rules · B: query, read firing alerts, silence, add targets/rules
GitHub Actions runnersGitHub Actions runnersA: ARC on pro (2026-11-01, lab-monorepo#102), the mini-k8s set, image quirks · B: target the runners, check capacity, debug stuck jobs
ServiceNow PDI & MCPServiceNow PDI & MCPA: the instance, catalog-to-git group flow, keep-alive, MCP servers · B: request a group, check a request, use the MCP endpoint
Namespace as a ServiceNamespace as a ServiceA: the agent-first flow, LDAP-bind identity, server-side validation, the PR-only lifecycle · B: the nine tools, a worked request, status, contributing
StackRoxStackRoxA: the pro host, mini-Argo external-cluster pattern, Vault-held credentials · B: open Central, check the sensor, re-register, recover
OpenShift (CRC)Workload ClusterA: operators, apps, platform workloads, conventions · B: console, API via the tunnel, lifecycle rules
Mac mini clusterTooling PlaneA: namespaces/workloads, disk & memory constraints · B: reach the cluster, day-to-day checks, change discipline
This docs systemDocs systemA: one Astro site, the content collection, gates, publish loop · B: edit/add a page, preview, publish

Chapters

PageWhat it covers
Lab OverviewThe big picture: tooling plane, workload cluster, conventions
NetworkingConnectivity pattern between tooling host and workload cluster
Vault PKI (planned)Design only — Vault as the internal CA; not built
CI/CDCurrent IAC flow and the partial signed pipeline (Harbor/Cosign/Trivy live; digest-pin blocked; Kyverno Audit only; Pages/public path unavailable)
ObservabilityThe deep dive: metrics, the dual-Loki pipeline’s measured lessons, delivery verification, the health suite, alerting
Disaster RecoveryThe stateful inventory classified, the Vault backup state, the cold-rebuild order and every manual seam
Runbooks13 operations agents can run, with exact steps
GlossaryBSN, AppProject, verifyImages, SBOM, Cosign, and friends
Agent ProtocolSecrets hygiene + how agents work issues in this lab
inventory.jsonMachine-readable inventory (generated at build time from the inventory/ snapshot)

A machine-friendly index of this content is also available as llms.txt — also generated at build time, from the same page sources, so it cannot drift from the book.

How to use these docs as an agent

  1. Start with the protocol. Read agent-protocol.md before doing anything that touches secrets, issues, or another agent’s work.
  2. Then the runbooks. If you are here to perform an operation, runbooks.md gives you the exact sequence. Follow it; do not improvise.
  3. Check freshness. inventory.json carries a generated_at timestamp and a source field (live or recorded). If source is recorded, the data is the last known-good snapshot, not a fresh read — see “verify inventory freshness” in the runbooks.
  4. Sanitization boundary. Nothing in this tree may contain IPs, hostnames, tailnet names, SSH paths, tokens, kubeconfigs, keys, emails, personal names, or home paths. If you spot one, stop and raise it before continuing.

Source of truth

  • Infrastructure as code lives in per-app IAC repos (rhels/IAC.<bsn>) and the platform repo rhels/local-k8s-gitops, reconciled by Argo CD.
  • These docs describe intent and operations. If the docs and the IAC repo disagree, the IAC repo wins — update the docs.