Skip to content

feat(gateway): passthrough Route, remove OPENSHELL_USE_GATEWAY flag, expand RBAC - #430

Draft
markturansky wants to merge 2 commits into
mainfrom
chore/consolidate-openshell-specs
Draft

feat(gateway): passthrough Route, remove OPENSHELL_USE_GATEWAY flag, expand RBAC#430
markturansky wants to merge 2 commits into
mainfrom
chore/consolidate-openshell-specs

Conversation

@markturansky

@markturansky markturansky commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Remove OPENSHELL_USE_GATEWAY feature flag entirely from Go code (config, main, kube_reconciler, pod_sync), manifests (6 overlay patches), scripts, Makefile, UI Dockerfile, and e2e tests. Gateway is now always-on when OpenShell is enabled.
  • Add automatic passthrough Route creation for OpenShift/ROSA clusters without Gateway API. Routes use tls.termination: passthrough and auto-generate hostnames from baseDomain. Includes NLB IngressController detection for routeSelector labels and routes/custom-host RBAC.
  • Fix OwnerReference kind mismatch that caused Routes and NetworkPolicies to be garbage collected. getWorkloadUID now returns the actual workload kind (Deployment vs StatefulSet) instead of hardcoding StatefulSet.
  • Expand ClusterRole and project manager Role with permissions needed for gateway provisioning: persistentvolumeclaims, routes/custom-host, watch verbs on apps, networking.k8s.io, route.openshift.io groups. Resolves RBAC escalation errors when creating Roles in project namespaces.
  • Consolidate openshell specs (MTLS.md and rubber-on-road.md into openshell specs).

Test plan

  • go build ./... and go vet ./... pass
  • gofmt -l . reports no formatting issues
  • Routes created and persist in tenant-a and acp-01 namespaces (no GC churn)
  • OwnerReference correctly set to kind: Deployment matching actual workload
  • NetworkPolicies persist between reconciliation cycles
  • Route externally reachable via curl -sk https://openshell-gateway-tenant-a.apps.rosa.vteam-stage.7fpc.p3.openshiftapps.com (returns 404 from gateway — expected for non-gRPC requests)
  • ClusterRole update resolves tenant-b RBAC escalation error
  • No panic() or any types in diff

🤖 Generated with Claude Code

user and others added 2 commits July 26, 2026 11:01
…l specs

All unique knowledge from MTLS.md and rubber-on-road.md has been verified
present in the openshell spec files. Remaining gaps merged:

- Fix Route exposure contradiction in sandbox-provisioning spec: gateway
  MAY be exposed via GRPCRoute or NLB passthrough Route (was incorrectly
  stating "not exposed outside the cluster")
- Add GHCR commit-SHA image tag convention note to gateway spec
- Add GROUPS bash builtin collision and sandbox create hang to OIDC
  debugging reference

Delete MTLS.md and rubber-on-road.md as redundant — their content now
lives authoritatively in specs/platform/openshell-gateway*.spec.md and
specs/platform/openshell-sandbox-provisioning.spec.md.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ag, expand RBAC

Remove the OPENSHELL_USE_GATEWAY feature flag from Go code, manifests, scripts, Makefile, and
UI Dockerfile — gateway is now always-on when OpenShell is enabled. Add automatic passthrough
Route creation for OpenShift/ROSA clusters without Gateway API, with dynamic OwnerReference
kind detection (Deployment vs StatefulSet) to prevent garbage collection. Expand the
control-plane project manager Role and ClusterRole with PVC, routes/custom-host, NetworkPolicy,
and apps group permissions needed for gateway provisioning.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@markturansky markturansky changed the title chore(specs): consolidate MTLS.md and rubber-on-road.md into openshell specs feat(gateway): passthrough Route, remove OPENSHELL_USE_GATEWAY flag, expand RBAC Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant