googlecontainertools / kpt-backstage-plugins Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Most of the UI plugin is general-purpose, except for resource-type-specific code.
That code is currently spread across multiple files and directories:
https://github.com/GoogleContainerTools/kpt-backstage-plugins/tree/main/plugins/cad/src/types
https://github.com/GoogleContainerTools/kpt-backstage-plugins/blob/main/plugins/cad/src/components/ResourceEditorDialog/components/FirstClassEditorSelector.tsx
https://github.com/GoogleContainerTools/kpt-backstage-plugins/tree/main/plugins/cad/src/components/ResourceEditorDialog/components/FirstClassEditors
https://github.com/GoogleContainerTools/kpt-backstage-plugins/blob/main/plugins/cad/src/components/ResourceViewerDialog/components/FirstClassViewerSelector.tsx
https://github.com/GoogleContainerTools/kpt-backstage-plugins/tree/main/plugins/cad/src/components/ResourceViewerDialog/components/FirstClassViewers/StructuredMetadata/resources
and possibly other places.
It would be useful for resource-type-specific implementations to be self-contained, so that they could be easily added, eventually without a fork of the plugin. That would enable other projects to add types relevant to them: Kubernetes types, Config Connector types, ArgoCD types, Gatekeeper types, Istio types, etc.
At least until we're able to autogenerate UI forms from resource definitions. :-)
This issue was automatically created by Allstar.
Security Policy Violation
PR Approvals below threshold 0 : 1 for branch main
This issue will auto resolve when the policy is in compliance.
Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.
Add support for deploying the Config as Data UI to Amazon Elastic Kubernetes Service (EKS).
Creating a new release should automatically publish the Configuration as Data plugins to NPM. Today this is completed with a manual process.
Allow packages to be compared with sibling packages (packages that share the same upstream package). Today, shown in the screenshot below, packages can only be compared to earlier revisions and their upstream revision.
A possible implementation is to list sibling revisions in the Compare Revision dropdown as 'Sibling ([package-name] [package-revision])'. These should show after the upstream revision in the dropdown. If there are multiple siblings with the same package name (possible if they are cloned to separate repositories), the package name can be prefixed with the repository name. Only the latest published package revision for each sibling needs to be shown in the dropdown.
Comparing siblings allows differences to be quickly and easily viewed between variants. Today this isn't possible with the UI.
This issue was automatically created by Allstar.
Security Policy Violation
Security policy not enabled.
A SECURITY.md file can give users information about what constitutes a vulnerability and how to report one securely so that information about a bug is not publicly visible. Examples of secure reporting methods include using an issue tracker with private issue support, or encrypted email with a published key.
To fix this, add a SECURITY.md file that explains how to handle vulnerabilities found in your repository. Go to https://github.com/GoogleContainerTools/kpt-backstage-plugins/security/policy to enable.
For more information, see https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository.
This issue will auto resolve when the policy is in compliance.
Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.
Allow users to abandon draft package revisions. Today, draft package revisions can only be edited or proposed (see screenshot).
Add a 'Abandon' button next to the Edit button when a draft package revision is being viewed. When this button is clicked, the draft revision is deleted from Porch and the UI automatically redirects the user to the latest published revision of the package. If the package doesn't have any new published revisions, the UI redirects the user back to the packages list.
Today there's no easy way for a user to abandon a draft revision in the UI if one was accidentally created or a draft revision is no longer needed.
The UI currently tracks related CRs (e.g. Repository) in the "default" namespace only.
Ideally there would be a dropdown to select an individual namespace or all namespaces.
Add a visual indicator to the repositories table to allow users to identify any repositories that are not ready.
A possible implementation is to add a new status column as the first column to the repositories table. When the repository is not ready, the PriorityHigh icon shows in the column with the tooltip 'Repository not ready'. Clicking the icon should take you to the repository page, where the user can view why the repository is not ready on the advanced tab (existing functionality).
The user needs to discover if any repositories not ready when looking at the repositories table so the user can take the appropriate actions to make a repository ready. A repository may not be ready for several reasons, including an expired access token, an invalid url, or a private repository registered without an access token.
This is second hand from someone at the ONE Summit trying to do the Nephio workshop. They tried to access the GUI and just got a blank screen. Chrome worked fine.
Allow the Config as Data UI to manage deployment and blueprint packages without needing to have Config Sync installed on the cluster.
Simply by commenting out the google-cloud-sdk-gke-gcloud-auth-plugin, the docker image builds again with docker build --target backstage-app-local --tag kpt-backstage-plugins .
Could it be that this plugin has been incorporated into google-cloud-sdk?
Viewing a resource's yaml should not log any warnings to the developer console.
Currently, two warnings are logged to the developer console when a resource yaml is viewed:
Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq
You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker
The easiest way to reproduce this is by viewing a package resource's yaml:
simplens
team blueprint created by Namespace Provisioning GuideA possible solution is to implement the web worker being requested by the editor.
The Monaco Editor is used in the Resource Editors and Viewers in the Config as Data UI to give us a rich editor experience with syntax highlighting. These warnings do not seem to impact the user experience however we should see these warnings can be resolved.
This isn't urgent, but it seems possible to create a generic form editor driven from OpenAPI.
Here's an example: https://jeremykross.github.io/konstellate/
That one requires a painful number of clicks to navigate and is implemented in clojure, but illustrates the idea.
There was also https://github.com/CATechnologiesTest/yipee.
Our current forms aren't much fancier than these, though I'm hoping we can move the hand-crafted forms to a more guided step-by-step approach.
We don't have an official process for creating images of backstage with the CaD plugin that can be run in Kubernetes. It would be nice to create an image with each release to make it easier for people to try out.
When I add an ApplyReplacements object to a blueprint, half the time I forget to also add the apply-replacements function to the Kptfile. It would be nice to add the function automatically in the UI when adding the object, until kpt itself has support for mapping types to functions.
Add a first-class Network Policy resource editor.
The Network Policy resource editor does not need to implement every field present on the resource. The editor should allow updates to the metadata (name, namespace, labels, annotations), the policy type to be updated to deny all ingress and egress traffic, and use match labels on the pod selector to limit the group of pods to which the network policy will apply.
Currently, the Config as Data UI has first-class resource editors for many resources, including for Deployments, Stateful Sets, Services, Service Accounts, Ingress, Roles, and Role Bindings, however, a first-class resource editor has yet to be created for Network Policies. First-class resource editors allow users to add and update Kubernetes resources with a UI versus using YAML.
User should be able to navigate to the Settings page successfully.
A error shows when the user navigates to the Settings page.
This doesn't impact the functionality of the Config as Data Plugin but we should still resolve this.
Currently Github authentication requires us to create a Personal Access Token (PAT). This same token can be used to pull images from ghcr. Another alternative is configuring a default secret at the service account level: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account which will help us in fetching the image on a private registry
PS: Is it possible to remove the requirement for PAT altogether and use something like Github Authentication Provider for Backstage? https://backstage.io/docs/auth/github/provider#docsNav
Add a first-class Priority Class resource editor.
Currently, the Config as Data UI has first-class resource editors for many resources, including for Deployments, Stateful Sets, Services, Service Accounts, Ingress, Roles, and Role Bindings, however, a first-class resource editor has yet to be created for Network Policies. Adding first-class resource editors allow users to add and update Kubernetes resources with a UI versus using YAML.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.