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

OCPBUGS-1318 [Downstream Merge 23-09-2022] #1275

Closed
wants to merge 50 commits into from

Conversation

andreaskaris
Copy link
Contributor

@andreaskaris andreaskaris commented Sep 23, 2022

- What this PR does and why is it needed

- Special notes for reviewers
Some conflicts due to hybrid overlay downstream stuff. I hope I got this right.

[akaris@linux go-controller (merge_9_23_22_b)]$ git show f4ddad73ac9d971e0181c26003e0ad10622fa72f | cat
commit f4ddad73ac9d971e0181c26003e0ad10622fa72f
Merge: e1306251b 1c4421162
Author: Andreas Karis <ak.karis@gmail.com>
Date:   Mon Sep 26 15:55:12 2022 +0200

    Merge remote-tracking branch 'upstream/master' into merge_9_23_22_b
    
    Conflicts due to hybrid overlay OCP hacks:
    Kept some hack sections and added markers "OCP_HACK" for anyone hitting
    this in the future.
    Moved hybrid overlay add/update hacks from WatchNamespaces into obj_retry.go
    updateResource and addResource factories.
    
    Conflicts:
            go-controller/pkg/node/gateway_localnet.go
            go-controller/pkg/ovn/namespace.go
            go-controller/pkg/ovn/ovn.go
            go-controller/pkg/ovn/obj_retry.go
    Signed-off-by: Andreas Karis <ak.karis@gmail.com>

diff --cc go-controller/pkg/node/gateway_localnet.go
index ad7867a65,28ac41293..8b8615784
--- a/go-controller/pkg/node/gateway_localnet.go
+++ b/go-controller/pkg/node/gateway_localnet.go
@@@ -48,27 -47,6 +48,19 @@@ func newLocalGateway(nodeName string, h
  		return nil, err
  	}
  
- 	if config.OvnKubeNode.Mode == types.NodeModeFull {
- 		// add masquerade subnet route to avoid zeroconf routes
- 		err = addMasqueradeRoute(gwBridge.bridgeName, gwNextHops)
- 		if err != nil {
- 			return nil, err
- 		}
- 	}
- 
 +	// OCP HACK -- block MCS ports https://github.com/openshift/ovn-kubernetes/pull/170
 +	rules := []iptRule{}
 +	if config.IPv4Mode {
 +		generateBlockMCSRules(&rules, iptables.ProtocolIPv4)
 +	}
 +	if config.IPv6Mode {
 +		generateBlockMCSRules(&rules, iptables.ProtocolIPv6)
 +	}
 +	if err := addIptRules(rules); err != nil {
 +		return nil, fmt.Errorf("failed to setup MCS-blocking rules: %w", err)
 +	}
 +	// END OCP HACK
 +
  	if exGwBridge != nil {
  		gw.readyFunc = func() (bool, error) {
  			ready, err := gatewayReady(gwBridge.patchPort)
diff --cc go-controller/pkg/ovn/namespace.go
index c0ff8eae1,4b23cf4c9..0ac1603af
--- a/go-controller/pkg/ovn/namespace.go
+++ b/go-controller/pkg/ovn/namespace.go
@@@ -186,32 -187,12 +188,33 @@@ func (oc *Controller) AddNamespace(ns *
  		klog.Infof("[%s] adding namespace took %v", ns.Name, time.Since(start))
  	}()
  
 -	_, nsUnlock, err := oc.ensureNamespaceLocked(ns.Name, false, ns)
 +	nsInfo, nsUnlock, err := oc.ensureNamespaceLocked(ns.Name, false, ns)
  	if err != nil {
- 		klog.Errorf("Failed to ensure namespace locked: %v", err)
- 		return
+ 		return fmt.Errorf("failed to ensure namespace locked: %v", err)
  	}
- 
  	defer nsUnlock()
 +
++	// OCP HACK -- hybrid overlay
 +	annotation := ns.Annotations[hotypes.HybridOverlayExternalGw]
 +	if annotation != "" {
 +		parsedAnnotation := net.ParseIP(annotation)
 +		if parsedAnnotation == nil {
 +			klog.Errorf("Could not parse hybrid overlay external gw annotation")
 +		} else {
 +			nsInfo.hybridOverlayExternalGW = parsedAnnotation
 +		}
 +	}
 +	annotation = ns.Annotations[hotypes.HybridOverlayVTEP]
 +	if annotation != "" {
 +		parsedAnnotation := net.ParseIP(annotation)
 +		if parsedAnnotation == nil {
 +			klog.Errorf("Could not parse hybrid overlay VTEP annotation")
 +		} else {
 +			nsInfo.hybridOverlayVTEP = parsedAnnotation
 +		}
 +	}
++	// END OCP HACK
+ 	return nil
  }
  
  // configureNamespace ensures internal structures are updated based on namespace
@@@ -364,32 -350,13 +372,37 @@@ func (oc *Controller) updateNamespace(o
  		}
  	}
  
++	// OCP HACK -- hybrid overlay
 +	annotation := newer.Annotations[hotypes.HybridOverlayExternalGw]
 +	if annotation != "" {
 +		parsedAnnotation := net.ParseIP(annotation)
 +		if parsedAnnotation == nil {
 +			klog.Errorf("Could not parse hybrid overlay external gw annotation")
 +		} else {
 +			nsInfo.hybridOverlayExternalGW = parsedAnnotation
 +		}
 +	} else {
 +		nsInfo.hybridOverlayExternalGW = nil
 +	}
 +	annotation = newer.Annotations[hotypes.HybridOverlayVTEP]
 +	if annotation != "" {
 +		parsedAnnotation := net.ParseIP(annotation)
 +		if parsedAnnotation == nil {
 +			klog.Errorf("Could not parse hybrid overlay VTEP annotation")
 +		} else {
 +			nsInfo.hybridOverlayVTEP = parsedAnnotation
 +		}
 +	} else {
 +		nsInfo.hybridOverlayVTEP = nil
 +	}
- 	oc.multicastUpdateNamespace(newer, nsInfo)
++	// END OCP HACK
+ 	if err := oc.multicastUpdateNamespace(newer, nsInfo); err != nil {
+ 		errors = append(errors, err)
+ 	}
+ 	return kerrors.NewAggregate(errors)
  }
  
