Do it in the same was as we did for Helm and Terraform tools. Point to an existing operator and generate Capact manifest for it based on the CRDs defined in the repository.
Have a new Capact Action that:
Installs a given operator in cluster
Dynamically maps the CRDs to proper Capact manifests or register already available (previously mapped and adjusted) manifests.
It can deploy a new hub with those manifests if we will have the federation already in place.
In that way, user can in easy way extend the Hub offering.
the Action execution can create the proper CR, and the workflow can be suspended and subscribe for CR final state (via Argo Events). In that way, we will not run into any timeouts, as the reconciliation of such CR can be time-consuming.
use the delegated storage for k8s resources and fetch data directly from created CR and don't store those details in TypeInstance.
We can also focus on Crossplane or KubeVela as they also aggregate some operators and expose unified resources.
Reason
The k8s operators are great as we can delegate the day-two operations.
Use cases
System User - gets rich Hub catalog. Can consume well-know operators in unified way.
Content Developer - has an easy way to integrate 3rd party operators into Capact ecosystem. Maintains only one source of truth, as the manifests are generated based on CRDs.
Description
Create overlay/tool to expose K8s operators in Capact Hub.
There are already a lot of operators: https://operatorhub.io/
NOTE: it's connected with delegated storage.
Ideas
Reason
The k8s operators are great as we can delegate the day-two operations.
Use cases