Files
backstage/plugins/kubernetes-backend
Matthew Clarke 5a9a7e7c26 Kubernetes plugin: UI revamp (#3918)
* initial revamp, no error reporting

* initial error detection

* more error detection

* add microsite page

* minor fixes

* add HPA error detection

* refactor error reporting; add tests

* fix import

* add changeseet

* empty error state

* prettier yaml file

* Update plugins/kubernetes/src/components/KubernetesDrawer/KubernetesDrawer.tsx

Co-authored-by: Patrik Oldsberg <poldsberg@gmail.com>

* Update plugins/kubernetes/src/components/KubernetesDrawer/KubernetesDrawer.tsx

Co-authored-by: Patrik Oldsberg <poldsberg@gmail.com>

* PR feedback

* revert odd change

* make patch change

* fix test

* Apply suggestions from code review

Co-authored-by: Fredrik Adelöw <freben@gmail.com>

* prettier

* pr feedback

Co-authored-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Fredrik Adelöw <freben@gmail.com>
2021-01-11 16:50:30 +00:00
..
2020-12-17 10:16:33 +00:00
2020-12-17 10:16:33 +00:00

Kubernetes Backend

WORK IN PROGRESS

This is the backend part of the Kubernetes plugin.

It responds to Kubernetes requests from the frontend.

Configuration

serviceLocatorMethod

This configures how to determine which clusters a component is running in.

Currently, the only valid serviceLocatorMethod is:

multiTenant

This configuration assumes that all components run on all the provided clusters.

clusterLocatorMethods

This is used to determine where to retrieve cluster configuration from.

Currently, the only valid serviceLocatorMethod is:

config

This clusterLocatorMethod will read cluster information in from config

Example:

kubernetes:
  serviceLocatorMethod: 'multiTenant'
  clusterLocatorMethods:
    - 'config'
  clusters:
    - url: http://127.0.0.1:9999
      name: minikube
      serviceAccountToken: <TOKEN FROM STEP 4>
      authProvider: 'serviceAccount'
    - url: http://127.0.0.2:9999
      name: gke-cluster-1
      authProvider: 'google'
clusters

Used by the config clusterLocatorMethods to construct Kubernetes clients.

url

The base url to the Kubernetes control plane. Can be found by using the Kubernetes master result from running the kubectl cluster-info command.

name

A name to represent this cluster, this must be unique within the clusters array. Users will see this value in the Service Catalog Kubernetes plugin.

authProvider

This determines how the Kubernetes client authenticate with the Kubernetes cluster. Valid values are:

Value Description
serviceAccount This will use a Kubernetes service account to access the Kubernetes API. When this is used the serviceAccountToken field should also be set.
google This will use a user's google auth token from the google auth plugin to access the Kubernetes API.
serviceAccount (optional)

The service account token to be used when using the authProvider, serviceAccount.

RBAC

The current RBAC permissions required are read-only cluster wide, for the following objects:

  • pods
  • services
  • configmaps
  • deployments
  • replicasets
  • horizontalpodautoscalers
  • ingresses