diff --git a/pkg/apis/monitoring/v1beta1/conversion_from.go b/pkg/apis/monitoring/v1beta1/conversion_from.go index e529feac0..e2b6aa49c 100644 --- a/pkg/apis/monitoring/v1beta1/conversion_from.go +++ b/pkg/apis/monitoring/v1beta1/conversion_from.go @@ -32,6 +32,7 @@ func convertRouteFrom(in *v1alpha1.Route) (*Route, error) { out := &Route{ Receiver: in.Receiver, + Continue: in.Continue, GroupBy: in.GroupBy, GroupWait: in.GroupWait, GroupInterval: in.GroupInterval, diff --git a/pkg/apis/monitoring/v1beta1/conversion_to.go b/pkg/apis/monitoring/v1beta1/conversion_to.go index 5904f8d20..c991d84c2 100644 --- a/pkg/apis/monitoring/v1beta1/conversion_to.go +++ b/pkg/apis/monitoring/v1beta1/conversion_to.go @@ -32,6 +32,7 @@ func convertRouteTo(in *Route) (*v1alpha1.Route, error) { out := &v1alpha1.Route{ Receiver: in.Receiver, + Continue: in.Continue, GroupBy: in.GroupBy, GroupWait: in.GroupWait, GroupInterval: in.GroupInterval, diff --git a/test/e2e/alertmanager_test.go b/test/e2e/alertmanager_test.go index cb0cf8cd6..56185ebdb 100644 --- a/test/e2e/alertmanager_test.go +++ b/test/e2e/alertmanager_test.go @@ -937,6 +937,7 @@ func testAlertmanagerConfigVersions(t *testing.T) { Spec: monitoringv1alpha1.AlertmanagerConfigSpec{ Route: &monitoringv1alpha1.Route{ Receiver: "webhook", + Continue: true, Matchers: []monitoringv1alpha1.Matcher{{ Name: "job", Value: "webapp.+", @@ -963,6 +964,8 @@ func testAlertmanagerConfigVersions(t *testing.T) { t.Fatalf("expected %#v matcher, got %#v", expected, amcfgV1beta1Converted.Spec.Route.Matchers) } + require.True(t, amcfgV1beta1Converted.Spec.Route.Continue) + amcfgV1beta1 := &monitoringv1beta1.AlertmanagerConfig{ ObjectMeta: metav1.ObjectMeta{ Name: "amcfg-v1beta1", @@ -970,6 +973,7 @@ func testAlertmanagerConfigVersions(t *testing.T) { Spec: monitoringv1beta1.AlertmanagerConfigSpec{ Route: &monitoringv1beta1.Route{ Receiver: "webhook", + Continue: true, Matchers: []monitoringv1beta1.Matcher{{ Name: "job", Value: "webapp.+", @@ -982,13 +986,19 @@ func testAlertmanagerConfigVersions(t *testing.T) { }, } - if _, err := framework.MonClientV1beta1.AlertmanagerConfigs(alertmanager.Namespace).Create(context.Background(), amcfgV1beta1, metav1.CreateOptions{}); err != nil { + amcfgV1beta1, err = framework.MonClientV1beta1.AlertmanagerConfigs(alertmanager.Namespace).Create(context.Background(), amcfgV1beta1, metav1.CreateOptions{}) + if err != nil { t.Fatalf("failed to create v1beta1 AlertmanagerConfig object: %v", err) } - if _, err := framework.MonClientV1alpha1.AlertmanagerConfigs(alertmanager.Namespace).Get(context.Background(), amcfgV1beta1.Name, metav1.GetOptions{}); err != nil { + require.True(t, amcfgV1beta1.Spec.Route.Continue) + + amcfgV1alpha1, err = framework.MonClientV1alpha1.AlertmanagerConfigs(alertmanager.Namespace).Get(context.Background(), amcfgV1beta1.Name, metav1.GetOptions{}) + if err != nil { t.Fatalf("failed to get v1alpha1 AlertmanagerConfig object: %v", err) } + + require.True(t, amcfgV1alpha1.Spec.Route.Continue) } // e2e test to validate that all possible fields in an AlertmanagerConfig CR are