Giter Club home page Giter Club logo

backstage-showcase's Introduction

Quay.io registry

Purpose

Our purpose for this project is to first showcase the value of the plugins that we have created. These include the ArgoCD, GitHub Issues, Keycloak, Kubernetes, OCM, Tekton, and Topology plugin. Each of these plugins have been hand picked or created by the Janus IDP team for their practicality.

The second purpose is to demonstrate the power of an internal developer portal using Backstage as the solution. Backstage is an application that can simplify the onboarding process for organizations with plenty of customization through the use of their plugin system.

Features

Today, we have several plugins integrated into the showcase app as a way to demonstrate the versatility of Backstage. Some of these integrations are plugins that we have built while others are ones that we see as must haves in most Backstage instances.

Our current list of plugins within the showcase app include:

Getting Started

Dependencies:

Information on running the showcase app can be found in our Getting Started documentation. In the documentation is how to set up and run an instance of the showcase app locally. We plan to expand upon the documentation at a later point if there is enough interest in other methods for getting the app up and running.

We are excited to see people wanting to contribute to our project and welcome anyone who wishes to participate. You are more than welcome to browse through our open issues and tackle anything you feel confident in working on.

We also welcome non code contributions in the form of bug reporting and documentation writing. If you run across any bugs in the showcase app, please raise an issue here in GitHub.

Community, Discussion, and Support

The Janus Community meeting is held biweekly on Thursday at 1:30 UTC via Google Meet. An agenda can be found for the meeting and we encourage you to add any topics that you wish to discuss.

Bugs should be filled out here on GitHub.

Join the community slack channel for a quick way to reach us or members of the community for discussion and collaboration.

Want to see a plugin in the showcase? Create an issue and we will discuss if it is right for the project.

Have an idea for a plugin? Submit a proposal to the Janus IDP Backstage Plugins repo.

Resources

Our blog is a great way to see what we are up to.

You can find the Backstage Showcase app running at https://showcase.janus-idp.io.

For more information on our plugin offerings, consult the Janus IDP Backstage Plugins repo.

Want to know more about Backstage, consult the documentation and GitHub repo.

backstage-showcase's People

Contributors

andrienkoaleksandr avatar bethgriggs avatar christophe-f avatar ciiay avatar davidfestal avatar debsmita1 avatar dependabot[bot] avatar divyanshigupta avatar fmenesesg avatar gashcrumb avatar github-actions[bot] avatar gorkem avatar gustavolira avatar hyperkid123 avatar invinciblejai avatar jerolimov avatar jesuino avatar josephca avatar kadel avatar kim-tsao avatar nickboldt avatar pataknight avatar raffaelespazzoli avatar renovate[bot] avatar samokopecky avatar schultzp2020 avatar subhashkhileri avatar tumido avatar varodrig avatar zaperex avatar

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

Watchers

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

backstage-showcase's Issues

Add Theme / Customization

Story

  • As a user, I wish to see the Janus IDP related themes within the Backstage Showcase app.

Description

  • Backstage allows for the default themes to be overridden allowing users to customize the look and feel of their app. We can leverage this to create themes focused around our brand.

AC

  • Implement the agreed upon themes that were decided by the Janus IDP team.

Additional Notes

  • We will need to have some conversations around how we want the Backstage Showcase app to look and feel.

Add GitHub Issues Plugin

Story

  • As a user, I wish to be able to view the issues that are currently present in my GitHub repositories.

Description

  • The GitHub plugin allows users to view any issues that have been created within their GitHub repositories. This allows them to quickly identify any problem from within the Backstage app.

AC

  • Add the GitHub Issues plugin to the Backstage Showcase app
  • Able to visualize the issues within the catalog page
  • Update the catalog-info.yaml file to allow for GitHub issues to be surfaced within the Backstage Showcase app
  • Document the GitHub specific process for deployment

Additional Notes

Add Keycloak Plugin

Story

  • As a user, I wish to be able to use Keycloak Authentication and the Keycloak Plugin within the Backstage Showcase app.

Description

  • Keycloak is an identity and access management tool. The purpose of this story is to add the Keycloak plugin to the Backstage Showcase app. In addition to adding the Keycloak plugin, we will begin the implementation of authentication starting with a login page.

ACs

  • Add the Keycloak plugin to the Backstage Showcase app
  • Able to sign into Backstage Showcase app using an account created within Keycloak
  • Visualize the users and groups that were created within Keycloak in the Backstage Showcase Catalog
  • Document the Keycloak specific process for deployment

Additional Notes

  • None

Optimize Dockerfile performance

What do you want to improve?

Optimize Dockerfile to run faster. We have many contributions and it takes a long time to get feedback, merge and deploy.

What is the current behavior?

