diff --git a/internal/kibana/kibana_test.go b/internal/kibana/kibana_test.go index e3bb3b3a1..f0b25f011 100644 --- a/internal/kibana/kibana_test.go +++ b/internal/kibana/kibana_test.go @@ -104,7 +104,8 @@ var _ = Describe("Reconciling", func() { Href: "https://", }, ApplicationMenu: &consolev1.ApplicationMenuSpec{ - Section: "Observability", + Section: "Observability", + ImageURL: icon, }, }, } diff --git a/internal/kibana/route.go b/internal/kibana/route.go index 7d20b5cdd..ef1ca583d 100644 --- a/internal/kibana/route.go +++ b/internal/kibana/route.go @@ -20,6 +20,8 @@ import ( const KibanaConsoleLinkName = "kibana-public-url" +const icon = "data:image/svg+xml;base64,PHN2ZyBpZD0iYWZiNDE1NDktYzU3MC00OWI3LTg1Y2QtNjU3NjAwZWRmMmUxIiBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDcyMS4xNSA3MjEuMTUiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuYTQ0OGZkZWEtNGE0Yy00Njc4LTk3NmEtYzM3ODUzMDhhZTA2IHsKICAgICAgICBmaWxsOiAjZGIzOTI3OwogICAgICB9CgogICAgICAuZTEzMzA4YjgtNzQ4NS00Y2IwLTk3NjUtOGE1N2I5M2Y5MWE2IHsKICAgICAgICBmaWxsOiAjY2IzNzI4OwogICAgICB9CgogICAgICAuZTc3Mjg2ZjEtMjJkYS00NGQxLThlZmItMWQxNGIwY2NhZTYyIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuYTA0MjBjYWMtZWJlNi00YzE4LWI5ODEtYWJiYTBiYTliMzY1IHsKICAgICAgICBmaWxsOiAjZTVlNWU0OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8Y2lyY2xlIGNsYXNzPSJhNDQ4ZmRlYS00YTRjLTQ2NzgtOTc2YS1jMzc4NTMwOGFlMDYiIGN4PSIzNjAuNTgiIGN5PSIzNjAuNTgiIHI9IjM1OC4yOCIvPgogIDxwYXRoIGNsYXNzPSJlMTMzMDhiOC03NDg1LTRjYjAtOTc2NS04YTU3YjkzZjkxYTYiIGQ9Ik02MTMuNTQsMTA3LjMsMTA2Ljg4LDYxNGMxNDAsMTM4LjUxLDM2NS44MiwxMzguMDYsNTA1LjI2LTEuMzlTNzUyLDI0Ny4zMyw2MTMuNTQsMTA3LjNaIi8+CiAgPGc+CiAgICA8Y2lyY2xlIGNsYXNzPSJlNzcyODZmMS0yMmRhLTQ0ZDEtOGVmYi0xZDE0YjBjY2FlNjIiIGN4PSIyMzQuNyIgY3k9IjM1Ny4zIiByPSI0Ny43MiIvPgogICAgPGNpcmNsZSBjbGFzcz0iZTc3Mjg2ZjEtMjJkYS00NGQxLThlZmItMWQxNGIwY2NhZTYyIiBjeD0iMjM0LjciIGN5PSIxODIuOTQiIHI9IjQ3LjcyIi8+CiAgICA8Y2lyY2xlIGNsYXNzPSJlNzcyODZmMS0yMmRhLTQ0ZDEtOGVmYi0xZDE0YjBjY2FlNjIiIGN4PSIyMzQuNyIgY3k9IjUzOC4yMSIgcj0iNDcuNzIiLz4KICA8L2c+CiAgPHBvbHlnb24gY2xhc3M9ImU3NzI4NmYxLTIyZGEtNDRkMS04ZWZiLTFkMTRiMGNjYWU2MiIgcG9pbnRzPSI0MzUuMTkgMzQ3LjMgMzkwLjU0IDM0Ny4zIDM5MC41NCAxNzIuOTQgMzE2LjE2IDE3Mi45NCAzMTYuMTYgMTkyLjk0IDM3MC41NCAxOTIuOTQgMzcwLjU0IDM0Ny4zIDMxNi4xNiAzNDcuMyAzMTYuMTYgMzY3LjMgMzcwLjU0IDM2Ny4zIDM3MC41NCA1MjEuNjcgMzE2LjE2IDUyMS42NyAzMTYuMTYgNTQxLjY3IDM5MC41NCA1NDEuNjcgMzkwLjU0IDM2Ny4zIDQzNS4xOSAzNjcuMyA0MzUuMTkgMzQ3LjMiLz4KICA8cG9seWdvbiBjbGFzcz0iZTc3Mjg2ZjEtMjJkYS00NGQxLThlZmItMWQxNGIwY2NhZTYyIiBwb2ludHM9IjU5OS43NCAzMTcuMDMgNTU3Ljk3IDMxNy4wMyA1NTAuOTcgMzE3LjAzIDU1MC45NyAzMTAuMDMgNTUwLjk3IDI2OC4yNiA1NTAuOTcgMjY4LjI2IDQ2NC4zNiAyNjguMjYgNDY0LjM2IDQ0Ni4zNCA1OTkuNzQgNDQ2LjM0IDU5OS43NCAzMTcuMDMgNTk5Ljc0IDMxNy4wMyIvPgogIDxwb2x5Z29uIGNsYXNzPSJhMDQyMGNhYy1lYmU2LTRjMTgtYjk4MS1hYmJhMGJhOWIzNjUiIHBvaW50cz0iNTk5Ljc0IDMxMC4wMyA1NTcuOTcgMjY4LjI2IDU1Ny45NyAzMTAuMDMgNTk5Ljc0IDMxMC4wMyIvPgo8L3N2Zz4K" + // GetRouteURL retrieves the route URL from a given route and namespace func (clusterRequest *KibanaRequest) GetRouteURL(routeName string) (string, error) { key := client.ObjectKey{Name: routeName, Namespace: clusterRequest.cluster.Namespace} @@ -80,7 +82,7 @@ func (clusterRequest *KibanaRequest) createOrUpdateKibanaConsoleLink() error { return kverrors.Wrap(err, "failed to get route URL for kibana") } - cl := console.NewConsoleLink(KibanaConsoleLinkName, kibanaURL, "Logging", "Observability") + cl := console.NewConsoleLink(KibanaConsoleLinkName, kibanaURL, "Logging", icon, "Observability") err = console.CreateOrUpdateConsoleLink(context.TODO(), clusterRequest.client, cl, console.ConsoleLinksEqual, console.MutateConsoleLinkSpecOnly) if err != nil { diff --git a/internal/manifests/console/build.go b/internal/manifests/console/build.go index 9eb964cc6..ccd20fd10 100644 --- a/internal/manifests/console/build.go +++ b/internal/manifests/console/build.go @@ -7,7 +7,7 @@ import ( ) // NewConsoleLink returns a new openshift api console link -func NewConsoleLink(name, href, text, section string) *consolev1.ConsoleLink { +func NewConsoleLink(name, href, text, icon, section string) *consolev1.ConsoleLink { return &consolev1.ConsoleLink{ ObjectMeta: metav1.ObjectMeta{ Name: name, @@ -19,7 +19,8 @@ func NewConsoleLink(name, href, text, section string) *consolev1.ConsoleLink { Href: href, }, ApplicationMenu: &consolev1.ApplicationMenuSpec{ - Section: section, + ImageURL: icon, + Section: section, }, }, } diff --git a/internal/manifests/console/consolelink.go b/internal/manifests/console/consolelink.go index d334d72b6..41affaa9c 100644 --- a/internal/manifests/console/consolelink.go +++ b/internal/manifests/console/consolelink.go @@ -77,7 +77,7 @@ func CreateOrUpdateConsoleLink(ctx context.Context, c client.Client, cl *console func DeleteKibanaConsoleLink(ctx context.Context, c client.Client) error { - current := NewConsoleLink(KibanaConsoleLinkName, "", "", "") + current := NewConsoleLink(KibanaConsoleLinkName, "", "", "", "") if err := c.Delete(ctx, current); err != nil { if !apierrors.IsNotFound(err) {