- func (oc *Controller) deleteNamespace(ns *kapi.Namespace) {
+ func (oc *Controller) deleteNamespace(ns *kapi.Namespace) error {
  	klog.Infof("[%s] deleting namespace", ns.Name)
  
  	nsInfo := oc.deleteNamespaceLocked(ns.Name)
diff --cc go-controller/pkg/ovn/obj_retry.go
index 16f275ec0,0c2cb0590..af6f52e59
--- a/go-controller/pkg/ovn/obj_retry.go
+++ b/go-controller/pkg/ovn/obj_retry.go
@@@ -10,6 -9,6 +9,8 @@@ import 
  	"sync"
  	"time"
  
++	"github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config"
++
  	ocpcloudnetworkapi "github.com/openshift/api/cloudnetwork/v1"
  
  	kapi "k8s.io/api/core/v1"
@@@ -746,6 -747,13 +754,21 @@@ func (oc *Controller) addResource(objec
  		cloudPrivateIPConfig := obj.(*ocpcloudnetworkapi.CloudPrivateIPConfig)
  		return oc.reconcileCloudPrivateIPConfig(nil, cloudPrivateIPConfig)
  
+ 	case factory.NamespaceType:
+ 		ns, ok := obj.(*kapi.Namespace)
+ 		if !ok {
+ 			return fmt.Errorf("could not cast %T object to *kapi.Namespace", obj)
+ 		}
++		// OCP HACK -- required for hybrid overlay
++		if config.HybridOverlay.Enabled && hasHybridAnnotation(ns.ObjectMeta) {
++			if err := oc.addNamespaceICNIv1(ns); err != nil {
++				klog.Errorf("Unable to handle legacy ICNIv1 check for namespace %q add, error: %v",
++					ns.Name, err)
++			}
++		}
++		// END OCP HACK
+ 		return oc.AddNamespace(ns)
+ 
  	default:
  		return fmt.Errorf("no add function for object type %s", objectsToRetry.oType)
  	}
@@@ -885,6 -889,10 +908,18 @@@ func (oc *Controller) updateResource(ob
  		oldCloudPrivateIPConfig := oldObj.(*ocpcloudnetworkapi.CloudPrivateIPConfig)
  		newCloudPrivateIPConfig := newObj.(*ocpcloudnetworkapi.CloudPrivateIPConfig)
  		return oc.reconcileCloudPrivateIPConfig(oldCloudPrivateIPConfig, newCloudPrivateIPConfig)
+ 
+ 	case factory.NamespaceType:
+ 		oldNs, newNs := oldObj.(*kapi.Namespace), newObj.(*kapi.Namespace)
++		// OCP HACK -- required for hybrid overlay
++		if config.HybridOverlay.Enabled && nsHybridAnnotationChanged(oldNs, newNs) {
++			if err := oc.addNamespaceICNIv1(newNs); err != nil {
++				klog.Errorf("Unable to handle legacy ICNIv1 check for namespace %q during update, error: %v",
++					newNs.Name, err)
++			}
++		}
++		// END OCP HACK
+ 		return oc.updateNamespace(oldNs, newNs)
  	}
  
  	return fmt.Errorf("no update function for object type %s", objectsToRetry.oType)

There was also a second merge conflict during the second merge:

[akaris@linux go-controller (merge_9_23_22_b)]$ git show | cat
commit 8d4f50b371a105501a66b54647ce93cadabfb7a0
Merge: f4ddad73a 4577c2613
Author: Andreas Karis <ak.karis@gmail.com>
Date:   Wed Sep 28 16:05:56 2022 +0200

    Merge remote-tracking branch 'upstream/master' into merge_9_23_22_b
    
    Conflicts due to hybrid overlay OCP HACK
    
    Signed-off-by: Andreas Karis <ak.karis@gmail.com>
    
    Conflicts:
            go-controller/hybrid-overlay/pkg/types/types.go
            go-controller/pkg/ovn/pods_test.go

diff --cc go-controller/hybrid-overlay/pkg/types/types.go
index 3b71212f8,9793bbf48..74e437ee6
--- a/go-controller/hybrid-overlay/pkg/types/types.go
+++ b/go-controller/hybrid-overlay/pkg/types/types.go
@@@ -11,10 -11,8 +11,14 @@@ const 
  	HybridOverlayNodeSubnet = HybridOverlayAnnotationBase + "node-subnet"
  	// HybridOverlayDRMAC holds the MAC address of the Distributed Router/gateway
  	HybridOverlayDRMAC = HybridOverlayAnnotationBase + "distributed-router-gateway-mac"
++	// OCP HACK --- required for hybrid overlay
 +	// HybridOverlayExternalGw is a pod and namespace annotation. It holds the IP address of the external gateway to route default traffic
 +	HybridOverlayExternalGw = HybridOverlayAnnotationBase + "external-gw"
 +	// HybridOverlayVTEP is a pod and namespace annotation that holds the IP address of the VTEP
 +	HybridOverlayVTEP = HybridOverlayAnnotationBase + "vtep"
++	// END OCP HACK
+ 	// HybridOverlayDRIP holds the port address to redirect traffic to get to the hybrid overlay
+ 	HybridOverlayDRIP = HybridOverlayAnnotationBase + "distributed-router-gateway-ip"
  	// HybridOverlayVNI is the VNI for VXLAN tunnels between nodes/endpoints
  	HybridOverlayVNI = 4097
  )
diff --cc go-controller/pkg/ovn/pods_test.go
index ef493a59f,9a41a098a..fab378e50
--- a/go-controller/pkg/ovn/pods_test.go
+++ b/go-controller/pkg/ovn/pods_test.go
(...)

In pods_test.go, I had to remove this line as it showed up 2x:

-       hotypes "github.com/ovn-org/ovn-kubernetes/go-controller/hybrid-overlay/pkg/types"

adrianchiris and others added 29 commits January 4, 2022 15:54
- Add design doc which depicts the current implementation
  in OVN-Kubernetes
- Add DPU section in ovs_offload docs

Note:

Currently only a general overview is provided
in the in-project documents plus links to google doc.

This is a first stage to have some initial documentation
in the project. Later on these docs should be converted
to Markdown and be part of the project.

Signed-off-by: Adrian Chiris <adrianc@nvidia.com>
NetworkPolicyNotCreated error only returned from
updateACLLoggingForPolicy when network policy that is passed as an
argument have np.created = false.
updateACLLoggingForPolicy called from 2 places:
func (oc *Controller) setNetworkPolicyACLLoggingForNamespace(ns string,
nsInfo *namespaceInfo) error {
   ...
   for name, policy := range nsInfo.networkPolicies { }
   ...
}

func (oc *Controller) addNetworkPolicy(policy *knet.NetworkPolicy)
error {
    ...
    if err := oc.createNetworkPolicy(np, policy, aclLogDeny,
    aclLogAllow,portGroupIngressDenyName, portGroupEgressDenyName);
    ...
    nsInfo.networkPolicies[policy.Name] = np
    if err := oc.updateACLLoggingForPolicy(np, nsInfo.aclLogging.Allow);
    err != nil {
    ...
}

np.created is set to true in createNetworkPolicy,
and createNetworkPolicy is only called from addNetworkPolicy.

To make sure that np.created = true for every updateACLLoggingForPolicy
call, we need to check that
1. every policy from nsInfo.networkPolicies has .created = true,
which is true since network policy is added to nsInfo.networkPolicies
only when createNetworkPolicy successfully completed
2. addNetworkPolicy only calls updateACLLoggingForPolicy after
createNetworkPolicy successfully completed, which i=s also true, since
error will be returned earlier if createNetworkPolicy fails

Signed-off-by: Nadia Pinaeva <npinaeva@redhat.com>
Commit 16ea40b changed the logical switch other-config to be overwriten
this needs to be changed so that the hostsubnet values are appended.

Signed-off-by: Jacob Tanenbaum <jtanenba@redhat.com>
Signed-off-by: Yun Zhou <yunz@nvidia.com>
GetConfigDurationRecorder is called from two paths.
1) nodeTracker detects a switch or GR has been added for the node
and does a full RequestFullSync which calls onServiceAdd
2) onServiceAdd is called from the service handler for adds.

