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

Bug 1880974: 9-21-2020 merge #279

Merged
merged 24 commits into from Sep 23, 2020

Conversation

trozet
Copy link
Contributor

@trozet trozet commented Sep 22, 2020

Fixes for:

  • ipv6
  • host networking
  • exgws
  • egress firewall

JacobTanenbaum and others added 24 commits September 11, 2020 15:04
our current implementation of Ipblock is incorrect. creating a deny rule for the
except blocks will not allow ips that overlap another IPblock to be allowed.

I changed this so that we only create one ACL rule per ipBlock

so if you have one policy that says

- from:
  - ipBlock:
      cidr: 10.0.0.0/8
      except:
      - 10.0.1.0/24

and another that says

- from:
  - ipBlock:
      cidr: 10.0.0.0/8

it will translate two acls that are

match=ip4.src == 10.0.0.0/8 && ip4.src !={10.0.1.0/24}
match=ip4.src == 10.0.0.0/8

the first rule will not evaluate to true with a  packet from 10.0.1.0
it will cascade to the second ACL and correctly be allowed. If the except
is not overlapping an additional range it will be denied by the
default deny ACL

Signed-off-by: Jacob Tanenbaum <jtanenba@redhat.com>
fix ipBlock except for network policy
Signed-off-by: Antonio Ojea <aojea@redhat.com>
current resync period was set to 12 hours, instead of having
such large period with the risk of overwhelming ovn with events
every 12 hours, just disable the resync period.

AddEventHandlerWithResyncPeriod can specify a per handler resync
if necessary.

Signed-off-by: Antonio Ojea <aojea@redhat.com>
Avoids the copy exiting with code 1 when it tries to copy the
'windows' directory if you ever ran 'make windows'.

+ pushd ../dist/images
~/Development/containers/ovn-kubernetes/dist/images ~/Development/containers/ovn-kubernetes/contrib
+ sudo cp -f ../../go-controller/_output/go/bin/hybrid-overlay-node ../../go-controller/_output/go/bin/ovn-k8s-cni-overlay ../../go-controller/_output/go/bin/ovnkube ../../go-controller/_output/go/bin/ovn-kube-util ../../go-controller/_output/go/bin/windows .
cp: -r not specified; omitting directory '../../go-controller/_output/go/bin/windows'

Signed-off-by: Dan Williams <dcbw@redhat.com>
Ubuntu 18.04 repository contains old OVS/OVN packages, (2.9.5-0), which are not compatable with current implementation.
With Ubuntu 20.04 `apt-get` installs OVS 2.13 and OVN 20.03

Signed-off-by: Alexey Roytman <roytman@il.ibm.com>
we have to untaint the master nodes so we can schedule pods on them, however, the kind
get nodes does not report the nodes in the right order.

Signed-off-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
We were setting it correctly in the mac_binding table for OVN, but the
mac did not match the address configured on the host. This caused host
destined packets from OVN to be dropped in IPv6.

Signed-off-by: Tim Rozet <trozet@redhat.com>
Change egressfirewall to use logical_router_policies on the
ovn_cluster_router as oppsed to using ACLs on each nodes join
switches.

This changes optimizes the generation of egressfirewall policies
because we only have to create one object and put it in one place
the ovn_cluster_router applies to all namespaces so we only need
to attach the policy there.

because the single router applies to all namespaces the test
"correctly adds an existing egressFirewall to a new node" is no longer needed

Signed-off-by: Jacob Tanenbaum <jtanenba@redhat.com>
…outer

make egressfirewall use logical_router_policies
Fix setting ovn-k8s-gw0 mac address for ipv6 single-stack
Signed-off-by: Antonio Ojea <aojea@redhat.com>
enable ipv6 ha local job in CI
Bare metal OCP adds temporary IPs to the primary interface for use
with external load-balancing. These should be ignored when determining
the primary node IP.

Signed-off-by: Dan Winship <danwinship@redhat.com>
disable informers factory resync period
The previous code assumed that the host network pod backend to a service
would always be in the same subnet as the host accessing the service,
which is not always the case. Additionally, the code used the mask on
the host interface to determine the host subnet, which is not correct
for IPv6. IPv6 addresses may be assigned with /128 prefixes.

Since we really just care about non-pod subnet traffic from mp0 hitting
this policy and going out DGP, we can just inverse the match to match
not on pod subnet.

Signed-off-by: Tim Rozet <trozet@redhat.com>
Pods configured with egress gws were unable to reach other pods in other
subnets, via service or otherwise. This is because the lr-policy for
routing traffic to GR was not specific enough. This patch adds criteria
for matching not cluster subnet, so only external traffic is forwarded
to GR.

Signed-off-by: Tim Rozet <trozet@redhat.com>
node: ignore "deprecated" IPv6 IPs when determining primary IP
…_policy

Fixes inter node DGP policy for local gw mode
Increase the priority of egressfirewall router policies to
ensure that they get processed first. In order to make sure that
no cluster traffic is interrrupted by the egressfirewall rules ensure
that cluster traffic is explicitily excluded from the pattern match

move all the constants for the priority level on the ovn_logical_router
into one place so that all specified priority levels are centralized

