Galileo On-Prem Stack Setup
This skill is render-first and handoff-only. It never invokes a mutating Helm,
Kubernetes, MicroK8s, CRD, node-label, rollback, or uninstall command. The
historical --apply-* flags are permanent fail-closed sentinels.
When to Activate
Use this skill when a Galileo On-Prem Kubernetes deployment needs entitled
chart inspection, immutable render evidence, target-bound read-only preflight,
status observation, or a Galileo/CSE joint-session handoff. Do not activate it
to execute Helm, kubectl, MicroK8s, CRD, upgrade, rollback, or uninstall
mutations.
Prerequisites
| Requirement |
Why it is required |
Entitled local galileo-stack chart archive, exact version, and SHA-256 |
The chart is proprietary and release-specific; never infer its values |
| Version-matched CSE questionnaire and values contract |
Product topology and secret paths must come from Galileo, not invented defaults |
Runtime-only secret values file, mode 0600 or stricter |
Secret material is inspected in memory and never copied into the bundle |
| Named kube context, exact API/CA/cluster/namespace identity |
Connected evidence must bind one reviewed target |
Helm 3, kubectl, Python 3, and PyYAML |
Required for local render and read-only connected inspection |
| External Galileo/CSE change authorization |
This local skill does not authenticate or replace change approval |
Required Intake
Ask for the Galileo instance console URL and record it exactly, for example
https://console.demo-v2.galileocloud.io/. Pass it with
--galileo-console-url; never assume a Galileo Cloud hostname for on-prem.
Never ask for or repeat passwords in chat. Never put credentials, tokens,
private keys, Secret payloads, or credential-bearing URLs in the spec, command
line, bundle, plans, evidence, logs, or support output.
Supported Outcomes
- Safely inspect a pinned umbrella chart and every nested chart for exact
dependencies, values/schema flags, images, hooks/migrations, CRDs, API kinds,
cluster-scoped objects, routes, and persistence surfaces.
- Render a content-addressed private bundle containing only non-secret inputs,
the exact chart archive, normalized spec, and derived inventories.
- Run a connected, read-only preflight that binds the target, release state,
active CRDs, API discovery, runtime Secret influence, rendered manifests,
images, endpoints, storage, routing, monitoring, data services, node pools,
Wizard/GPU intent, and air-gap handoff evidence.
- Observe live status without claiming health or provenance that was not
proven.
production_ready always remains false in this release.
- Prepare canonical pre-approval handoff candidates for all lifecycle changes,
including official installation methods, upgrades, rollback, retirement,
galileoctl, dedicated CRDs, GPU/local inference, air-gap, and MicroK8s lab
bootstrap.
The current Installation Guide defines four methods: galileoctl (Method A),
umbrella Helm CLI (Method B), deployment script (Method C), and step-by-step
(Method D). The galileoctl UI is identified for first install and its CLI is a
workstation/CI alternative. This skill recognizes all four methods and can
inspect pinned Method A/B chart artifacts. Method C remains incomplete without
the exact script/config hashes and static review; Method D remains incomplete
without the ordered chart/release/dependency contract. It executes none of the
methods. Do not call the raw Helm path vendor-recommended.
Do not use this skill for Galileo projects, datasets, scorers, model-provider
configuration, Agent Control ownership, or standalone Luna Studio; route those
through their dedicated Galileo skills.
Workflow Overview
┌───────────────────────────────────────────┐
│ Pinned artifacts + closed review inputs │
└───────────────────────────────────────────┘
▼
inspect -> render -> validate
▼
read-only connected preflight
▼
unauthorized candidate -> external Galileo/CSE session
▼
read-only status observation
Required Workflow
- Read reference.md,
references/lifecycle-contract.md, and
references/coverage-and-safety.md.
- Run
--inspect-chart. It emits only a runtime inventory and
coverage-review.yaml; it does not create a deployable bundle.
- Copy every exact reviewed ID into
spec.coverage, then run --render.
- Run offline validation on the immutable bundle.
- Run
--preflight --for-action <action> against the exact target with the
runtime secret file. Preflight is read-only; server-side dry-run admission
checks are non-persisting and are reported separately from observer access.
- Give the bundle, canonical redacted evidence, unresolved gates, and exact
target/release inventory to the Galileo/CSE operator. The operator executes
the vendor-approved command in the jointly controlled session. The emitted
handoff-candidate.json is authorized:false; it is not a final approval.
- Run
--status for retryable read-only observation. Without independently
authenticated adoption/provenance evidence it reports an unverified state,
never successful production completion.
Commands
bash skills/galileo-on-prem-stack-setup/scripts/setup.sh --help
bash skills/galileo-on-prem-stack-setup/scripts/validate.sh --help
bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \
--inspect-chart \
--spec ./galileo-stack-deployment.yaml \
--galileo-console-url "$GALILEO_CONSOLE_URL" \
--output-dir ./galileo-on-prem-rendered
bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \
--render \
--spec ./galileo-stack-deployment.yaml \
--galileo-console-url "$GALILEO_CONSOLE_URL" \
--output-dir ./galileo-on-prem-rendered
bash skills/galileo-on-prem-stack-setup/scripts/validate.sh \
--bundle ./galileo-on-prem-rendered/acme/<bundle-sha>
bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \
--preflight \
--for-action install \
--bundle ./galileo-on-prem-rendered/acme/<bundle-sha> \
--secret-values-file /secure/runtime/secret-values.yaml \
--galileo-console-url "$GALILEO_CONSOLE_URL"
bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \
--status \
--bundle ./galileo-on-prem-rendered/acme/<bundle-sha> \
--galileo-console-url "$GALILEO_CONSOLE_URL" \
--json
--apply-install, --apply-upgrade, --apply-rollback,
--apply-uninstall, and --apply-lab-bootstrap reject before reading a bundle,
opening a kubeconfig, resolving a binary, writing state, or running a
subprocess. Planning flags emit manual handoffs only.
Hard Safety Rules
- Require exact local archives and hashes; never fetch
latest or switch
installation ownership mid-lifecycle.
- Keep non-secret and runtime-secret values separate. Reject duplicate YAML
keys, aliases, merge keys, unknown spec fields, populated secret-like
non-secret fields, and unsafe runtime override paths. Until a version/hash-
bound closed CSE values/questionnaire contract is supplied, keep
cse_values_contract_missing open even when chart inspection succeeds.
- Never persist raw Secret bodies or unredacted Helm output. Runtime secret
leaves must independently influence only classified Secret payload fields.
- Shared CRDs must already exist and be semantically exact. Dedicated CRDs are
a handoff. Never create, patch, replace, or delete a CRD here.
- Treat hooks, migrations, operator-created claims, cluster-scoped resources,
RBAC, routing/TLS, monitoring, external services, GPU/model artifacts, and
air-gap mirrors as review surfaces, not implicit approval.
- Never delete or alter namespaces, PVCs, PVs, buckets, databases, nodes,
labels, load-balancer pools, or release history.
- A syntactically valid render is not production readiness. Keep explicit gaps
such as
entitled_chart_integration_unvalidated,
cse_values_contract_missing, and live_readonly_integration_unvalidated
open until exact artifacts and connected evidence exist.
Troubleshooting
| Symptom |
Safe response |
| Bundle validation fails |
Preserve the bundle and render a new one; never edit or rehash it |
| Runtime inventory drifts |
Review every new ID and rerender |
| Shared CRD differs |
Stop and coordinate with the cluster CRD owner and Galileo/CSE |
| Routing, storage, data-service, monitoring, or GPU proof is incomplete |
Keep the gate open in the handoff; do not convert an attestation into a pass |
| An apply flag is rejected |
This is expected; execute only through the reviewed Galileo/CSE joint session |
1---2name: galileo-on-prem-stack-setup3description: Inspect, render, connected-preflight, and observe a pinned Galileo On-Prem galileo-stack deployment on Kubernetes; produce secret-safe evidence and Galileo/CSE joint-session handoffs for every install, upgrade, rollback, uninstall, CRD, galileoctl, GPU, air-gap, and lab-bootstrap change. Use when planning reusable Galileo On-Prem Kubernetes deployment work without unattended mutation.4---56# Galileo On-Prem Stack Setup78This skill is render-first and handoff-only. It never invokes a mutating Helm,9Kubernetes, MicroK8s, CRD, node-label, rollback, or uninstall command. The10historical `--apply-*` flags are permanent fail-closed sentinels.1112## When to Activate1314Use this skill when a Galileo On-Prem Kubernetes deployment needs entitled15chart inspection, immutable render evidence, target-bound read-only preflight,16status observation, or a Galileo/CSE joint-session handoff. Do not activate it17to execute Helm, kubectl, MicroK8s, CRD, upgrade, rollback, or uninstall18mutations.1920## Prerequisites2122| Requirement | Why it is required |23|---|---|24| Entitled local `galileo-stack` chart archive, exact version, and SHA-256 | The chart is proprietary and release-specific; never infer its values |25| Version-matched CSE questionnaire and values contract | Product topology and secret paths must come from Galileo, not invented defaults |26| Runtime-only secret values file, mode `0600` or stricter | Secret material is inspected in memory and never copied into the bundle |27| Named kube context, exact API/CA/cluster/namespace identity | Connected evidence must bind one reviewed target |28| Helm 3, `kubectl`, Python 3, and PyYAML | Required for local render and read-only connected inspection |29| External Galileo/CSE change authorization | This local skill does not authenticate or replace change approval |3031## Required Intake3233Ask for the Galileo instance console URL and record it exactly, for example34`https://console.demo-v2.galileocloud.io/`. Pass it with35`--galileo-console-url`; never assume a Galileo Cloud hostname for on-prem.3637Never ask for or repeat passwords in chat. Never put credentials, tokens,38private keys, Secret payloads, or credential-bearing URLs in the spec, command39line, bundle, plans, evidence, logs, or support output.4041## Supported Outcomes4243- Safely inspect a pinned umbrella chart and every nested chart for exact44 dependencies, values/schema flags, images, hooks/migrations, CRDs, API kinds,45 cluster-scoped objects, routes, and persistence surfaces.46- Render a content-addressed private bundle containing only non-secret inputs,47 the exact chart archive, normalized spec, and derived inventories.48- Run a connected, read-only preflight that binds the target, release state,49 active CRDs, API discovery, runtime Secret influence, rendered manifests,50 images, endpoints, storage, routing, monitoring, data services, node pools,51 Wizard/GPU intent, and air-gap handoff evidence.52- Observe live status without claiming health or provenance that was not53 proven. `production_ready` always remains false in this release.54- Prepare canonical pre-approval handoff candidates for all lifecycle changes,55 including official installation methods, upgrades, rollback, retirement,56 galileoctl, dedicated CRDs, GPU/local inference, air-gap, and MicroK8s lab57 bootstrap.5859The current Installation Guide defines four methods: galileoctl (Method A),60umbrella Helm CLI (Method B), deployment script (Method C), and step-by-step61(Method D). The galileoctl UI is identified for first install and its CLI is a62workstation/CI alternative. This skill recognizes all four methods and can63inspect pinned Method A/B chart artifacts. Method C remains incomplete without64the exact script/config hashes and static review; Method D remains incomplete65without the ordered chart/release/dependency contract. It executes none of the66methods. Do not call the raw Helm path vendor-recommended.6768Do not use this skill for Galileo projects, datasets, scorers, model-provider69configuration, Agent Control ownership, or standalone Luna Studio; route those70through their dedicated Galileo skills.7172## Workflow Overview7374```text75┌───────────────────────────────────────────┐76│ Pinned artifacts + closed review inputs │77└───────────────────────────────────────────┘78 ▼79 inspect -> render -> validate80 ▼81 read-only connected preflight82 ▼83 unauthorized candidate -> external Galileo/CSE session84 ▼85 read-only status observation86```8788## Required Workflow89901. Read [reference.md](reference.md),91 [references/lifecycle-contract.md](references/lifecycle-contract.md), and92 [references/coverage-and-safety.md](references/coverage-and-safety.md).932. Run `--inspect-chart`. It emits only a runtime inventory and94 `coverage-review.yaml`; it does not create a deployable bundle.953. Copy every exact reviewed ID into `spec.coverage`, then run `--render`.964. Run offline validation on the immutable bundle.975. Run `--preflight --for-action <action>` against the exact target with the98 runtime secret file. Preflight is read-only; server-side dry-run admission99 checks are non-persisting and are reported separately from observer access.1006. Give the bundle, canonical redacted evidence, unresolved gates, and exact101 target/release inventory to the Galileo/CSE operator. The operator executes102 the vendor-approved command in the jointly controlled session. The emitted103 `handoff-candidate.json` is `authorized:false`; it is not a final approval.1047. Run `--status` for retryable read-only observation. Without independently105 authenticated adoption/provenance evidence it reports an unverified state,106 never successful production completion.107108## Commands109110```bash111bash skills/galileo-on-prem-stack-setup/scripts/setup.sh --help112bash skills/galileo-on-prem-stack-setup/scripts/validate.sh --help113114bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \115 --inspect-chart \116 --spec ./galileo-stack-deployment.yaml \117 --galileo-console-url "$GALILEO_CONSOLE_URL" \118 --output-dir ./galileo-on-prem-rendered119120bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \121 --render \122 --spec ./galileo-stack-deployment.yaml \123 --galileo-console-url "$GALILEO_CONSOLE_URL" \124 --output-dir ./galileo-on-prem-rendered125126bash skills/galileo-on-prem-stack-setup/scripts/validate.sh \127 --bundle ./galileo-on-prem-rendered/acme/<bundle-sha>128129bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \130 --preflight \131 --for-action install \132 --bundle ./galileo-on-prem-rendered/acme/<bundle-sha> \133 --secret-values-file /secure/runtime/secret-values.yaml \134 --galileo-console-url "$GALILEO_CONSOLE_URL"135136bash skills/galileo-on-prem-stack-setup/scripts/setup.sh \137 --status \138 --bundle ./galileo-on-prem-rendered/acme/<bundle-sha> \139 --galileo-console-url "$GALILEO_CONSOLE_URL" \140 --json141```142143`--apply-install`, `--apply-upgrade`, `--apply-rollback`,144`--apply-uninstall`, and `--apply-lab-bootstrap` reject before reading a bundle,145opening a kubeconfig, resolving a binary, writing state, or running a146subprocess. Planning flags emit manual handoffs only.147148## Hard Safety Rules149150- Require exact local archives and hashes; never fetch `latest` or switch151 installation ownership mid-lifecycle.152- Keep non-secret and runtime-secret values separate. Reject duplicate YAML153 keys, aliases, merge keys, unknown spec fields, populated secret-like154 non-secret fields, and unsafe runtime override paths. Until a version/hash-155 bound closed CSE values/questionnaire contract is supplied, keep156 `cse_values_contract_missing` open even when chart inspection succeeds.157- Never persist raw Secret bodies or unredacted Helm output. Runtime secret158 leaves must independently influence only classified Secret payload fields.159- Shared CRDs must already exist and be semantically exact. Dedicated CRDs are160 a handoff. Never create, patch, replace, or delete a CRD here.161- Treat hooks, migrations, operator-created claims, cluster-scoped resources,162 RBAC, routing/TLS, monitoring, external services, GPU/model artifacts, and163 air-gap mirrors as review surfaces, not implicit approval.164- Never delete or alter namespaces, PVCs, PVs, buckets, databases, nodes,165 labels, load-balancer pools, or release history.166- A syntactically valid render is not production readiness. Keep explicit gaps167 such as `entitled_chart_integration_unvalidated`,168 `cse_values_contract_missing`, and `live_readonly_integration_unvalidated`169 open until exact artifacts and connected evidence exist.170171## Troubleshooting172173| Symptom | Safe response |174|---|---|175| Bundle validation fails | Preserve the bundle and render a new one; never edit or rehash it |176| Runtime inventory drifts | Review every new ID and rerender |177| Shared CRD differs | Stop and coordinate with the cluster CRD owner and Galileo/CSE |178| Routing, storage, data-service, monitoring, or GPU proof is incomplete | Keep the gate open in the handoff; do not convert an attestation into a pass |179| An apply flag is rejected | This is expected; execute only through the reviewed Galileo/CSE joint session |