The build time was already too long and doubled in the last week.

What is the new behavior?

Build faster. Much faster

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Avoid unnecessary build of Showcase

What do you want to improve?

We should build Showcase only when the code is updated. Not the Techdocs documentation.

What is the current behavior?

We are building Showcase everytime there is a code change.

What is the new behavior?

Don't trigger a build if the change is in the docs folder. The docs will be generate with another GitHub Action

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Automate deployment

Once the build is done, ArgoCD does not trigger a deployment of the latest image.

Deployment to OperateFirst

Story

  • As a user, I wish to see an example of the Backstage Showcase app running within OperateFirst.

Description

  • To better showcase the app, we should have an instance of it running within OperateFirst. This can help to better show the value that Backstage and our Janus IDP plugins have to offer.

AC

  • An instance of the Backstage Showcase app running on OperateFirst
  • Documentation on how to deploy to OperateFirst for future reference

Additional Notes

  • None so far

Add Documentation

Story

  • As a developer, I would like to better understand the purpose of the Backstage Showcase app.

Description

  • We should expanded up our documentation to allow members of the community to better understand the Backstage Showcase app. This should include information on contributing to the project (creating issues, pull requests), an updated README (outlining the purpose of the app and links to additional documentation), how to get started with the app, and more.

AC

  • Updated README to explain the purpose of the app
  • Contribution documentation

Additional Notes

  • This will need more refinement to better capture what all we will be looking for.

Add OCM Plugin

Story

  • As a user, I wish to be able to view information about the clusters that I have available to me using the Open Cluster Management plugin within Backstage

Description

  • The Open Cluster Management plugin allows users the ability to see information about their available clusters. Using OCM, we can view information about clusters as well as access them straight from the Backstage app.

AC

  • OCM plugin added to the Backstage Showcase app
  • View cluster related information within the Backstage Showcase app
  • Document the OCM specific process for deployment

Additional Notes

  • Will require the Kubernetes plugin to be implemented within the Backstage Showcase app

Running image leads to an error whenever deployed to OpenShift

Originally, we updated the Dockerfile to find a way to decrease the length of time that it takes to build an image. In some instances it would take up to an hour for the build to complete. This was causing issues whenever we are trying to continually iterate changes within the project. However, due our removal of fix-permissions within the Dockerfile, we are now getting an error whenever we attempt to deploy to an OpenShift cluster.

There are currently some conversations being had about how best to update the Dockerfile from redhat-backstage-build. Once those conversations have been concluded we should update the Docker file in backstage-showcase to mirror the Dockerfile from redhat-backstage-build.

Update the GitHub action to push to Quay.io

Once the permission to Quay is resolved, we need to do the following tasks:

  • Update the GitHub Action to push the image to quay.io instead of GitHub registry.
  • Use the image from Quay to deploy the showcase app in the ArgoCD manifest.
  • Update the annotation in the catalog-info.yaml file.

Be able to use an environment variable for the ArgoCD url

What do you want to improve?

We should be able to customize the ArgoCD url in the app-config.yaml config file.

What is the current behavior?

Currently the url is hardcoded in the app-config.yaml:
target: https://argocd.operate-first.cloud/api/v1/

What is the new behavior?

The app-config should have something like:
target: ${ARGOCD_URL}

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Unable to log in using GitHub

What happened?

There is an issue where we are unable to log in via GitHub within the showcase app. This is leading to most of the GitHub plugins being unavailable.

What are the steps to reproduce this issue?

  1. Navigate to the showcase app
  2. Go to the catalog
  3. Select backstage-showcase
  4. Attempt to log in
  5. See “User not found”

Browser affected

Put an x in the boxes that apply

  • All
  • Chrome
  • Safari
  • Edge
  • Firefox

We only support the last 2 major versions.

Devices affected

Put an x in the boxes that apply

  • All
  • Desktop
  • Tablet
  • Phone

Attach any related screenshots, if any.

Multiple Environments for the Showcase App

What do you want to improve?

We would like to deploy the showcase app using different configurations for different environments.

What is the current behavior?

Currently, the showcase app is being deployed on Operate First using the base configuration in the manifests directory. This leads to problems when deploying because we are unable to ensure that the showcase app will work whenever new changes are introduced.

What is the new behavior?

We update the manifests to include new environments for deployment. This will also allow us to go in and clean up some of our manifests as they are currently pieced together to get the showcase app up and running.

Some initial ideas for the configurations include:

  • Prod
  • QA - where we can run tests on the recent changes
  • Dev - where we can potentially test PRs manually

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Special Notes

Need to reach out to members of Operate First to ensure we are able to have multiple namespaces
We would need to figure out how we wish to promote from one environment to another

Add Kubernetes Plugin

Story

  • As a user, I wish to be able to visualize Kubernetes resources within the Backstage Showcase app using the Kubernetes plugin.

Description

  • The Kubernetes plugin allows us to view Kubernetes resources that are running within a cluster. Using the plugin in conjuction with the annotation/label "backstage.io/kubernetes-id", one can visualize that resource within the catalog.

AC

  • Add the Kubernetes plugin to the Backstage Showcase app
  • Able to visualize Kubernetes resources running within a cluster in the Backstage Showcase app
  • Update the catalog-info.yaml file to be able to surface the Backstage Showcase app running within a cluster.
  • Document the Kubernetes specific process for deployment

Additional Notes

  • This is needed before we introduce the OCM plugin

Use actions/cache in the GitHub Actions

What do you want to improve?

Reduce the GitHub action execution time

What is the current behavior?

We are not using caching

What is the new behavior?

Use caching to improve execution time on most of the steps in the different GitHub Actions with actions/cache save and restore

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Zero downtime during deployment

The current deployment will make the showcase app unavailable for a few minutes. The environment should always be available for customers, demo, etc

Add custom homepage

Add the homepage plugin to the showcase app

Customize the homepage to display the Janus links

Externalize the data in a json file to be able to update it later on without having to redeploy

Add templates for issues

Use the GitHub issue template to create a skeleton when a user is creating a new issue for bug, feature request or enhance an existing feature. The issue input will be consistent and contains the required information.

Update Keycloak & oauth2proxy settings

What do you want to improve?

What is the current behavior?

What is the new behavior?

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Improve build time

Goal

The build used to take around 10 minutes which is a long time. It now takes at least 20 minutes. The goal is to optimize the build and reduce it to only 2-3 minutes.

Acceptance criteria

  • Showcase built should take only 2-3 minutes.

Issues in Epic

Add additional GitHub issue templates

Acceptance criteria

We currently have 3 issue templates for bugs, new features and enhancements.

To be consistent and make sure we have all the required information in the issues, we need similar templates for the kinds:

  • security (quick description, CVE link, severity)
  • dependency upgrade (library name, from which version to which version)
  • chore (what has to be done, which part of the project, related to another tool (GH Actions, etc)
  • epic (description, links to all related issues)
  • documentation (new section in documentation, updating documentation)

Improve our system of tagging images

What do you want to improve?

We have some interest coming in from other teams to use the images that we build for the backstage-showcase app. We should come up with a method for improving how we tag our images to ensure that we do not introduce a breaking change / error that could potentially be disruptive to the other teams.

What is the current behavior?

We create two images that are tagged with latest and the git id every time there is a push to main.

What is the new behavior?

A method of ensuring there is an image that we can guarantee will work for the other teams. A couple of ideas that come to mind are included below.

  • Start a versioning system where we have major versions that we can guarantee will work and minor versions that could introduce an issue / error and tag accordingly
  • Pull and re-tag the previous git id tagged images to something that will be identifiable to the other teams
  • Keeping track of previous git id tags that we know work and updating teams when new ones arrive

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Add a badge for Quay in the README

What do you want to improve?

Add a badge with a link to Quay to anyone can find the latest image.
Like the one in the redhat-backstage-build repo

What is the current behavior?

Currently we don't have a link to Quay. We used to publish to GH Registry so user can find the old image. We should remove the old image and only keep Quay (or publish to both)

What is the new behavior?

Let the user where to find the latest image

Enable github identity resolver

What do you want to improve?

Enable github identity resolver, this will allow a user that logs in to be mapped to an identity imported via the github org processor (see #115 ). This is a necessary step to understand the ownership of a user that is logged it. Having an identity resolver is also the base of any serious RBAC implementation.

see here: https://backstage.io/docs/auth/identity-resolver/#built-in-resolvers
also an implementation with the default github idneityt resolver: https://github.com/raf-backstage-demo/backstage-app-demo/blob/main/packages/backend/src/plugins/auth.ts

⚠️ Is this a breaking change?

Put an x in the boxes that apply

  • Yes
  • No
  • Don't know

Add Upstream Helm Chart

Story

  • As a user, I wish to be able to deploy the Backstage Showcase app to a Kubernetes cluster.

Description

  • Currently, the Helm Chart that we are utilizing within our repository is the helm-backstage Janus-IDP Helm Chart and is not the correct Helm Chart that we are going to be using to deploy the showcase app with. This can lead to some confusion whenever we start getting more involvement from the community and needs to be address. The correct Helm Chart should instead come from the upstream Backstage repository.

AC

  • Upstream Helm Chart added to the repository
  • Documentation on how to deploy to a cluster using the Helm Chart.

Additional Notes

  • None so far

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.