If we don't lock the cdr variable we access it from two
routines while one routine edits it; the other tries to read it
for example. Let's lock this variable to prevent races.

2022-09-09T14:33:01.6982688Z WARNING: DATA RACE
2022-09-09T14:33:01.6982976Z Read at 0x000004402a78 by goroutine 1044:
2022-09-09T14:33:01.6983629Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/metrics.GetConfigDurationRecorder()
2022-09-09T14:33:01.6984387Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/metrics/master.go:847 +0x29b
2022-09-09T14:33:01.6985239Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).onServiceAdd()
2022-09-09T14:33:01.6986069Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/ovn/controller/services/services_controller.go:366 +0x33f
2022-09-09T14:33:01.6986732Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).RequestFullSync()
2022-09-09T14:33:01.6988638Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/ovn/controller/services/services_controller.go:351 +0x2b2
2022-09-09T14:33:01.6989314Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).RequestFullSync-fm()
2022-09-09T14:33:01.6989705Z       <autogenerated>:1 +0x39
2022-09-09T14:33:01.6990287Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*nodeTracker).updateNodeInfo()
2022-09-09T14:33:01.6991204Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/ovn/controller/services/node_tracker.go:150 +0x67b
2022-09-09T14:33:01.6993403Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*nodeTracker).updateNode()
2022-09-09T14:33:01.6994200Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/ovn/controller/services/node_tracker.go:201 +0x709
2022-09-09T14:33:01.6996051Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.newNodeTracker.func1()
2022-09-09T14:33:01.6996855Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/ovn/controller/services/node_tracker.go:78 +0x55
2022-09-09T14:33:01.6998163Z   k8s.io/client-go/tools/cache.ResourceEventHandlerFuncs.OnAdd()

versus

