Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pkg/controllers/uiplugin/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ func (rm resourceManager) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
return ctrl.Result{}, err
}

pluginInfo, err := PluginInfoBuilder(ctx, rm.k8sClient, rm.k8sDynamicClient, plugin, rm.pluginConf, compatibilityInfo, rm.clusterVersion)
pluginInfo, err := PluginInfoBuilder(ctx, rm.k8sClient, rm.k8sDynamicClient, plugin, rm.pluginConf, compatibilityInfo, rm.clusterVersion, rm.logger)

if err != nil {
logger.Error(err, "failed to reconcile plugin")
Expand Down
18 changes: 11 additions & 7 deletions pkg/controllers/uiplugin/logging.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"strings"
"time"

"github.com/go-logr/logr"
osv1 "github.com/openshift/api/console/v1"
osv1alpha1 "github.com/openshift/api/console/v1alpha1"
"gopkg.in/yaml.v3"
Expand All @@ -27,8 +28,8 @@ type loggingConfig struct {
Schema string `yaml:"schema,omitempty"`
}

func createLoggingPluginInfo(plugin *uiv1alpha1.UIPlugin, namespace, name, image string, features []string, ctx context.Context, dk dynamic.Interface) (*UIPluginInfo, error) {
lokiStack, err := getLokiStack(plugin, ctx, dk)
func createLoggingPluginInfo(plugin *uiv1alpha1.UIPlugin, namespace, name, image string, features []string, ctx context.Context, dk dynamic.Interface, logger logr.Logger) (*UIPluginInfo, error) {
lokiStack, err := getLokiStack(plugin, ctx, dk, logger)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -209,7 +210,7 @@ var lokiStackResource = schema.GroupVersionResource{

// getLokiStack returns the LokiStack resource to use for the logging plugin.
// It either uses the explicitly configured LokiStack or discovers one from the cluster.
func getLokiStack(plugin *uiv1alpha1.UIPlugin, ctx context.Context, client dynamic.Interface) (*types.NamespacedName, error) {
func getLokiStack(plugin *uiv1alpha1.UIPlugin, ctx context.Context, client dynamic.Interface, logger logr.Logger) (*types.NamespacedName, error) {
config := plugin.Spec.Logging

searchNamespace := OpenshiftLoggingNs
Expand All @@ -231,15 +232,18 @@ func getLokiStack(plugin *uiv1alpha1.UIPlugin, ctx context.Context, client dynam

lokiStacks, err := client.Resource(lokiStackResource).Namespace(searchNamespace).List(ctx, metav1.ListOptions{})
if err != nil {
return nil, fmt.Errorf("failed to list LokiStacks in namespace %s: %w", searchNamespace, err)
logger.Info("Failed to list LokiStacks in namespace, will use default", "namespace", searchNamespace, "error", err.Error())
}

if len(lokiStacks.Items) == 0 {
return nil, fmt.Errorf("no LokiStack found in namespace %s", searchNamespace)
if len(lokiStacks.Items) > 0 {
return &types.NamespacedName{
Name: lokiStacks.Items[0].GetName(),
Namespace: searchNamespace,
}, nil
}

return &types.NamespacedName{
Name: lokiStacks.Items[0].GetName(),
Name: "loki-stack",
Namespace: searchNamespace,
}, nil
}
5 changes: 3 additions & 2 deletions pkg/controllers/uiplugin/plugin_info_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"fmt"

"github.com/go-logr/logr"
osv1 "github.com/openshift/api/console/v1"
osv1alpha1 "github.com/openshift/api/console/v1alpha1"
corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -43,7 +44,7 @@ var pluginTypeToConsoleName = map[uiv1alpha1.UIPluginType]string{
uiv1alpha1.TypeMonitoring: "monitoring-console-plugin",
}

func PluginInfoBuilder(ctx context.Context, k client.Client, dk dynamic.Interface, plugin *uiv1alpha1.UIPlugin, pluginConf UIPluginsConfiguration, compatibilityInfo CompatibilityEntry, clusterVersion string) (*UIPluginInfo, error) {
func PluginInfoBuilder(ctx context.Context, k client.Client, dk dynamic.Interface, plugin *uiv1alpha1.UIPlugin, pluginConf UIPluginsConfiguration, compatibilityInfo CompatibilityEntry, clusterVersion string, logger logr.Logger) (*UIPluginInfo, error) {
image := pluginConf.Images[compatibilityInfo.ImageKey]
if image == "" {
return nil, fmt.Errorf("no image provided for plugin type %s with key %s", plugin.Spec.Type, compatibilityInfo.ImageKey)
Expand Down Expand Up @@ -82,7 +83,7 @@ func PluginInfoBuilder(ctx context.Context, k client.Client, dk dynamic.Interfac
return createDistributedTracingPluginInfo(plugin, namespace, plugin.Name, image, []string{})

case uiv1alpha1.TypeLogging:
return createLoggingPluginInfo(plugin, namespace, plugin.Name, image, compatibilityInfo.Features, ctx, dk)
return createLoggingPluginInfo(plugin, namespace, plugin.Name, image, compatibilityInfo.Features, ctx, dk, logger)

case uiv1alpha1.TypeMonitoring:
return createMonitoringPluginInfo(plugin, namespace, plugin.Name, image, compatibilityInfo.Features, clusterVersion, pluginConf.Images["health-analyzer"], pluginConf.Images["perses"])
Expand Down
Loading