migtools/tackle-controls

Documentation needed to interface with tackle-controls from Tackle Inventory

Closed this issue · 2 comments

Hi @mrizzi , @m-brophy I'm onboarding to the Tackle project along with @jortel and @mansam right now.

(Note: From demos I've seen, I think tackle-controls is already integrated with Tackle Inventory quite heavily. I am curious about the relationship between the two though, and how tackle-controls is currently consumed over what API)

We are working to learn how the Tackle App Inventory can interface with other tools in the Tackle suite, and trying to define the requirements of the App Inventory data model.

It would be helpful to have a reference doc on the public interface of tackle-controls (TC) so that we can get an idea of how TC this would tie in with Tackle Inventory, and what changes might be needed to the Tackle Inventory data model:

  • Expected inputs / outputs of TC (examples would be useful)
  • Methods for invoking TC (REST? CLI? Java API? Something else?)
  • Is there a Quay.io container auto-build set up so we can consume TC easily running as a Pod on OpenShift?
  • Is there a deploy YAML available with a deployment definition for TC and any required auxiliary OpenShift resources (e.g. namespaces, services, routes). This would let us quickly play around with TC using other info provided. We may be able to assist here if needed.

Do documents detailing the public interface of TC exist? Even some simple examples would be useful to get started.

cc @rromannissen @jwmatthews @PhilipCattanach

@djwhatle,
A great starting point for each project are the README files.
The Application Controls and Pathfinder have detailed README files.

Application Inventory, the Controls and Pathfinder are Quarkus microservices, they are not java libraries and hence there is no CLI or java API invocation method.

With regard to the container image there is a github action (https://github.com/konveyor/tackle-controls/blob/main/.github/workflows/push.yml) that builds native image and pushes it to quay.io with the appropriate tag.

Within https://github.com/konveyor/tackle/tree/main/kubernetes there are templates that facilitate the manual deployment of Tackle to a Kubernetes/OCP environment. Remember Kubernetes is our primary target.
This is the unrecomended approach, I would strongly encourage you to use the Tackle Operator.

The best way to start understanding the expected inputs/outputs is to look at the tests (e.g. https://github.com/konveyor/tackle-controls/blob/main/src/test/java/io/tackle/controls/resources/BusinessServiceTest.java#L56)
Quarkus also lets developers have the OpenAPI Rest Endpoints documentation page.

Thanks @PhilipCattanach , very helpful.