Signed-off-by: Jacob Tanenbaum <jtanenba@redhat.com>
increase the priority of egressfirewall router policies
@openshift-ci-robot openshift-ci-robot added bugzilla/severity-urgent Referenced Bugzilla bug's severity is urgent for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. labels Sep 22, 2020
@openshift-ci-robot
Copy link
Contributor

@trozet: This pull request references Bugzilla bug 1880974, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.6.0) matches configured target release for branch (4.6.0)
  • bug is in the state NEW, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

In response to this:

Bug 1880974: 9-21-2020 merge

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 approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 22, 2020
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

2 similar comments
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@trozet
Copy link
Contributor Author

trozet commented Sep 22, 2020

@danwinship @dcbw verified on GCP cluster with this PR I can access host network service endpoints from another host in a different subnet:

[trozet@trozet Downloads]$ kubectl get svc
NAME         TYPE           CLUSTER-IP   EXTERNAL-IP                            PORT(S)   AGE
kubernetes   ClusterIP      172.30.0.1   <none>                                 443/TCP   126m
openshift    ExternalName   <none>       kubernetes.default.svc.cluster.local   <none>    118m

[trozet@trozet Downloads]$ kubectl get ep
NAME         ENDPOINTS                                   AGE
kubernetes   10.0.0.2:6443,10.0.0.4:6443,10.0.0.5:6443   132m

[trozet@trozet Downloads]$ kubectl get node -o wide
NAME                                       STATUS   ROLES    AGE    VERSION           INTERNAL-IP
ci-ln-gig3582-f76d1-7vh7k-master-0         Ready    master   127m   v1.19.0+7e8389f   10.0.0.5
ci-ln-gig3582-f76d1-7vh7k-master-1         Ready    master   127m   v1.19.0+7e8389f   10.0.0.2
ci-ln-gig3582-f76d1-7vh7k-master-2         Ready    master   127m   v1.19.0+7e8389f   10.0.0.4
ci-ln-gig3582-f76d1-7vh7k-worker-b-z4dwn   Ready    worker   114m   v1.19.0+7e8389f   10.0.32.2 

[trozet@trozet Downloads]$ oc debug node/ci-ln-gig3582-f76d1-7vh7k-worker-b-z4dwn 
Starting pod/ci-ln-gig3582-f76d1-7vh7k-worker-b-z4dwn-debug ...
To use host binaries, run `chroot /host`
Pod IP: 10.0.32.2
If you don't see a command prompt, try pressing enter.
sh-4.4# chroot /host
sh-4.4# curl -k https://172.30.0.1:443
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {
    
  },
  "code": 403

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

2 similar comments
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@dcbw
Copy link
Contributor

dcbw commented Sep 22, 2020

vsphere has been replaced by vsphere-ovn and we don't care about its failure
/override ci/prow/vsphere

@openshift-ci-robot
Copy link
Contributor

@dcbw: /override requires a failed status context to operate on.
The following unknown contexts were given:

  • ci/prow/vsphere

Only the following contexts were expected:

  • ci/prow/e2e-aws-ovn
  • ci/prow/e2e-azure
  • ci/prow/e2e-gcp-ovn
  • ci/prow/e2e-gcp-ovn-upgrade
  • ci/prow/e2e-metal-ipi
  • ci/prow/e2e-openstack
  • ci/prow/e2e-operator-with-custom-vxlan-port
  • ci/prow/e2e-ovn-hybrid-step-registry
  • ci/prow/e2e-vsphere
  • ci/prow/e2e-vsphere-ovn
  • ci/prow/e2e-windows-hybrid-network
  • ci/prow/images
  • tide

In response to this:

vsphere has been replaced by vsphere-ovn and we don't care about its failure
/override ci/prow/vsphere

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.

@dcbw
Copy link
Contributor

dcbw commented Sep 22, 2020

/override ci/prow/e2e-vsphere

@openshift-ci-robot
Copy link
Contributor

@dcbw: Overrode contexts on behalf of dcbw: ci/prow/e2e-vsphere

In response to this:

/override ci/prow/e2e-vsphere

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-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

10 similar comments
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@dcbw
Copy link
Contributor

dcbw commented Sep 23, 2020

Last test runs have failed 1-2 volume tests only with i/o timeouts to the gcp apiserver public IP.
/override ci/prow/e2e-gcp-ovn
/skip

@openshift-ci-robot
Copy link
Contributor

@dcbw: Overrode contexts on behalf of dcbw: ci/prow/e2e-gcp-ovn

In response to this:

Last test runs have failed 1-2 volume tests only with i/o timeouts to the gcp apiserver public IP.
/override ci/prow/e2e-gcp-ovn
/skip

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
Copy link
Contributor

openshift-ci-robot commented Sep 23, 2020

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

Test name Commit Details Rerun command
ci/prow/e2e-vsphere 2362e09 link /test e2e-vsphere
ci/prow/e2e-azure 2362e09 link /test e2e-azure

Full PR test history. Your PR dashboard.

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-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-merge-robot openshift-merge-robot merged commit a0dcb2a into openshift:master Sep 23, 2020
@openshift-ci-robot
Copy link
Contributor

@trozet: All pull requests linked via external trackers have merged:

Bugzilla bug 1880974 has been moved to the MODIFIED state.

In response to this:

Bug 1880974: 9-21-2020 merge

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/severity-urgent Referenced Bugzilla bug's severity is urgent for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants