Problem
PR #2388 introduced upgrade tests for eventing. In those I fetch execution report after the test. It's done with simple REST invocation. Drawback of this approach is the need to somehow connect to that REST endpoint from outside the cluster. It's done by getting external address of one of the nodes and usage of NodePort. @vaikas during PR review propose that maybe we can use K8s infrastructure itself, especially etcd database. I like this idea, as it will be K8s native and work in any K8s installation.
I think we can rewrite the REST endpoint code to be asynchronous, and work by requesting report being produced as a simple ConfigMap that contains JSON report. This request can be done, also by creating specific ConfigMap or maybe K8s Event object. Also, specific for upgrade test, request can also be omitted as there is already Finished event being propagated, so we can create a report after receiving it. I think that it might be useful to create a general purpose request-response framework, as it can be used to collect data from other types of e2e tests, not being related to eventing, even.
Persona:
Which persona is this feature for? Contributors
Exit Criteria
REST endpoint for upgrade tests is removed, as well as node IP resolver code. Execution report is fetch as a ConfigMap from the cluster.
Time Estimate (optional):
10d
Problem
PR #2388 introduced upgrade tests for eventing. In those I fetch execution report after the test. It's done with simple REST invocation. Drawback of this approach is the need to somehow connect to that REST endpoint from outside the cluster. It's done by getting external address of one of the nodes and usage of
NodePort. @vaikas during PR review propose that maybe we can use K8s infrastructure itself, especially etcd database. I like this idea, as it will be K8s native and work in any K8s installation.I think we can rewrite the REST endpoint code to be asynchronous, and work by requesting report being produced as a simple
ConfigMapthat contains JSON report. This request can be done, also by creating specificConfigMapor maybe K8sEventobject. Also, specific for upgrade test, request can also be omitted as there is already Finished event being propagated, so we can create a report after receiving it. I think that it might be useful to create a general purpose request-response framework, as it can be used to collect data from other types of e2e tests, not being related to eventing, even.Persona:
Which persona is this feature for? Contributors
Exit Criteria
REST endpoint for upgrade tests is removed, as well as node IP resolver code. Execution report is fetch as a
ConfigMapfrom the cluster.Time Estimate (optional):
10d