Skip to content

Commit 0515d35

Browse files
committed
fixup! ASOAPI: add e2e test
1 parent a892adf commit 0515d35

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

test/e2e/azure_clusterproxy.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ import (
3636
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor"
3737
asocontainerservicev1preview "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview"
3838
asocontainerservicev1 "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001"
39+
asoresourcesv1 "github.com/Azure/azure-service-operator/v2/api/resources/v1api20200601"
3940
. "github.com/onsi/ginkgo/v2"
4041
. "github.com/onsi/gomega"
4142
corev1 "k8s.io/api/core/v1"
4243
apierrors "k8s.io/apimachinery/pkg/api/errors"
44+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
4345
"k8s.io/apimachinery/pkg/runtime"
4446
"k8s.io/apimachinery/pkg/runtime/schema"
4547
"k8s.io/kubectl/pkg/describe"
@@ -49,6 +51,7 @@ import (
4951
infrav1exp "sigs.k8s.io/cluster-api-provider-azure/exp/api/v1beta1"
5052
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
5153
"sigs.k8s.io/cluster-api/test/framework"
54+
"sigs.k8s.io/controller-runtime/pkg/client"
5255
)
5356

5457
type (
@@ -74,6 +77,7 @@ func initScheme() *runtime.Scheme {
7477
Expect(infrav1exp.AddToScheme(scheme)).To(Succeed())
7578
Expect(infrav1expalpha.AddToScheme(scheme)).To(Succeed())
7679
Expect(expv1.AddToScheme(scheme)).To(Succeed())
80+
Expect(asoresourcesv1.AddToScheme(scheme)).To(Succeed())
7781
Expect(asocontainerservicev1.AddToScheme(scheme)).To(Succeed())
7882
Expect(asocontainerservicev1preview.AddToScheme(scheme)).To(Succeed())
7983
return scheme
@@ -225,6 +229,26 @@ func (acp *AzureClusterProxy) collectActivityLogs(ctx context.Context, namespace
225229
workloadCluster, err := getAzureCluster(timeoutctx, clusterClient, namespace, name)
226230
if apierrors.IsNotFound(err) {
227231
controlPlane, err := getAzureManagedControlPlane(timeoutctx, clusterClient, namespace, name)
232+
if apierrors.IsNotFound(err) {
233+
asoCluster, err := getAzureASOManagedCluster(timeoutctx, clusterClient, namespace, name)
234+
if err != nil {
235+
// Failing to fetch logs should not cause the test to fail
236+
Logf("Error fetching activity logs for cluster %s in namespace %s. Not able to find the AzureASOManagedCluster on the management cluster: %v", name, namespace, err)
237+
return
238+
}
239+
for _, resource := range asoCluster.Spec.Resources {
240+
u := &unstructured.Unstructured{}
241+
Expect(u.UnmarshalJSON(resource.Raw)).To(Succeed())
242+
if u.GroupVersionKind().Kind != "ResourceGroup" {
243+
continue
244+
}
245+
// AzureName might not be specified in the CAPZ resource. GET the rg to make sure we have it.
246+
rg := &asoresourcesv1.ResourceGroup{}
247+
Expect(clusterClient.Get(ctx, client.ObjectKeyFromObject(u), rg)).To(Succeed())
248+
groupName = rg.AzureName()
249+
break
250+
}
251+
}
228252
if err != nil {
229253
// Failing to fetch logs should not cause the test to fail
230254
Logf("Error fetching activity logs for cluster %s in namespace %s. Not able to find the AzureManagedControlPlane on the management cluster: %v", name, namespace, err)

test/e2e/azure_logcollector.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
apierrors "k8s.io/apimachinery/pkg/api/errors"
3535
infrav1 "sigs.k8s.io/cluster-api-provider-azure/api/v1beta1"
3636
"sigs.k8s.io/cluster-api-provider-azure/azure"
37+
infrav1expalpha "sigs.k8s.io/cluster-api-provider-azure/exp/api/v1alpha1"
3738
infrav1exp "sigs.k8s.io/cluster-api-provider-azure/exp/api/v1beta1"
3839
azureutil "sigs.k8s.io/cluster-api-provider-azure/util/azure"
3940
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
@@ -94,6 +95,10 @@ func (k AzureLogCollector) CollectMachinePoolLog(ctx context.Context, management
9495
// Machine pool can be an AzureManagedMachinePool for AKS clusters.
9596
_, err = getAzureManagedMachinePool(ctx, managementClusterClient, mp)
9697
if err != nil {
98+
if !apierrors.IsNotFound(err) {
99+
return err
100+
}
101+
_, err = getAzureASOManagedMachinePool(ctx, managementClusterClient, mp)
97102
return err
98103
}
99104
} else {
@@ -205,6 +210,17 @@ func getAzureManagedControlPlane(ctx context.Context, managementClusterClient cl
205210
return azManagedControlPlane, err
206211
}
207212

213+
func getAzureASOManagedCluster(ctx context.Context, managementClusterClient client.Client, namespace, name string) (*infrav1expalpha.AzureASOManagedCluster, error) {
214+
key := client.ObjectKey{
215+
Namespace: namespace,
216+
Name: name,
217+
}
218+
219+
azManagedCluster := &infrav1expalpha.AzureASOManagedCluster{}
220+
err := managementClusterClient.Get(ctx, key, azManagedCluster)
221+
return azManagedCluster, err
222+
}
223+
208224
func getAzureMachine(ctx context.Context, managementClusterClient client.Client, m *clusterv1.Machine) (*infrav1.AzureMachine, error) {
209225
key := client.ObjectKey{
210226
Namespace: m.Spec.InfrastructureRef.Namespace,
@@ -238,6 +254,17 @@ func getAzureManagedMachinePool(ctx context.Context, managementClusterClient cli
238254
return azManagedMachinePool, err
239255
}
240256

257+
func getAzureASOManagedMachinePool(ctx context.Context, managementClusterClient client.Client, mp *expv1.MachinePool) (*infrav1expalpha.AzureASOManagedMachinePool, error) {
258+
key := client.ObjectKey{
259+
Namespace: mp.Spec.Template.Spec.InfrastructureRef.Namespace,
260+
Name: mp.Spec.Template.Spec.InfrastructureRef.Name,
261+
}
262+
263+
azManagedMachinePool := &infrav1expalpha.AzureASOManagedMachinePool{}
264+
err := managementClusterClient.Get(ctx, key, azManagedMachinePool)
265+
return azManagedMachinePool, err
266+
}
267+
241268
func linuxLogs(execToPathFn func(outputFileName string, command string, args ...string) func() error) []func() error {
242269
return []func() error{
243270
execToPathFn(

0 commit comments

Comments
 (0)