Open ferenc-hechler opened 1 month ago
Starting with Method 5 looks like the right approach to me.
Excellent. Do we have a target date for this to be proven?
For the option 5, should we use one of the TM Forum Open-APIs? We could adopt the Resource Inventory API TMF639? We are allowing access from the component software to view the Component/Dependent APIs in Kubernetes.
New decision: Uniform method to transfer information from ODA Canvas to ODA Component
Context
The ODA Canvas offers supporting functions for ODA Components. A service discovery for these supporting functions has to be implemented. Following the descriptions in the use-cases the endpoints of those supporting functions have to be configured in the values.yaml. Beside the "static" endpoints, an ODA Component also needs to retrieve dynamically resolved information, like communication parameters for dependent APIs it requested in the component.yaml. To manually configure this in the values.yaml is error prone and also breaks the automation chain. Therefore a generic solution for transferring data from the ODA Canvas to the ODA Component is needed.
Decision
Technically there are multiple possibilities for the ODA Canvas to "inject" information into the ODA Component. As discussed in the ODA Canvas Innovation HUB Architecture meeting, here is a list of possibilities:
In the Architecture meeting we voted for trying out Method 5. The Canvas Information API provides the flexibility and also needs very little manual configuration. By defining a default endpoint name, like "info.canvas.svc.cluster.local", the ODA Component deployment can be done without touching the values.yaml.
The abstraction of the Canvas Information API should be high enough to not directly rebuild querying the status of the custom resources. Also it should not rebuild a Service-Discovery solution like HashiCorp Consul.
Consequences
The first use-case to implement this will be the Dependent API resolution. Based on the experiences the decision can be rethought.