func()

in pkg/cni/overlay.go [38:75]


func (r *Reconciler) reconcileOverlayCniIfNeeded(ctx context.Context, subnetID string) error {
	if r.reconciledOverlayCNI {
		return nil
	}

	isOverlay, err := r.isClusterOverlayCNI(ctx)
	if err != nil {
		return errors.New("failed to check if cluster is using overlay CNI")
	}

	if !isOverlay {
		return nil
	}

	klog.Infof("Cluster is using overlay CNI, using subnetID %q for application gateway", subnetID)
	subnet, err := r.armClient.GetSubnet(subnetID)
	if err != nil {
		return errors.Wrap(err, "failed to get subnet")
	}

	var subnetCIDR string
	if subnet.AddressPrefix != nil {
		subnetCIDR = *subnet.AddressPrefix
	} else if subnet.AddressPrefixes != nil && len(*subnet.AddressPrefixes) > 0 {
		subnetCIDR = (*subnet.AddressPrefixes)[0]
	} else {
		return errors.New("subnet does not have an address prefix(es)")
	}

	klog.Infof("Using subnet prefix %q", subnetCIDR)
	err = r.reconcileOverlayExtensionConfig(ctx, subnetCIDR)
	if err != nil {
		return errors.Wrap(err, "failed to reconcile overlay resources")
	}

	r.reconciledOverlayCNI = true
	return nil
}