Skip to content

feat: native Go providers + deploy --local#14

Merged
robbycochran merged 3 commits into
mainfrom
rc-status
Jun 5, 2026
Merged

feat: native Go providers + deploy --local#14
robbycochran merged 3 commits into
mainfrom
rc-status

Conversation

@robbycochran

@robbycochran robbycochran commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

Ports three more bash wrappers to native Go, expanding the Gateway interface to 21 methods. After this PR, 6 of 9 command paths are native Go.

Native Go providers (cmd/providers.go)

Replaces providers.sh (136 lines bash + jq dependency):

  • --force mode with running-sandbox safety check
  • Providers v2 enable + custom profile import
  • github/vertex-local/atlassian registration with env var detection
  • ADC project ID fallback via encoding/json (eliminates jq dependency)

Native Go deploy --local (cmd/deploy.go)

Replaces the deploy_local() path in deploy.sh:

  • Podman check, local gateway detection (127.0.0.1 filter), select, verify reachable
  • Deploy --remote stays as bash wrapper (heavy helm/kubectl/oc)

Native Go teardown (cmd/teardown.go)

Replaces the --sandboxes and --providers paths in teardown.sh:

  • --sandboxes: list + delete all sandboxes via Gateway interface
  • --providers: safety check (no running sandboxes), list + delete all providers, clear inference
  • --k8s: stays as bash wrapper (helm/kubectl/oc)
  • Default (no flags): all three

Gateway interface expansion

9 new methods on gateway.Gateway + CLI implementation:

  • ProviderCreate, ProviderDelete, ProviderProfileImport
  • InferenceSet, InferenceRemove, SettingsSet
  • SandboxList, GatewayList, GatewaySelect

Migration status

Subcommand Status
new --local Native Go
connect Native Go
preflight Native Go
providers Native Go (this PR)
deploy --local Native Go (this PR)
teardown --sandboxes/--providers Native Go (this PR)
new --remote Bash wrapper
deploy --remote Bash wrapper
teardown --k8s Bash wrapper
test Bash wrapper

Test results (full matrix validated before each commit)

Path Result
Go unit tests 28/28
Launcher tests 7/7
Bats preflight (Python) 29/29
Bats preflight (Go) 29/29
bash + podman (full) 19/19
Go + podman (full) 19/19
bash + OCP (full) 17/17

🤖 Generated with Claude Code

robbycochran and others added 3 commits June 4, 2026 20:14
Port providers.sh and deploy --local to native Go. Eliminates jq
dependency (ADC project parsed with encoding/json). Deploy --remote
stays as bash wrapper (heavy helm/kubectl).

Gateway interface gains 8 new methods: ProviderCreate, ProviderDelete,
ProviderProfileImport, InferenceSet, SettingsSet, SandboxList,
GatewayList, GatewaySelect. All routed through the interface for
future gRPC swap.

Providers command: --force mode (safety check for running sandboxes),
providers v2 enable, custom profile import, github/vertex/atlassian
registration with env var detection and ADC fallback.

Deploy --local: podman check, local gateway detection (127.0.0.1
filter), select, verify reachable.

Validated: unit 28+7, bats 29+29, podman 19+19, OCP 17/17.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Port teardown --sandboxes and --providers to native Go. Uses existing
Gateway methods (SandboxList/Delete, ProviderList/Delete, InferenceRemove).
The --k8s path stays as a bash wrapper (heavy helm/kubectl/oc).

Add InferenceRemove to the Gateway interface.

Default behavior (no flags) tears down all three: sandboxes, providers,
and k8s. Safety check: providers cannot be deleted while sandboxes are
running.

Validated: unit 28+7, bats 29+29, podman 19+19, OCP 17/17.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@robbycochran robbycochran merged commit e50a8ff into main Jun 5, 2026
@robbycochran robbycochran deleted the rc-status branch June 13, 2026 14:03
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