Galileo On-Prem Air-Gap Setup
SkillMediaBuild and verify a digest-bound Galileo On-Prem air-gap supply-chain bundle covering Helm charts, galileoctl, every ordinary/init/hook/job/test image, OCI archives, model bundles, architectures, private-registry mappings, scanning evidence, and no-egress endpoints, while surfacing explicit model/runtime and endpoint-rewrite evidence gates. Use when preparing, transferring, mirroring, upgrading, or auditing Galileo for an offline Kubernetes cluster.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Galileo On-Prem Air-Gap Setup skill
What this skill tells your AI
The instructions your AI receives, as published by chambear2809/splunk-cisco-skills in skills/galileo-on-prem-air-gap-setup/SKILL.md and read by ahel’s review.
Prerequisites
- Obtain the CSE-provided release image manifest, exact chart archives,
galileoctlartifact, and any offline Wizard/Luna model bundles. - Run the canonical Stack preflight first and retain its private, bundle-bound rendered-image and rendered-endpoint evidence; static archive IDs or a caller-authored endpoint list are not accepted as runtime proof.
- Configure that connected seed render with the final digest-pinned internal mirror references before the registry contains them. The air-gap assembler maps each rendered mirror digest back to a distinct CSE/vendor source archive; it never treats source and mirror names as interchangeable.
- For every optional child classified
standalone, run its read-only preflight with both--image-evidence-fileand--endpoint-evidence-file, and retain the exact immutable child bundle. - Use a connected staging host for acquisition/scanning and an isolated transfer path into a registry reachable by the cluster.
- Resolve every image to an immutable OCI digest and collect every target architecture. Tag-only inventories are not completion evidence.
- Allocate approximately 50–60 GB or the release-specific measured total in the private registry and transfer area.
Workflow Overview
+-- CSE manifest --+ -> +-- Pull/scan/digest/arch --+ -> +-- Verify transfer bundle --+
-> +-- Registry handoff --+
-> +-- No-egress proof --+
When to Activate
- Prepare a first Galileo install or upgrade with no cluster internet access.
- Audit private-registry completeness, architecture, digest, or scan evidence.
- Transfer Galileo charts, images, CLI, models, hooks, and test dependencies.
- Verify that rendered runtime endpoints do not require public egress.
- Diagnose
ImagePullBackOff, missing bootstrap images, or mutable tag drift.
Required Intake
Ask for the Galileo instance console URL and record the exact value, for example
https://console.demo-v2.galileocloud.io/. Pass it with
--galileo-console-url; this records the intended deployment without contacting
the instance.
Collect the release ID, target architectures, private registry, exact artifacts and SHA-256 values, digest-resolved image/OCI mappings, image use classification, scan attestations, model archives, exact Stack/child endpoint evidence, internal allowlist, transfer medium policy, and CSE approval. Keep registry credentials outside this skill and supply them only within the approved operator-controlled push session.
Supply-Chain Rules
- Require local regular current-user-owned single-link artifacts. Reject symlinks, hardlinks, special files, unsafe permissions, path traversal, duplicate archive members, PAX path overrides, oversized expansion, and digest drift.
- Require every image to have a source reference, source digest, mirror
reference, expected mirror digest, OCI archive, architectures, and one or
more uses:
runtime,init,hook,job,test, ormodel. - Reject
latest, tag-only proof, source/mirror digest mismatch, missing target architectures, source/mirror role collapse (including the same registry authority), and any chart-discovered image absent from the CSE manifest. Scan attestations must be canonical duplicate-free JSON and bind the exact vendor source subject plus digest with a real boolean pass result. - Include
galileoctl, sequencingkubectl, database bootstrap clients, migration/hook/test images, Agent Control, Luna backend/UI/training/data-gen, Wizard/Triton and offline models whenever enabled. - Classify Agent Control and Luna as
disabled,umbrella, orstandalone. Stack evidence owns umbrella images; every standalone child requires its own canonical evidence. Require exact union equality—no extras or omissions. Seed evidence must equal manifestmirrorrefs, while acquisition provenance remains insource; requiremirror_digest == source_digest. Derive architectures only from descriptor/config platform pairs whose exact Linux OS, architecture, and optional variant agree through a digest-, size-, and media-type-closed OCI graph. Reject missing, duplicate, unknown, mismatched, or unreferenced OCI evidence. - Keep archive verification and registry push separate.
--push-registryis a permanent fail-closed sentinel. Hand the exact digest inventory and CSE approval to an operator-controlled session that rejects tag overwrite. - Never auto-upload artifacts, rewrite charts, create pull Secrets, or touch Kubernetes. Hand the verified contract to the stack/service skills.
- A no-egress pass requires the exact union of target/chart/input/render-bound
Stack and standalone-child host-only endpoint evidence to be internal. The
verifier also independently scans embedded non-secret values and chart
templates and rejects unexplained findings. It must
block public registries, Let’s Encrypt, SendGrid, Sentry/Logz, central feature
flags, public model APIs, telemetry, and package repositories.
Host-only observations do not prove endpoint rewrites. Until Stack emits
galileo-on-prem-stack-endpoint-rewrite-evidence/v1, no-egress completion fails asendpoint_rewrite_evidence_missing. - Offline model archives remain transfer artifacts, not runtime proof. Until
Stack emits
galileo-on-prem-stack-model-artifact-evidence/v1binding the exact archive checksum to rendered mounts/config and checksum-verifier behavior, model completion fails asstack_model_evidence_missing. - Reject Helm
lookup,tpl, root.Files,.Capabilities,.Release, random/UUID/clock, environment, DNS, crypto, and indirect root access recursively in the parent chart and packaged dependencies; those constructs make exact offline render/image/endpoint evidence impossible to prove.
Read reference.md, manifest-contract.md, registry-and-transfer.md, and source-ledger.md before approving a transfer.
Commands
bash skills/galileo-on-prem-air-gap-setup/scripts/setup.sh --help
bash skills/galileo-on-prem-air-gap-setup/scripts/setup.sh \
--render --spec ./air-gap.local.yaml \
--galileo-console-url "https://console.demo-v2.galileocloud.io/" \
--output-dir ./galileo-on-prem-rendered/air-gap
bash skills/galileo-on-prem-air-gap-setup/scripts/setup.sh \
--verify --bundle ./galileo-on-prem-rendered/air-gap \
--galileo-console-url "https://console.demo-v2.galileocloud.io/"
Registry push is an explicit non-mutating handoff sentinel:
bash skills/galileo-on-prem-air-gap-setup/scripts/setup.sh \
--push-registry
The sentinel fails before reading a bundle, credential, approval, or result path. The verified bundle metadata is the handoff packet for the external Galileo/CSE operator session.
Completion Gate
Completion requires exact hashes for every transfer artifact, safe archive
structure, all chart inventory images classified, all target architectures in
every image, passing scan attestations, verified source/mirror digest equality,
operator-supplied post-push registry inspection, and unapproved_endpoints=[]
plus no open evidence gates in the no-egress report. It also requires the exact Stack-plus-standalone-child image
union and the Stack seed/final equality gate. Static verification does not claim
a deployment or GPU test.
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
| Image inventory mismatch | Init/hook/test/bootstrap image omitted | Regenerate inventory from the exact charts and CSE manifest |
| Architecture failure | Archive lacks a node architecture | Acquire the correct multi-arch image or constrain scheduling |
| Digest failure | Tag moved or transfer was altered | Re-pull by digest and recreate the OCI archive |
| Push blocked | Registry writes are handoff-only without an entitled live fixture | Use the exact bundle/digests in a CSE-reviewed operator session; reject tag overwrite |
| Model evidence blocked | Stack lacks rendered model mount/config/checksum-verifier proof | Keep stack_model_evidence_missing open until the versioned Stack evidence exists |
| Endpoint closure blocked | Host-only evidence cannot bind source-to-mirror scheme/port rewrites | Keep endpoint_rewrite_evidence_missing open until the versioned Stack evidence exists |
| No-egress failure | Runtime still names a public endpoint | Disable the feature or provide an approved internal endpoint |
| Unsafe archive | Traversal, links, duplicates, PAX override, or expansion limit | Reject it and obtain a clean vendor artifact |
Signals
- GitHub stars
- 37
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
galileo-on-prem-air-gap-setup- Source
- github.com/chambear2809/splunk-cisco-skills