Skip to content

Commit 71fb272

Browse files
committed
Fix e2e test issues introduced by chained upgrades
Signed-off-by: Stefan Büringer [email protected]
1 parent 4b3a973 commit 71fb272

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

internal/webhooks/cluster.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,10 @@ func (webhook *Cluster) validateTopology(ctx context.Context, oldCluster, newClu
394394
// TODO(chained-upgrade): handle properly when upgrade paths are called using a runtime extension.
395395

396396
// NOTE: We validate the version ceiling only if we can't validate the version against versions defined in the ClusterClass.
397-
shouldValidateVersionCeiling := len(clusterClass.Spec.KubernetesVersions) == 0
397+
shouldValidateVersionCeiling := true
398+
if clusterClass != nil {
399+
shouldValidateVersionCeiling = len(clusterClass.Spec.KubernetesVersions) == 0
400+
}
398401
if err := webhook.validateTopologyVersionUpdate(ctx, fldPath.Child("version"), newCluster.Spec.Topology.Version, inVersion, oldVersion, oldCluster, shouldValidateVersionCeiling); err != nil {
399402
allErrs = append(allErrs, err)
400403
}

test/e2e/cluster_upgrade_runtimesdk_test.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ var _ = Describe("When performing chained upgrades for workload cluster using Cl
100100
DeployClusterClassInSeparateNamespace: true,
101101
// Setting Kubernetes version from
102102
KubernetesVersionFrom: e2eConfig.MustGetVariable(KubernetesVersionChainedUpgradeFrom),
103-
// use Kubernetes versions from the kind mapper.
104-
KubernetesVersions: kind.GetKubernetesVersions(),
103+
// use Kubernetes versions from the kind mapper
104+
// Note: Ensure KUBERNETES_VERSION_UPGRADE_TO is always part of the list, this is required for cases where
105+
// KUBERNETES_VERSION_UPGRADE_TO is not in the kind mapper, e.g. in the `e2e-latestk8s` prowjob.
106+
KubernetesVersions: appendIfNecessary(kind.GetKubernetesVersions(), e2eConfig.MustGetVariable(KubernetesVersionUpgradeTo)),
105107
// The runtime extension gets deployed to the test-extension-system namespace and is exposed
106108
// by the test-extension-webhook-service.
107109
// The below values are used when creating the cluster-wide ExtensionConfig to refer
@@ -112,3 +114,12 @@ var _ = Describe("When performing chained upgrades for workload cluster using Cl
112114
}
113115
})
114116
})
117+
118+
func appendIfNecessary(versions []string, v string) []string {
119+
for _, version := range versions {
120+
if version == v {
121+
return versions
122+
}
123+
}
124+
return append(versions, v)
125+
}

test/framework/deployment_helpers.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -412,12 +412,12 @@ func dumpPodMetrics(ctx context.Context, client *kubernetes.Clientset, metricsPa
412412
}
413413

414414
if !errorRetrievingMetrics {
415-
Expect(verifyMetrics(data)).To(Succeed())
415+
Expect(verifyMetrics(data, &pod)).To(Succeed())
416416
}
417417
}
418418
}
419419

420-
func verifyMetrics(data []byte) error {
420+
func verifyMetrics(data []byte, pod *corev1.Pod) error {
421421
var parser expfmt.TextParser
422422
mf, err := parser.TextToMetricFamilies(bytes.NewReader(data))
423423
if err != nil {
@@ -458,7 +458,7 @@ func verifyMetrics(data []byte) error {
458458
}
459459

460460
if len(errs) > 0 {
461-
return kerrors.NewAggregate(errs)
461+
return errors.Wrapf(kerrors.NewAggregate(errs), "panics occurred in %s", klog.KObj(pod))
462462
}
463463

464464
return nil

0 commit comments

Comments
 (0)