From 0b93a6021f2647f5f7b948bcfd2be75b80dc3c8c Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Fri, 7 Jul 2023 19:10:05 -0400 Subject: [PATCH 1/4] wrap error messages from ovnk --- pkg/components/networking.go | 4 ++-- pkg/config/ovn/ovn.go | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/components/networking.go b/pkg/components/networking.go index 44934f2541..b3b7e87131 100644 --- a/pkg/components/networking.go +++ b/pkg/components/networking.go @@ -50,11 +50,11 @@ func startCNIPlugin(ctx context.Context, cfg *config.Config, kubeconfigPath stri ovnConfig, err := ovn.NewOVNKubernetesConfigFromFileOrDefault(filepath.Dir(config.ConfigFile), cfg.MultiNode.Enabled) if err != nil { - return err + return fmt.Errorf("failed to create OVN-K configuration from %q: %w", config.ConfigFile, err) } if err := ovnConfig.Validate(); err != nil { - return fmt.Errorf("failed to validate ovn-kubernetes configurations %v", err) + return fmt.Errorf("failed to validate ovn-kubernetes configuration: %w", err) } if err := assets.ApplyNamespaces(ctx, ns, kubeconfigPath); err != nil { diff --git a/pkg/config/ovn/ovn.go b/pkg/config/ovn/ovn.go index 7e9b3a38de..adb654d04e 100644 --- a/pkg/config/ovn/ovn.go +++ b/pkg/config/ovn/ovn.go @@ -38,11 +38,11 @@ func (o *OVNKubernetesConfig) Validate() error { // br-ex is required to run ovn-kubernetes err := o.validateOVSBridge() if err != nil { - return err + return fmt.Errorf("failed to validate OVS bridge: %w", err) } err = o.validateConfig() if err != nil { - return err + return fmt.Errorf("failed to validate OVN-K configuration: %w", err) } return nil } @@ -50,7 +50,10 @@ func (o *OVNKubernetesConfig) Validate() error { // validateOVSBridge validates the existence of ovn-kubernetes br-ex bridge func (o *OVNKubernetesConfig) validateOVSBridge() error { _, err := net.InterfaceByName(OVNGatewayInterface) - return err + if err != nil { + fmt.Errorf("failed to find OVN gateway interface %q: %w", OVNGatewayInterface, err) + } + return nil } // validateConfig validates the user defined configuration in /etc/microshift/ovn.yaml @@ -58,7 +61,7 @@ func (o *OVNKubernetesConfig) validateConfig() error { // validate MTU conf iface, err := net.InterfaceByName(OVNGatewayInterface) if err != nil { - return err + return fmt.Errorf("failed to find OVN gateway interface %q: %w", OVNGatewayInterface, err) } if iface.MTU < o.MTU { From 1441e3416e3239f6afce673749d093f55a3c5627 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Fri, 7 Jul 2023 15:41:03 -0400 Subject: [PATCH 2/4] USHIFT-1411: pin ovs dependency to 3.1.1 This is a temporary work-around for OCPBUGS-15948 --- packaging/rpm/microshift.spec | 2 +- pkg/config/ovn/ovn.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/rpm/microshift.spec b/packaging/rpm/microshift.spec index f57db8fc38..22a3ee38c6 100644 --- a/packaging/rpm/microshift.spec +++ b/packaging/rpm/microshift.spec @@ -97,7 +97,7 @@ The microshift-selinux package provides the SELinux policy modules required by M %package networking Summary: Networking components for MicroShift -Requires: openvswitch3.1 +Requires: openvswitch3.1 == 3.1.0-14.el9fdp Requires: NetworkManager Requires: NetworkManager-ovs Requires: jq diff --git a/pkg/config/ovn/ovn.go b/pkg/config/ovn/ovn.go index adb654d04e..8adf9f38af 100644 --- a/pkg/config/ovn/ovn.go +++ b/pkg/config/ovn/ovn.go @@ -51,7 +51,7 @@ func (o *OVNKubernetesConfig) Validate() error { func (o *OVNKubernetesConfig) validateOVSBridge() error { _, err := net.InterfaceByName(OVNGatewayInterface) if err != nil { - fmt.Errorf("failed to find OVN gateway interface %q: %w", OVNGatewayInterface, err) + return fmt.Errorf("failed to find OVN gateway interface %q: %w", OVNGatewayInterface, err) } return nil } From 3c1f6fbee2f47f07333da8378ead92c0bfab6afd Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Sat, 8 Jul 2023 10:48:05 -0400 Subject: [PATCH 3/4] extend timeout on snapshot test --- test/suites/snapshot.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/suites/snapshot.robot b/test/suites/snapshot.robot index ae35afda6d..91d9cbf3e3 100644 --- a/test/suites/snapshot.robot +++ b/test/suites/snapshot.robot @@ -50,7 +50,7 @@ Test Case Setup [Documentation] Prepare the cluster-level APIs and a data-volume with some simple text Oc Apply -f ${STORAGE_CLASS} -f ${SNAPSHOT_CLASS} Oc Apply -k ${SOURCE_KUSTOMIZE} -n ${NAMESPACE} - Oc Wait For pod/${POD_NAME_STATIC} condition\=Ready + Oc Wait For pod/${POD_NAME_STATIC} condition\=Ready timeout=60s Write To Volume ${POD_NAME_STATIC} ${TEST_DATA} Oc Delete pod ${POD_NAME_STATIC} -n ${NAMESPACE} Oc Wait For pod/${POD_NAME_STATIC} delete From 74c685551676449eea4979b907b8f6557dfbbc4a Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Sat, 8 Jul 2023 13:16:40 -0400 Subject: [PATCH 4/4] Clear dnf cache Try to avoid dnf conflicts by clearing the cache before we start doing anything real. Also show dnf history to debug cache collisions from parallel operations. --- test/bin/ci_phase_iso_build.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/bin/ci_phase_iso_build.sh b/test/bin/ci_phase_iso_build.sh index f10b6cbf42..9f60e4de33 100755 --- a/test/bin/ci_phase_iso_build.sh +++ b/test/bin/ci_phase_iso_build.sh @@ -21,6 +21,13 @@ exec &> >(tee >(awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush() }' >"${ PULL_SECRET=${PULL_SECRET:-${HOME}/.pull-secret.json} +# Clean the dnf cache to avoid corruption +dnf clean all + +# Show what other dnf commands have been run to try to debug why we +# sometimes see cache collisons. +dnf history --reverse + cd ~/microshift # Get firewalld and repos in place. Use scripts to get the right repos