Creation of CRDs based on data in external API

Hey all, looking for some advice on how to properly set up this flow. Here's the problem statement: I have an API keeps track of various resources (think like databases) that have runtime data. The API exposes an endpoint to list resources I'm interested in, as well as endpoints for setting some of that runtime data.

On the k8s side, there's a third party operator we're using to manage these resources. I need to create a CRD per resource that includes properties that correspond to some of the runtime data that resource has. A good analogy would be I'm interested in the tables a given database has. Something like this:

kind: third-party-operator-resource
spec:
  name: resource1
  config:
    - data1
    - data2

I want to automate the creation of the CRDs based on the info I have in the API. I've considered a few ways of doing this:

  1. When data gets updated via the API, aggregate the current state of all data for a given resource and update the CRD for that resource in the k8s cluster
  2. When data gets updated via the API, create a new k8s object based on a new custom, intermediary CRD that represents the runtim data, then create a k8s operator that does the aggregation of the "data CRDs" to the 3rd party CRDs
  3. Create a k8s operator that can periodically fetch the list of resources from the API, then query each resource directly to get the data it needs and create the CRD accordingly

I'm leaning towards option 3 but I'm not sure whether it's a good practice or not to have an operator relying on resources external to the k8s cluster (like API and other apps). Option 1 is less desirable because my API currently has no knowlege or interaction w/ the k8s cluster, so I'd have to set that up as well as all the k8s auth to allow it to create objects in my namespace. Doable but seems kind of ugly.

Probably worth calling out that the resources are very small in number (< 100) and are added/removed infrequently, while the runtime info is updated frequently and in large numbers (1000s or 10,000s).