Closed mgencur closed 3 years ago
/assign
I would go even further. We got upgrade tests in eventing as well, and also merger of those two in knative/operator upgrade tests. That's not ideal.
I would propose to make it fully pluggable test suite. Test suite should be located in some common place, like new knative.dev/pkg/test/upgrade
package.
The modified scenario would look like this:
In that way we can do it properly, once. And then reuse that code in Serving, Eventing, Operator and in many places downstream as well.
/cc @houshengbo
We should use Tekton for orchestration of the various test components.
Supporting a custom-written test orchestrator in Go might be less work than maintaining one in bash, but it's still a custom test orchestrator and we should use a standard tool instead of reinventing our own.
That would require to have working Tekton installation. Additional dependency, additional time to set up.
I think, here we should have a single upgrade test logic, but pluggable, that we can adjust to perform different operations (plugins) on specific steps. In example, we on downstream would like to execute serving & eventing upgrade tests in the same run, go upgrading Serverless Operator and OCP cluster, instead of upgrading serving or eventing separately.
@chizhg PTAL at my refined proposition at knative/pkg#1638
This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen
. Mark the issue as
fresh by adding the comment /remove-lifecycle stale
.
/reopen /remove-lifecycle stale
PR #10216 should fix this
@cardil: Reopened this issue.
Describe the feature
The current upgrade/downgrade tests are orchestrated from Bash. It runs pre-upgrade Golang tests, calls Bash functions to perform the upgrade, runs post-upgrade Golang tests, calls Bash functions for downgrade, runs post-downgrade Golang tests.
This is a proposal for changing the orchestration where the Golang test suite including pre-upgrade, post-upgrade and post-downgrade tests would run as a monolithic test suite, performing upgrades and downgrades using a plugable mechanism.
The scenario would look like this:
Upstream tests would include a default plugin that would call bash scripts for upgrading/downgrading Knative. Downstream tests could provide their own mechanism for upgrades/downgrades, possibly using Golang API. If no extra plugin is provided the test suite would execute the default plugin.
Advantages of this approach: