npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@janus-idp/backstage-plugin-kiali

v1.34.1

Published

The Kiali Plugin This plugin exposes information about your entity-specific ServiceMesh objects.

Downloads

469

Readme

Kiali plugin for Backstage

The Kiali Plugin This plugin exposes information about your entity-specific ServiceMesh objects.

Capabilities

The Kiali plugin has the following capabilities:

  • Overview
    • Metrics by namespace
    • Health by namespace
    • Canary info
    • Istio Config warnings
  • Worklist

For administrators

Setting up the Kiali plugin

Prerequisites

  • The following annotation is added to the entity's catalog-info.yaml file to identify whether an entity contains the Kubernetes resources:

    annotations:
      ...
    
      backstage.io/kubernetes-namespace: <RESOURCE_NS>

    For now we support kubernetes-namespace due Kiali works in namespace level. We expect to support kubernetes-label-selector and kubernetes-id

  • The following annotation is added to the catalog-info.yaml file of entity to view the latest PipelineRun in the CI/CD tab of the application:

    janus-idp.io/kiali-enabled: 'true'

Setting up the Kiali frontend package

  1. Install the Kiali plugin using the following commands:

    yarn workspace app add @janus-idp/backstage-plugin-kiali
  2. Select the components that you want to use, such as:

    • KialiPage: This is a standalone page or dashboard displaying all namespaces in the mesh. You can add KialiPage to packages/app/src/App.tsx file as follows:

      /* highlight-add-next-line */
      import { KialiPage } from '@janus-idp/backstage-plugin-kiali';
      
      const routes = (
        <FlatRoutes>
          {/* ... */}
          {/* highlight-add-next-line */}
          <Route path="/kiali" element={<KialiPage />} />
        </FlatRoutes>
      );

      You can also update navigation in packages/app/src/components/Root/Root.tsx as follows:

      /* highlight-add-next-line */
      import { KialiIcon } from '@janus-idp/backstage-plugin-kiali';
      
      export const Root = ({ children }: PropsWithChildren<{}>) => (
        <SidebarPage>
          <Sidebar>
            <SidebarGroup label="Menu" icon={<MenuIcon />}>
              {/* ... */}
              {/* highlight-add-next-line */}
              <SidebarItem icon={KialiIcon} to="kiali" text="Kiali" />
            </SidebarGroup>
            {/* ... */}
          </Sidebar>
          {children}
        </SidebarPage>
      );
    • EntityKialiContent: This component is a React context provided for Kiali data, which is related to the current entity. The EntityKialiContent component is used to display any data on the React components mentioned in packages/app/src/components/catalog/EntityPage.tsx:

    /* highlight-add-next-line */
    import { EntityKialiContent } from '@janus-idp/backstage-plugin-kiali';
    
    const serviceEntityPage = (
      <EntityLayout>
        {/* ... */}
        {/* highlight-add-start */}
        <EntityLayout.Route path="/kiali" title="kiali">
          <EntityKialiContent />
        </EntityLayout.Route>
        {/* highlight-add-end */}
      </EntityLayout>
    );
  3. Configure you app-config.yaml with kiali configuration

catalog:
  providers:
    # highlight-add-start
    kiali:
      # Required. Kiali endpoint
      url: ${KIALI_ENDPOINT}
      # Optional. Required by token authentication
      serviceAccountToken: ${KIALI_SERVICE_ACCOUNT_TOKEN}
      # Optional. defaults false
      skipTLSVerify: true
      # Optional
      caData: ${KIALI_CONFIG_CA_DATA}
      # Optional. Local path to CA file
      caFile: ''
      # Optional. Time in seconds that session is enabled, defaults to 1 minute.
      sessionTime: 60
      # highlight-add-end

Authentication methods:

The following table describes the parameters that you can configure to enable the plugin under catalog.providers.keycloakOrg.<ENVIRONMENT_NAME> object in the app-config.yaml file:

| Name | Description | Default Value | Required | | --------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------- | --------------------------------------- | | url | Location of the Kiali server, such as https://localhost:4000 | "" | Yes | | serviceAccountToken | Service Account Token which is used for querying data from Kiali | "" | Yes if using token based authentication | | skipTLSVerify | Skip TLS certificate verification presented by the API server | false | No | | caData | Base64-encoded certificate authority bundle in PEM format | "" | No | | caFile | Filesystem path (on the host where the Backstage process is running) to a certificate authority bundle in PEM format | "" | No | | sessionTime | Time in seconds that session is enabled | 60 | No |

For users

  1. Open your Backstage application and select a component from the Catalog page.

catalog-list

  1. Check that you entity has the annotations.

entity

  1. Go to the Kiali tab.

    The Kiali tab displays the Overview view associated to a Servicemesh.

    overview-tab

    There is also a Go To Kiali Graph option at the bottom of each card, which redirects you to the Graph in the Kiali Standalone.

Red Hat Developer Hub

If you want to know more about Kiali in Red Hat Developer Hub follow these instructions

Development

To develop/contribute in kiali plugin follow these instructions