Skip to content
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

WIP test PR #2982

Closed
wants to merge 205 commits into from
Closed

WIP test PR #2982

wants to merge 205 commits into from

Conversation

haircommander
Copy link
Member

Signed-off-by: Peter Hunt pehunt@redhat.com

saschagrunert and others added 30 commits August 13, 2019 18:01
This enables SIGHUP based system registry reload via a new configuration
watcher. The path of the system registries.conf can be now set via an
hidden command line flag of CRI-O as well.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
The configuration reload based integration tests start now all with
'reload config', whereas the helper functions `reload_crio` and
`wait_for_log` are globally available. These will be used by the system
registries integration tests later on.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
This test is not possible to succeed any more, whereas the test result is
wrong when running as `root`.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
If `hooks_dir` is unset, CRI-O will not longer default to
`/usr/share/containers/oci/hooks.d` and `/etc/containers/oci/hooks.d`
because this behavior is depcrecated since some releases.

Documentation has been adapted as well.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
This fixes a possible issue with misconfiguration of CRI-O.

Steps to reproduce:

1. Start CRI-O with a default runtime, like:
   ```
   [crio.runtime.runtimes.kata]
   runtime_path = "/usr/bin/kata-qemu"
   runtime_type = "oci"
   runtime_root = ""
   ```
2. Create a pod sandbox
3. Stop CRI-O
4. Change the runtime_type to `vm`
5. Start CRI-O:
   ```
   panic: runtime error: invalid memory address or nil pointer dereference
   [signal SIGSEGV: segmentation violation code=0x1 addr=0x80 pc=0x18c5b60]

   goroutine 1 [running]:
   github.com/cri-o/cri-o/internal/oci.(*runtimeVM).UpdateContainerStatus(0xc00050a000, 0xc0002f1760, 0x0, 0x0)
           /go/src/github.com/cri-o/cri-o/internal/oci/runtime_vm.go:556 +0x190
   github.com/cri-o/cri-o/internal/oci.(*Runtime).UpdateContainerStatus(0xc000500690, 0xc0002f1760, 0x0, 0xc000437360)
           /go/src/github.com/cri-o/cri-o/internal/oci/oci.go:301 +0x7d
   github.com/cri-o/cri-o/internal/lib.(*ContainerServer).ContainerStateFromDisk(0xc000513f40, 0xc0002f1760, 0x1e8130f, 0x1b)
           /go/src/github.com/cri-o/cri-o/internal/lib/container_server.go:547 +0x61
   github.com/cri-o/cri-o/internal/lib.(*ContainerServer).LoadSandbox(0xc000513f40, 0xc0003f8c40, 0x40, 0x0, 0x0)
           /go/src/github.com/cri-o/cri-o/internal/lib/container_server.go:409 +0x1665
   github.com/cri-o/cri-o/server.(*Server).restore(0xc00026b200)
           /go/src/github.com/cri-o/cri-o/server/server.go:171 +0x70f
   github.com/cri-o/cri-o/server.New(0x21cc920, 0xc000381840, 0xc0003a3600, 0x1e6ffc2, 0x13, 0x2198420, 0xc00035c380, 0x21c2d60, 0xc000409410, 0x0)
           /go/src/github.com/cri-o/cri-o/server/server.go:402 +0xb8d
   main.main.func2(0xc0003a3760, 0x0, 0xc0002ccc00)
           /go/src/github.com/cri-o/cri-o/cmd/crio/main.go:738 +0x5e3
   github.com/urfave/cli.HandleAction(0x1b68e20, 0xc0003cb2e0, 0xc0003a3760, 0xc0003a3760, 0x0)
           /go/src/github.com/cri-o/cri-o/vendor/github.com/urfave/cli/app.go:514 +0xbe
   github.com/urfave/cli.(*App).Run(0xc00046bc00, 0xc0000b2170, 0x1, 0x1, 0x0, 0x0)
           /go/src/github.com/cri-o/cri-o/vendor/github.com/urfave/cli/app.go:274 +0x5fa
   main.main()
           /go/src/github.com/cri-o/cri-o/cmd/crio/main.go:851 +0x49e2
   ```

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
The `runtime_type` for each runtime gets now validated if it's either
empty (falls back to OCI), "oci" or "vm". Everything else will now be
treated as misconfiguration whereas CRI-O won't start any more.

All tests have been adapted as well.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
If the log_dir is an relative path, then the creation of the
container/sandbox will fail during runtime. To avoid this, we now
pre-check if the path is absolute. All tests have been adapted as well.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
The `log_dir` needs to be in the root table which should work now as
intended.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
and set --get false when calling e2e.test

Signed-off-by: Peter Hunt <pehunt@redhat.com>
Signed-off-by: Peter Hunt <pehunt@redhat.com>
per: kubernetes/kubernetes#82341 (comment)

Signed-off-by: Peter Hunt <pehunt@redhat.com>
to fix an issue caused by bumping etcd

Signed-off-by: Peter Hunt <pehunt@redhat.com>
Set GOPROXY=https://proxy.golang.org in the Makefile to speed up
fetching dependencies.  Note that the go modules of
golangci/golangci-lint has some invalid version specifiers, so we had to
add some replacements in our go.mod to avoid getting 410's from the
GOPROXY.

Fixes: cri-o#2756
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
The new GOSUMDB environment variable identifies the name, and optionally
the public key and server URL, of the database to consult for checksums
of modules that are not yet listed in the main module's go.sum file.