2022-09-09T14:33:01.7016687Z Previous write at 0x000004402a78 by goroutine 1070:
2022-09-09T14:33:01.7017329Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/metrics.GetConfigDurationRecorder()
2022-09-09T14:33:01.7018197Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/metrics/master.go:848 +0x310
2022-09-09T14:33:01.7018912Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).onServiceAdd()
2022-09-09T14:33:01.7019866Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/pkg/ovn/controller/services/services_controller.go:366 +0x33f
2022-09-09T14:33:01.7020529Z   github.com/ovn-org/ovn-kubernetes/go-controller/pkg/ovn/controller/services.(*Controller).onServiceAdd-fm()
2022-09-09T14:33:01.7020900Z       <autogenerated>:1 +0x4d
2022-09-09T14:33:01.7021431Z   k8s.io/client-go/tools/cache.ResourceEventHandlerFuncs.OnAdd()
2022-09-09T14:33:01.7022328Z       /home/runner/work/ovn-kubernetes/ovn-kubernetes/go-controller/vendor/k8s.io/client-go/tools/cache/controller.go:232 +0x74
2022-09-09T14:33:01.7022857Z   k8s.io/client-go/tools/cache.(*ResourceEventHandlerFuncs).OnAdd()

Signed-off-by: Surya Seetharaman <suryaseetharaman.9@gmail.com>
The `err` variable was not being set to the result of the endpoint
generation, which meant that if - for whatever reason - creating those
endpoints failed, the test would continue and fail further down the
execution.

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
…when-creating-endpoints

e2e tests, services: assert endpoints were created
The `checkPingOnContainer` function is duplicated in the tests. It also
returns an error, that is both already asserted within the function, and
not checked by the caller. Thus, we can safely remove that call.

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
Signed-off-by: Mohamed Mahmoud <mmahmoud@redhat.com>
BZ2117255 append instead of overwrite logicalSwitch other-config
Add retry logic to Namespace resources
Due to the way how IPv6 multipath is implemented, it is not possible
to filter by ifindex as the ifindex for multihop routes will always be
0. Instead, implement a custom filter.

Reported-at: https://issues.redhat.com/browse/OCPBUGS-1318
Signed-off-by: Andreas Karis <ak.karis@gmail.com>
In environments where PodSecurity is enforced we can't use the default ns unless
certain labels are set. Namespaces we create with the framework have these labels
which let us create pods on them without restrictions.
Since we're using disposable namespaces that are deleted in AfterEach there is
no longer need to delete the gw pods.

Signed-off-by: Ori Braunshtein <obraunsh@redhat.com>
EnsureAddressSet may be called by multiple go threads around the same time.
While transactions are serialized, the operations that populate the transactions
are not and that is where the determination on whether a row in ovsdb is to
be created or updated via libovsdbops. The result of that is that the creation
fails due to the constraints on the table index.

This change is a placebo. It simply detects and logs this case since a
higher level retry logic is expected to succeed on the following invocation.

Co-authored-by: Surya Seetharaman <suryaseetharaman.9@gmail.com>
Signed-off-by: Flavio Fernandes <flaviof@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2108026
getDefaultGatewayInterfaceByFamily: custom filter for MultiHop
Since the `br-ex` bridge already has the node masquerade IP address, it
is no longer required to add the masquerade route to the nodes.

The SNAT/unSNAT traffic to/from the node to use the node masquerade IP
address will **still** be used, to specifically support the use case of
packets sent from the node having a different source IP address.

The `V4MasqueradeSubnet` had to be updated, since follow-up commits will
require the `.4` address on that subnet to use as a dummy next-hop for
deployments where there isn't a next-hop available.

netlink utils: rename  method

This `LinkRoutesAddOrUpdateMTU` function can now be used to update the
route MTU *or* the route source. Thus, rename the method accordingly.

A follow up commit should try to come up with a better abstraction,
since this function already does too much:
It either:
- adds a route **or**
- updates a route
  - MTU **or**
  - source

I think we should have 3 different functions, each doing a single thing,
and leave to the caller to know which of those to invoke.

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
Co-authored-by: Tim Rozet <trozet@redhat.com>

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
For simplicity, the `.4` address on the node masquerade subnet was
chosen - this one was the next available IP address on that subnet.

Finally, also provision the MAC binding tables for each of the gateway
routers, thus providing ARP resolution for the aforementioned IP
address.

The resolved MAC address is computed from the IP address, and is the
same on each of the nodes, since traffic is not supposed to leave the
node - and as such, there is no risk for collisions.

