Giter Site home page Giter Site logo

komodorio / komoplane Goto Github PK

View Code? Open in Web Editor NEW
207.0 7.0 21.0 844 KB

๐Ÿจ Crossplane Troubleshooting Tool by Komodor

License: Apache License 2.0

Dockerfile 0.79% Makefile 0.80% Go 28.12% JavaScript 3.39% HTML 0.30% CSS 0.09% TypeScript 65.29% Smarty 1.23%
crossplane gui kubernetes troubleshooting ui

komoplane's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

komoplane's Issues

[feature] Use the "status" indicator element to filter resources on status

Currently, when we display a a Composite Resource in Komoplane, status indicators are present to show the different statuses of the managed resources

E.g. : in the following screenshot, we can see that some resources are "Synched" (green) and some are "Not Ready" (red)

image

It would be make these "status indicators" clickable to be able to filter on status in order to show only "Not Ready" resources for example

Managed resource filtering POC

We need to introduce filtering for Managed Resources, based on name, kind, API group and provider config. The scope for this issue is only frontend part of that, the backend will be implemented separately.

The effect of filter should reflect in corresponding API call query parameters, names up to dev.

Keep in mind that other Komoplane sections might also need filtering functionality, makes sense to have some reusable component for it.

Adding k8s APIGroup to components in the graph view

It is great that now the resource Kind is visible in each component in the graph!

It would also be valuable to see the APIGroup on the component, meaning here:
image

Maybe it is better for the APIGroup and Kind to be displayed in the box, under the name, something like:
name: <RESOURCE_NAME>
kind: <RESOURCE_KIND>
apiVersion / apiGroup: <RESOURCE_API_VERSION> / <RESOURCE_API_GROUP>

Liveness/readiness probes fail when deploying on EKS

When I deploy the helm chart on EKS 1.24 the liveness/readiness probes fail and the pod is restarted every 30 seconds.

I changed the port: http to port: 8090 for both probes and that seems to have solved the problem. I'm not sure if that's the correct fix?

Display useful message in case of error occured

In case unhandled error happens, we should display nice message, containing:

  • technical error details: error message, stacktrace
  • application version
  • call for user to report the error to the komoplane GH issues
  • suggestion to refresh the page

Something similar to this:
ch07-debugger

Feels like "React error boundary" should be involved

Setting debug in values.yaml causes error on deployment

When the komoplane.debug attribute is set to true in values.yaml the following error occurs on deployment:

Error: INSTALLATION FAILED: Deployment in version "v1" cannot be handled as a Deployment: json: cannot unmarshal number into Go struct field EnvVar.spec.template.spec.containers.env.value of type string

The problem is that the value 1 is being used in the template for the ENV var which gets translated as an integer, instead of '1' which would be translated as a string.

Add graph for Composition and XRD

Composition has a reference to composite resource definition, via compositeTypeRef field. The improvement is to enable "Relations" tab for composition view drawer and XRD drawer and display relation there.

The task needs both backend and frontend work. Can be done via separate PRs by different people.

Backend needs to use same trick with full=1 query parameter, to list:

  • for composition, the XRD it refers to
  • for XRD, all compositions that refers to it

XRD without claim names causes JS error

Create an XRD with no claims and the following error happens on xrd view.

Uncaught TypeError: Cannot read properties of undefined (reading 'kind')
    at Fbe (index-59f92d5a.js:382:16742)
    at bO (index-59f92d5a.js:38:19518)
    at M$ (index-59f92d5a.js:40:44027)
    at w$ (index-59f92d5a.js:40:39763)
    at Q4 (index-59f92d5a.js:40:39691)
    at m_ (index-59f92d5a.js:40:39545)
    at WR (index-59f92d5a.js:40:35913)
    at O$ (index-59f92d5a.js:40:34864)
    at R (index-59f92d5a.js:25:1535)
    at MessagePort.k (index-59f92d5a.js:25:1894)
image

[helm-chart] Unable to set annotations and labels for various resources

The Helm Chart allows setting annotations and labels for some resources but not all. Specifically, I'd like the ability to set annotations and labels for the Service.

#51 submitted for review to:

  • add default labels to ClusterRole and ClusterRoleBinding
  • add ability to specify annotations for service
  • add ability to specify labels for Ingress, Service & ServiceAccount
  • add missing serviceAccount.annotations to values.yaml

Can the baseURL of the UI be configured?

Can I configure the base URL of the komoplane UI? I am currently using a reverse proxy that's already implemented in my employer's org and want to route traffic to a specific location (ex. myorg.dev.example.com/komoplane).

Fix graph nodes alignment

When graphs are displayed, the composition nodes are misplaced
Selection_002

It has to do with the way we create and configure the graph. It does not happen always, and the cause for it is unknown. Should be simple issue with React hooks and callbacks.

The requirement is for arrows to go left-to-right always, upon initial load and upon navigation between different views.

Add help buttons in page headers

In each page header of application, there should be short description of what it means. The description should be taken from Crossplane docs. Also, there should be a link to corresponding place in Crossplane documentation.

Selection_006

The goal is to offer less experienced users the direction to learn Crossplane

Consider using a table format

The list views (claims, compositions, managed resources, etc) are not very space-efficient, so once you have more than just a couple of items, you need to scroll, and it's hard to get an overview. Consider instead using a more dense table format, maybe even one that supports sorting/filtering

Cannot handle multiple deployed versions of composite resources

If more than one version of an composite resource definition exists, the function Controller.GetComposite risk of failing if the first version fetched is an non-active one.

To be more specific, the code fails here:

                gvk := schema.GroupVersionKind{ // TODO: xrd.Status.Controllers.CompositeResourceClaimTypeRef is more logical here
                        Group:   xrd.Spec.Group,
                        Version: xrd.Spec.Versions[0].Name,
                        Kind:    *kind,
                }

I have a suggestion to remedy this problem and will follow this issue up with a pull request

no Auth Provider found for name "oidc"

Failed to login using oidc auth

INFO[0000] komoplane, version 0.1.5 (9d75e0d9c32729746fcbec3837c7cbb855a3ad0b @ 2024-01-14T18:46:04Z)
FATA[0000] Failed to start: no Auth Provider found for name "oidc"

solution is simply adding

import (
.....
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
)

in controller pkg

Add resource types in relations view

If you have compositions without setting external-name, it's very hard to see what's what without clicking through (which is pretty slow). It could also be showing the crossplane.io/composition-resource-name annotation value.

Screenshot from 2023-08-17 23-39-16

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.