JIRA link: https://issues.redhat.com/browse/QUARKUS-270
Key point for this release is that it should be just as easy to deploy a serverless application as it is to deploy a normal OpenShift container when using Quarkus.
Following actions were taken to ensure test coverage and automation for serverless applications:
- Define the scope of the testing
- Analyze the possible impact on Quarkus itself - e.g performance, compatibility
- Determine impact on test suites - e.g. new test suite, increased complexity of existing test suite, maintenance burden
- Determine impact on QE infrastructure - e.g. increased complexity of existing automation, maintenance burden, need for new external resources
- Check a need for involvement of other product/component teams
- OpenShift TS framework needs to be enhanced to support OpenShift Serverless Serving
- knative client, different routes, different deployment-target
- new maven profile to enable OpenShift Serverless Serving tests on request (OpenShift 4.5+)
- New test coverage for Serverless/Knative Serving scenario needs to be added into OpenShift TS
- Ensure this coverage works both in JVM and NATIVE mode
- Relevant jobs for testing with OpenShift TS need to be updated
- Automation for provisioning of OpenShift cluster needs to be enhanced to:
- install OpenShift Serverless Operator
- install Knative Serving
- make Serverless installation optional - e.g. not available in nightly OpenShift builds
- More services will be running on OpenShift cluster, impact on CPU/memory should be minimal
- QUARKUS-270 covers both JVM and NATIVE mode, Native image imposes multiple times prolonged execution time and increased memory requirements for the build
Our current testing capacity is sufficient to cover this testing.
If multiple streams get introduced we need to have increased capacity in the lab.
Following actions were taken to ensure familiarity:
- Focus on exploratory testing of the features
- Ensure good user experience and simplicity of use
- Check the impact on memory footprint and boot time
Activity in this regard already lead to discussions - e.g. identified need for zero-config solution for OpenShift Serverless Serving
Memory footprint and boot time were checked using OpenShift web console.
This step should ensure:
- Focus on high-level scenarios with multiple components and features involved
- OpenShift should be the primary target platform for product to ensure good interoperability
- Ensure platform specific features or components have appropriate test coverage
This feature request is specifically targeting OpenShift platform, test coverage will be added into OpenShift TS. Same experience as with vanilla OpenShift needs to be achieved with OpenShift Serverless Serving. If that's not the case follow-up actions need to be identified.
The following advanced topics are listed for future consideration. There should be dedicated feature requirements and/or enhancements for these specific areas.
- Security testing
- Recovery/Failover testing
- Performance/Scalability testing
- Backward compatibility testing