Set it to https://sum.golang.org.

Also bump golangci-lint to v1.18.0 to fix version scheme issues of
dependencies that would break the goproxy.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
First, attempt to find an IP address from /proc/net/route. If we fail to do so, attempt to find a clear primary

Signed-off-by: Peter Hunt <pehunt@redhat.com>
Instead of failing when we can't find an IP unambiguously, choose an IP using the following heuristic:
1. configured value is chosen if set
2. legacy way of calling ChooseHostIP (this is the last step in the kubelet, but we want to keep behavior the same)
3. attempt to use the hostname to find it
4. loop through available interfaces, filter out ones the kubelet would, and choose the first available.

for the 4th step, these interfaces are ordered by when they're configured on operating system level, and not alphabetically.
This is good, because we don't want a CNI network preceeding one that will connect us to the net just because the former is 9.x... and latter 10.x...

Ultimately, we want to rely on ChooseHostIP as much as possible, but now have fallbacks in case a default route isn't set

Signed-off-by: Peter Hunt <pehunt@redhat.com>
Signed-off-by: Ryan Phillips <rphillips@redhat.com>
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Fix invalid log_dir position in crio.conf
Fix possible segmentation fault on restore when runtime_type changes
Add `log_dir`/`--log-dir` validation to be absolute
Beside that, we add examples how to configure CRI-O
with katacontainers.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
 Add HUP reload feature for SystemRegistries
…-master

Allow default route to not be present
…ated_directory

fix selinux label on volume mount directory creation
giuseppe and others added 15 commits November 25, 2019 18:36
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Qi Wang <qiwan@redhat.com>
The clang static analyzer complains that the variables
`bind_uts`, `bind_ipc` and `bind_net` may be uninitialized on certain
conditions, which is now fixed.

Reproducible via:

```
> scan-build make
scan-build: Using '/usr/bin/clang-9.0.0' for static analysis
/usr/bin/ccc-analyzer -std=c99 -Os -Wall -Wextra -static   -c -o pinns.o pinns.c
pinns.c:105:7: warning: Branch condition evaluates to a garbage value
  if (bind_uts) {
      ^~~~~~~~
pinns.c:111:7: warning: Branch condition evaluates to a garbage value
  if (bind_ipc) {
      ^~~~~~~~
pinns.c:117:7: warning: Branch condition evaluates to a garbage value
  if (bind_net) {
      ^~~~~~~~
3 warnings generated.
/usr/bin/ccc-analyzer -o ../bin/pinns pinns.o -std=c99 -Os -Wall -Wextra -static
scan-build: 3 bugs found.
scan-build: Run 'scan-view /tmp/scan-build-2019-11-26-121307-20385-1' to examine bug reports.
```

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Add disk usage for ListContainerStats
The pause binary has only be used for testing purposes and has no
need in production use cases. We now remove it and adapt the testing
around to avoid improper usage.

Closes cri-o#2993, cri-o#2444

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Remove internal pause implementation
The ping pod tests removed all sandboxes after the test which caused a
race condition in removal of the pod sandbox. Isolating them and
removing only the sandboxes they created should fix that issue.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Update the CNI plugins inside the CI.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
We do not have to print out the defaults twice if a value is already
provided by the CLI. This fixes a miss-format for the GRPC send and
receive message sizes as well.

Refers to: cri-o#3011 (comment)

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
Signed-off-by: Peter Hunt <pehunt@redhat.com>
@openshift-ci-robot openshift-ci-robot added dco-signoff: no Indicates the PR's author has not DCO signed all their commits. and removed dco-signoff: yes Indicates the PR's author has DCO signed all their commits. labels Dec 3, 2019
@openshift-ci-robot
Copy link

@haircommander: PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

1 similar comment
@openshift-ci-robot
Copy link

@haircommander: PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci-robot openshift-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 3, 2019
@openshift-ci-robot
Copy link

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.

📝 Please follow instructions in the contributing guide to update your commits with the DCO

Full details of the Developer Certificate of Origin can be found at developercertificate.org.

The list of commits missing DCO signoff:

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: haircommander
To complete the pull request process, please assign nalind
You can assign the PR to them by writing /assign @nalind in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

1 similar comment
@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: haircommander
To complete the pull request process, please assign nalind
You can assign the PR to them by writing /assign @nalind in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Dec 3, 2019
@openshift-ci-robot
Copy link

@haircommander: The following tests failed, say /retest to rerun them all:

Test name Commit Details Rerun command
ci/prow/images 331e682 link /test images
ci/prow/e2e-aws 331e682 link /test e2e-aws
ci/prow/launch-aws 331e682 link /test launch-aws
ci/openshift-jenkins/e2e_features_fedora 331e682 link /test e2e_features_fedora
ci/openshift-jenkins/critest_fedora 331e682 link /test critest_fedora
ci/openshift-jenkins/e2e_features_rhel 331e682 link /test e2e_features_rhel
ci/openshift-jenkins/critest_rhel 331e682 link /test critest_rhel
ci/openshift-jenkins/e2e_rhel 331e682 link /test e2e_rhel
ci/openshift-jenkins/e2e_fedora 331e682 link /test e2e_fedora
ci/openshift-jenkins/integration_fedora 331e682 link /test integration_fedora
ci/openshift-jenkins/integration_rhel 331e682 link /test integration_rhel
ci/kata-jenkins 331e682 link /test kata-containers

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dco-signoff: no Indicates the PR's author has not DCO signed all their commits. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet