-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kola: Add --no-net flag #1478
kola: Add --no-net flag #1478
Conversation
And the CI failed due to:
|
+1 |
/approve |
This comment has been minimized.
This comment has been minimized.
Temporarily blacklist this test for now until we're off Docker Hub's naughty list. This is blocking CI and pipelines. See discussions in coreos/coreos-assembler#1478 for a longer-term approach on tests that require Internet access in general.
Hmm actually... since this is (hopefully) temporary, maybe let's just blacklist the tests for now? That way we don't have to spread this new switch everywhere it's needed. OK, did that in: coreos/fedora-coreos-config#425. But I agree with the motivation of this PR though. |
Temporarily blacklist this test for now until we're off Docker Hub's naughty list. This is blocking CI and pipelines. See discussions in coreos/coreos-assembler#1478 for a longer-term approach on tests that require Internet access in general.
Temporarily blacklist this test for now until we're off Docker Hub's naughty list. This is blocking CI and pipelines. See discussions in coreos/coreos-assembler#1478 for a longer-term approach on tests that require Internet access in general.
Temporarily blacklist these tests for now until we're off Docker Hub's naughty list. This is blocking CI and pipelines. See discussions in coreos/coreos-assembler#1478 for a longer-term approach on tests that require Internet access in general.
Temporarily blacklist these tests for now until we're off Docker Hub's naughty list. This is blocking CI and pipelines. See discussions in coreos/coreos-assembler#1478 for a longer-term approach on tests that require Internet access in general.
I'm happy with the CI workaround for now, but:
So far kola itself has not attached any semantic meaning to tags. I'm not opposed to that, but it'd be a notable change. We also already have the "requires Internet" metadata on these tests note. I also laid out a rationale why I think we want to support offline tests and not just specifically this Docker Hub issue:
To elaborate on that, all tests that require Internet are inherently flaky to some degree. Also I want to be able to e.g. run coreos-assembler while I'm on an airplane too. (There has also been parallel discussions with enhancing the Kubernetes and OpenShift test suites to support being run disconnected, so one can validate a disconnected environment - this is particularly tricky for OpenShift's tests which talk to Github and Docker Hub and quay and...) |
Ah, I missed the fact that |
/test sanity |
var blacklisted bool | ||
noPattern := hasString("*", patterns) | ||
for name, t := range tests { | ||
for _, flag := range t.Flags { |
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.
Hmm, shouldn't we reset noNetFiltered
to false
before this? Otherwise once it's set to true
, it'll always remain true
, no? Which means it would skip every test after a networking test when --no-net
is specified.
Or better yet, just move the variable declaration into the for-loop. I guess we could do the same for blacklisted
too.
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.
Oooh great catch! I'd tested that we didn't run the network tests and that other tests were run, but not that we still listed all of the tests...
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.
Happened to still have this tab open and one thing I wanted to say here is that this is an excellent example of why we have code review - nothing would be checking today that we're silently not running some tests and it'd be painful to find later.
The Docker Hub recently decided that us pulling the `nginx` image over and over many times a day was abusive and started rate limiting us. For OSTree's test suite at least, there's no good reason for us to run podman's tests at all. Similarly for e.g. Ignition. And just as a general rule I think it's useful to cleanly separate tests that can be run fully offline from those that require Internet access.
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cgwalters, jlebon, sohankunkerkar The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Just to xref, openshift/origin#24887 |
In coreos#1478 we discussed Internet access and tests, adding a flag to disable tests which are flagged as requiring it. This flips things around and *enforces* no Internet access for qemu tests by default unless the test is flagged as requiring it. Unsurprisingly it turns out several tests are missing the flag. (And we also don't presently have a way to flag external tests as requiring Internet, which is another issue)
In coreos#1478 we discussed Internet access and tests, adding a flag to disable tests which are flagged as requiring it. This flips things around and *enforces* no Internet access for qemu tests by default unless the test is flagged as requiring it. Unsurprisingly it turns out several tests are missing the flag. Another issue here is that external tests don't have a way to influcence flags. Continuing our "mimic Debian autopkgtest where applicable" trend, support a `needs-internet` tag, which works for external tests since they can provide flags.
In #1478 we discussed Internet access and tests, adding a flag to disable tests which are flagged as requiring it. This flips things around and *enforces* no Internet access for qemu tests by default unless the test is flagged as requiring it. Unsurprisingly it turns out several tests are missing the flag. Another issue here is that external tests don't have a way to influcence flags. Continuing our "mimic Debian autopkgtest where applicable" trend, support a `needs-internet` tag, which works for external tests since they can provide flags.
Sometime between podman 1.x and 2.x podman started putting full 64 character IDs into the json output. Dynamically detect the length of the ID and compare that number of characters. We haven't noticed this test failing because we've been denylisting the test in the pipeline: coreos#1478
Sometime between podman 1.x and 2.x podman started putting full 64 character IDs into the json output. Dynamically detect the length of the ID and compare that number of characters. We haven't noticed this test failing because we've been denylisting the test in the pipeline: #1478
The Docker Hub recently decided that us pulling the
nginx
imageover and over many times a day was abusive and started rate limiting
us.
For OSTree's test suite at least, there's no good reason for us
to run podman's tests at all. Similarly for e.g. Ignition.
And just as a general rule I think it's useful to cleanly separate
tests that can be run fully offline from those that require
Internet access.