|
| 1 | +# Brainstorm: Cluster Setup & OpenShell Deployment |
| 2 | + |
| 3 | +**Date:** 2026-07-09 |
| 4 | +**Status:** active |
| 5 | +**Parent:** 01-warm-pool-feasibility |
| 6 | + |
| 7 | +## Problem Framing |
| 8 | + |
| 9 | +Before any measurements can happen, we need an OpenShift cluster with OpenShell and the Agent Sandbox extension CRDs running. This phase covers provisioning, installation, and validation. |
| 10 | + |
| 11 | +Three components must work together: |
| 12 | +1. A ROSA HCP cluster with a Kubernetes version that supports native sidecar containers (K8s 1.33+) |
| 13 | +2. The Agent Sandbox operator with extension CRDs (SandboxTemplate, SandboxWarmPool, SandboxClaim) |
| 14 | +3. OpenShell deployed and functional (can create cold-start sandboxes) |
| 15 | + |
| 16 | +## Approaches Considered |
| 17 | + |
| 18 | +### A: ROSA HCP with Upstream Agent Sandbox Manifests |
| 19 | + |
| 20 | +Provision ROSA, install agent-sandbox from upstream manifests (both `manifest.yaml` and `extensions.yaml`), deploy OpenShell with the OpenShell OpenShift deploy chart. |
| 21 | + |
| 22 | +- Pros: Uses upstream directly, most current version, full control over version |
| 23 | +- Cons: No operator lifecycle management, manual CRD updates, no OperatorHub integration |
| 24 | + |
| 25 | +### B: ROSA HCP with Red Hat Agent Sandbox Operator (Tech Preview) |
| 26 | + |
| 27 | +Provision ROSA, install the Red Hat build of Agent Sandbox from OperatorHub, deploy OpenShell with the OpenShell OpenShift deploy chart. |
| 28 | + |
| 29 | +- Pros: Operator manages CRD lifecycle, OperatorHub integration, downstream supported path |
| 30 | +- Cons: Tech preview may not include extension CRDs yet, version may lag upstream |
| 31 | + |
| 32 | +### C: Both Paths Available |
| 33 | + |
| 34 | +Install the Red Hat operator for the core Sandbox CRD, then layer upstream extension manifests on top if the operator doesn't include them. |
| 35 | + |
| 36 | +- Pros: Best of both worlds, flexibility |
| 37 | +- Cons: Mixed provenance (downstream operator + upstream extensions), potential version conflicts |
| 38 | + |
| 39 | +## Decision |
| 40 | + |
| 41 | +**Approach C: Start with the Red Hat operator, fall back to upstream extensions.** Install the tech preview operator from OperatorHub first. If it includes the extension CRDs, use them. If not, apply upstream `extensions.yaml` on top. This gives us the downstream operator path for the core CRDs while ensuring we have warm pool primitives available. |
| 42 | + |
| 43 | +## Key Requirements |
| 44 | + |
| 45 | +1. **ROSA HCP cluster** via `rosa:create` with the AAET profile |
| 46 | + - OpenShift version must support K8s 1.33+ for native sidecar containers (KEP-753 GA) |
| 47 | + - Region: us-east-2 (matches AAET profile subnets) |
| 48 | + - Worker nodes: at least 3 for realistic scheduling behavior |
| 49 | + |
| 50 | +2. **Agent Sandbox installation** |
| 51 | + - Red Hat Agent Sandbox operator from OperatorHub (if available) |
| 52 | + - Upstream extensions.yaml as fallback for SandboxTemplate/SandboxWarmPool/SandboxClaim |
| 53 | + - Verify all four CRDs are served: `kubectl api-resources | grep agents` |
| 54 | + |
| 55 | +3. **OpenShell deployment** |
| 56 | + - Clone github.com/2000krysztof/Openshell-Openshift-Deploy at a pinned commit/tag for reproducibility |
| 57 | + - Run `deploy.sh` with default configuration |
| 58 | + - Verify: `openshell status` shows Connected |
| 59 | + - Verify: `openshell sandbox create --from base` succeeds (cold-start baseline works) |
| 60 | + |
| 61 | +4. **Image pre-pulling** |
| 62 | + - Pre-pull the OpenShell base sandbox image and supervisor image on all worker nodes |
| 63 | + - This removes image pull latency from warm pool measurements |
| 64 | + - Use a DaemonSet with `initContainers` that pull and exit, or `oc debug node/` to pre-pull |
| 65 | + |
| 66 | +5. **Validation checklist** |
| 67 | + - Gateway pod is Running |
| 68 | + - Agent Sandbox controller is Running |
| 69 | + - Extension CRDs are registered |
| 70 | + - Cold-start sandbox creation works end-to-end |
| 71 | + - Images are pre-pulled on all nodes |
| 72 | + |
| 73 | +## Open Questions |
| 74 | + |
| 75 | +- What OpenShift version does ROSA HCP currently offer that includes K8s 1.33+? Need to check `rosa list versions`. |
| 76 | +- Does the Red Hat Agent Sandbox operator tech preview install from the default OperatorHub catalog, or does it require a custom CatalogSource? |
| 77 | +- Does the deploy script handle OpenShift 4.20+ or does it need updates for newer SCC/security changes? |
| 78 | +- How much cluster capacity do we need? The warm pool experiments will create 5-20 pre-provisioned pods simultaneously. |
0 commit comments