The OVN nodes are also updates to use this dummy next-hop, and a
permanent neighbor is added for said IP / MAC.

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
Co-authored-by: Tim Rozet <trozet@redhat.com>
Now that host -> service can work without using a default gateway there
is no need to require it. With this change no next hops will be written
to the l3 gateway config annotation for the node if none are detected.
However, this only will work if --gateway-interface config is provided
at ovnkube node start time. If that is not provided, we still rely on
default gateway lookup to determine which interface should be used to
communicate with the external bridge.

Signed-off-by: Tim Rozet <trozet@redhat.com>
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
…ute on br-ex

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
E2E (exgw): create ns for the serving gw pods instead of using default
e2e, external gw test: remove duplicate funcs
This patch makes route filtering generic - it is up to the caller to
specify which route to look for, along with the filter mask specifying
the relevant attributes.

With this, we can now look for a simple route - match stricly on the dst
route - when the node is being created, but also have a finer match,
also providing the GW, for the services controller.

Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
Signed-off-by: Miguel Duarte Barroso <mdbarroso@redhat.com>
@openshift-ci-robot openshift-ci-robot added the jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. label Sep 23, 2022
Copy link
Contributor

@trozet trozet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

conflict resolution looks good

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 28, 2022
@andreaskaris
Copy link
Contributor Author

/retest-required

3 similar comments
@andreaskaris
Copy link
Contributor Author

/retest-required

@trozet
Copy link
Contributor

trozet commented Sep 29, 2022

/retest-required

@tssurya
Copy link
Contributor

tssurya commented Sep 29, 2022

/retest-required

@tssurya
Copy link
Contributor

tssurya commented Sep 29, 2022

#1281 merged but hoping the merge CI is smart enough to ignore that commit here.

@tssurya
Copy link
Contributor

tssurya commented Sep 29, 2022

/retitle OCPBUGS-1318 [Downstream Merge 23-09-2022]

@openshift-ci openshift-ci bot changed the title Jira OCPBUGS-1318: Merge 9 23 22 b OCPBUGS-1318 [Downstream Merge 23-09-2022] Sep 29, 2022
@tssurya
Copy link
Contributor

tssurya commented Sep 29, 2022

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Sep 29, 2022
@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 337a94c and 2 for PR HEAD 8d4f50b in total

@trozet
Copy link
Contributor

trozet commented Sep 29, 2022

/lgtm

@trozet
Copy link
Contributor

trozet commented Sep 29, 2022

/retest-required

@flavio-fernandes
Copy link
Contributor

/retest-required

@flavio-fernandes
Copy link
Contributor

/lgtm

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 29, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: andreaskaris, flavio-fernandes, trozet, tssurya

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@trozet
Copy link
Contributor

trozet commented Sep 29, 2022

@andreaskaris I've seen this fail multiple times now:
: [sig-network] [Feature:IPv6DualStack] Granular Checks: Services Secondary IP Family [LinuxOnly] should function for service endpoints using hostNetwork

Perhaps worth launching a cluster bot and running this test manually to see if it passes.

@trozet
Copy link
Contributor

trozet commented Oct 3, 2022

/retest-required

2 similar comments
@andreaskaris
Copy link
Contributor Author

/retest-required

@flavio-fernandes
Copy link
Contributor

/retest-required

@trozet
Copy link
Contributor

trozet commented Oct 4, 2022

dualstack is now passing on my clone PR here:
#1289

with this fix: ovn-org/ovn-kubernetes#3201

@andreaskaris
Copy link
Contributor Author

/retest-required

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 5, 2022

@andreaskaris: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-vsphere-windows 8d4f50b link false /test e2e-vsphere-windows
ci/prow/okd-e2e-gcp-ovn 8d4f50b link false /test okd-e2e-gcp-ovn
ci/prow/e2e-ovn-hybrid-step-registry 8d4f50b link false /test e2e-ovn-hybrid-step-registry
ci/prow/e2e-openstack-ovn 8d4f50b link false /test e2e-openstack-ovn
ci/prow/e2e-hypershift 8d4f50b link false /test e2e-hypershift
ci/prow/e2e-aws-ovn-windows 8d4f50b link false /test e2e-aws-ovn-windows
ci/prow/e2e-metal-ipi-ovn-dualstack 8d4f50b link true /test e2e-metal-ipi-ovn-dualstack

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.

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/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira 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