-
Notifications
You must be signed in to change notification settings - Fork 351
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
E2E development allowing injection of secrets denoting testing on custom clusters #2711
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some concerns about the presence of minishift
9d54d11
to
e4c04ed
Compare
f3cda66
to
dbb0bfd
Compare
dbb0bfd
to
d800266
Compare
ffbb183
to
46c2ae8
Compare
@astefanutti @christophd |
@phantomjinx awesome! For the metrics e2e test, it's fixed with #2833 and #2836, so you may want to rebase. For YAKS tests, I think we need @christophd eagle eyes :) |
46c2ae8
to
b5e992b
Compare
Looks like the metrics fix may have sorted it for kind but now failing for openshift:
|
@phantomjinx that's hopefully fixed with #2836. |
53e92b6
to
7d3da2f
Compare
Down to the yaks test in KNative suite consistently failing (any ideas @christophd appreciated??). Otherwise, will try to fix the tests I've labelled as PROBLEMATIC unless you would like to go ahead and merge? |
@phantomjinx I take a look at the yaks test and let you know |
@phantomjinx thanks. I'd suggest to wait for @christophd feedback, and have this merged after the upcoming 1.8.0 release. |
so I have had a look and there is one test failing So the test installs Camel K in a new namespace via Here is the log
Why there is no IntegrationPlatform created as part of |
* Timeout for build default to 60 seconds which is not long enough on OS
* Timeout for integration start is 60 seconds which is not long enough on OS
* If an env var is set then marked tests will be skipped * Meant as interim option to allow test suites to avoid failure due to problematic tests rather than regressions in the coding.
* It is possible if set-version has been called, eg. building bundle, for the image name in the operator-deployment.yaml to be different to that defined by IMAGE_NAME. This can cause issues when calling functions such as `kustomize set image $(IMAGE_NAME)=....` as this will work but the image name in the deployment will never be updated (wrong mapping). * Use a shell function to find the latest value of IMAGE_NAME & assign each time a Makefile rule in install is executed.
* Discontinue using json-to-variables and converted secret to simple key-value list * Converts all environment variables into inputs and outputs as these are not logged * Creates bash scripts that are called from run: calls as these scripts do not get logged and set-output and set-mask can be used without leakage
* Flagged to be fixed on OCP4
* Adds specific run variables to each integration test execution to allow for filtering tests by a given regexp. Callers would need to ensure a "-run" is prefixed to the value of the env var
* Tries to install kamel using the camel-operator service account, which on OCP4 makes use of the OLM. This SA does not have the permissions for the OLM so the test needs to use a different SA - don't want to extend the operator's permissions.
* Provides coverage of all failing tests not just the tests up to the failed test.
* Allows for easier local unit testing of the functions
* Pre-flight * Adds action to execute a pre-flight test to ensure the kamel operator is the correct version as that built by the workflow * Cleanup * Adds function to clean up any image streams left around by pushing images to exposed cluster registries
* Ensures that the ImagePullPolicy is set to Always in the bundle csv to avoid target clusters retaining out-of-date cached camel-k images
Make sure to wait for the integration platform to be running before starting the test integration
* Allows for easier debugging and quicker problem isolating.
* Allows for better control and checking of parameters * Better debugging for scripts to be tested locally
* Useful for when running scheduled night-time test suites and ignoring problematic tests * Action that scans the requisite e2e directory to report those tests still marked with the PROBLEMATIC flag.
Explicitly wait for timer-source Kamelet to be ready before starting the test integration
* Await the integration is up and running again after rebuild before checking its version * Slow down the kamel installation requests as errors are being returned concerning CRDs not being the latest version
* If skip-problematic is not set then insert a brief log entry instead * Adds ability to skip-problematic and other inputs to manual executions of upstream test workflows
4da7d07
to
d4c3641
Compare
@astefanutti |
@phantomjinx I was about to ask whether you were ready to have this merged :) This is good to go for me 👍🏼. |
Tests still fail on OCP4 and I have the problematic tests to work on but the failures seem random like the test runs here upstream. So, would like to merge and then keep working on fixes on main. |
Sounds good, let's merge it! |
Thanks for this monumental work 🚀! |
@phantomjinx totally agree! monumental! many thanks! 👍 |
Extensive refactoring of e2e tests to support ability to inject secrets describing custom clusters that tests can be executed on.
Tests should use the following secrets:
E2E_CLUSTER_CONFIG: A key=value plaintext file providing configuration of the cluster
E2E_KUBE_CONFIG: A base16 encoding of a kube config file, including both a user and admin context
E2E_UPSTREAM_REPOSITORY: The upstream repository from which to checkout the e2e test actions (should be this repository usually)
E2E_UPSTREAM_BRANCH: The upstream repository branch from which to checkout the e2e test actions (should be either main or a number branch depending on requirements)
Release Note