Reusable controller interfaces for Hub integration

Open
#69 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
go, kubernetes
Domain
api, backend

Research direction

Start by reading ADR 0006 and the current controller implementations for validation, model and gateway selection, skill resolution, sandbox construction, and CRD conversion. Organize these capabilities into importable Go packages alongside api/v1alpha1, with interfaces Hub can consume without creating CRs; done means the stated orchestration logic is reusable through those packages.

Written by the indexing model from the issue text.

Description

enhancement

Expose the controller's orchestration logic as importable Go packages so Hub (and other consumers) can reuse them.

Design (per ADR 0006 and enhancement)

The controller currently owns logic for:

  • Param validation (required params, type checking, defaults)
  • Model/gateway selection validation
  • Skill resolution (SkillCard status → OCI image refs)
  • Sandbox construction (env vars, volumes, ImageVolumes)
  • CRD type converters

This logic should be organized into importable packages that Hub can consume alongside the CRD types (api/v1alpha1).

Future motivation

This enables a future where the Hub tasking system could run agents and agent workflows directly — using the controller's Go packages for orchestration without creating CRs. In that model, Hub would use the same interfaces to validate, resolve, and build Sandboxes, tightly controlling the dependency on the agentic controller as a library rather than a running controller.

References

Dominant language
Go
Stars
5
Forks
13
Avg merge
3d 6h
Merged PRs (30d)
47

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from konveyor/agentic-controller

All issues in konveyor/agentic-controller

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.