1.8.5 • Published 3 months ago

@aljesusg/backstage-plugin-kiali v1.8.5

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 months ago

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

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-id: <BACKSTAGE_ENTITY_NAME>

    You can also add the backstage.io/kubernetes-namespace annotation to identify the Kubernetes resources using the defined namespace.

    annotations:
      ...
    
      backstage.io/kubernetes-namespace: <RESOURCE_NS>
  • 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:

    annotations:
      ...
    
      janus-idp.io/kiali-enabled : 'true'
  • A custom label selector can be added, which Backstage uses to find the Kubernetes resources. The label selector takes precedence over the ID annotations.

    annotations:
      ...
    
      backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'
  • The following label is added to the resources so that the Kubernetes plugin gets the Kubernetes resources from the requested entity:

    labels:
      ...
    
      backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>`

    NOTE

    When using the label selector, the mentioned labels must be present on the resource.


Procedure

  1. Install the Kiali plugin using the following commands:

    yarn workspace app add @janus-idp/backstage-plugin-kiali
  2. Enable the Kiali tab on the entity view page using the packages/app/src/components/catalog/EntityPage.tsx file:

    /* 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:

NameDescriptionDefault ValueRequired
urlLocation of the kIALI server, such as https://localhost:4000""Yes
serviceAccountTokenService Account Token which is used for querying data from Kiali""Yes if using token based authentication
skipTLSVerifySkip TLS certificate verification presented by the API serverfalseNo
caDataBase64-encoded certificate authority bundle in PEM format""No
caFileFilesystem path (on the host where the Backstage process is running) to a certificate authority bundle in PEM format""No
sessionTimeTime in seconds that session is enabled60No

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.

Development

To develop/contribute in kiali plugin follow these instructions