odo icon indicating copy to clipboard operation
odo copied to clipboard

Create Backstage Plugin for Odo CLI to Bootstrap Application Development with Devfiles

Open mohitsuman opened this issue 2 years ago • 4 comments

/kind feature

As part of improving the developer experience and enabling efficient application development, we propose creating a Backstage plugin that integrates with the Odo CLI to facilitate the quick and easy bootstrapping of applications using devfiles. Devfiles provide a standardized way to describe development environments, making it easier for developers to get started with projects.

Acceptance Criteria: To consider this issue complete, the following criteria should be met:

  1. Backstage Plugin Creation:

    • [x] Develop a new Backstage plugin dedicated to integrating with the Odo CLI. (UPDATE: we have implemented a custom action plugin (https://github.com/redhat-developer/odo/issues/7116) to execute odo, but we'll still need a Backend Plugin to support the Frontend Plugin for the Devfile UI within Backstage. That's the scope of https://github.com/redhat-developer/odo/issues/7107)
    • [x] Ensure that the plugin is well-documented and follows best practices for Backstage plugin development. (UPDATE: Done in rm3l/odo-backstage-golden-path-template and rm3l/backstage-odo-devfile-plugin)
    • [ ] Add plugin to Janus community
  2. Integration with Odo CLI:

    • [x] Implement integration with the Odo CLI, allowing developers to interact with the CLI from within Backstage. (UPDATE: we have implemented a custom action plugin (https://github.com/redhat-developer/odo/issues/7116) to execute odo from a Golden Path Template. We'll still need a Backend Plugin to support the Frontend Plugin for the Devfile UI within Backstage. That's the scope of https://github.com/redhat-developer/odo/issues/7107)
  3. Application Bootstrap using Devfiles:

    • [x] Enable the plugin to support the bootstrapping of applications using devfiles. (UPDATE: we have implemented an example of Golden Path Template in https://github.com/redhat-developer/odo/issues/7117 to bootstrap new starter project application from Backstage. Next thing that could be done would be to suggest/create a Devfile for an existing application).
    • [ ] #7105
  4. Testing and Quality Assurance:

    • [ ] Include comprehensive unit and integration tests to verify the functionality of the plugin.
    • [ ] Ensure that the plugin functions correctly with a variety of devfile configurations.
  5. Documentation:

    • [ ] Document the usage of the Backstage plugin in the official Backstage documentation.
    • [x] Include detailed instructions on how to configure and use the plugin for application development with devfiles. (UPDATE: Work done so far is documented: Template, Custom Extensions, Devfile Builder in React).
  6. Community Engagement:

    • [ ] Promote the availability of this new Backstage plugin within relevant communities and forums.
  7. Compatibility:

    • [ ] Ensure that the plugin is compatible with the latest versions of Backstage and Odo CLI.

Sub-stories/tasks:

  • [x] https://github.com/redhat-developer/odo/issues/7086
  • [x] https://github.com/redhat-developer/odo/issues/7087
  • [x] https://github.com/redhat-developer/odo/issues/7114
  • [x] #7137
  • [x] #7138
  • [x] #7139
  • [x] https://github.com/redhat-developer/backstage-odo-devfile-plugin/issues/3
  • [ ] https://github.com/redhat-developer/odo/issues/7105

mohitsuman avatar Sep 20 '23 08:09 mohitsuman

Community Call (2023-09-25)

  • Template => for creating a new repo + new Devfile
  • Plugin for 2 different flows:
    • if project has a Devfile
    • if project does not have a Devfile

rm3l avatar Sep 25 '23 14:09 rm3l

Status Update (as of Oct 19, 2023):

Based on the various discussions that we had, the work has been tackled from two perspectives:

  • https://github.com/redhat-developer/odo/issues/7114 as a separate epic to track the work for the Backstage Golden Path Template creation. This is the current priority.
    • See https://github.com/rm3l/odo-backstage-golden-path-template and https://github.com/rm3l/backstage-odo-devfile-plugin for further details.
  • A Backstage plugin (actually both Backend and Frontend Plugins) to support the Devfile Builder editor into Backstage: https://github.com/redhat-developer/odo/issues/7105

Acceptance Criteria: To consider this issue complete, the following criteria should be met:

  1. Backstage Plugin Creation:

    • [ ] Develop a new Backstage plugin dedicated to integrating with the Odo CLI.

A custom action plugin has been implemented in https://github.com/redhat-developer/odo/issues/7116, with the goal of using that to execute odo from a Backstage Template (so it would be a means to integrate the Odo CLI). It currently assumes the odo binary is installed in the environment the Backstage instance is running in. As commented out in https://github.com/redhat-developer/odo/issues/7116#issuecomment-1771110834, we still need to think of a way to distribute odo alongside the plugin module. Anyway, to integrate the Devfile Builder Editor (Frontend Plugin) into Backstage, we would need to implement a specific Backend Plugin (https://github.com/redhat-developer/odo/issues/7107). We can think about the odo distribution while working on this specific Backend Plugin..

  • [x] Ensure that the plugin is well-documented and follows best practices for Backstage plugin development.

Done in https://github.com/rm3l/odo-backstage-golden-path-template and https://github.com/rm3l/backstage-odo-devfile-plugin

  • [ ] Add plugin to Janus community
  1. Integration with Odo CLI:

    • [ ] Implement integration with the Odo CLI, allowing developers to interact with the CLI from within Backstage.
  2. Application Bootstrap using Devfiles:

    • [ ] Enable the plugin to support the bootstrapping of applications using devfiles.

Bootstrapping possible via https://github.com/redhat-developer/odo/issues/7114. See https://github.com/redhat-developer/odo/issues/7114#issuecomment-1771129019 for the remaining items. Not covered yet: creating Devfile for existing applications with already existing source code.

  1. Testing and Quality Assurance:

    • [ ] Include comprehensive unit and integration tests to verify the functionality of the plugin.
    • [ ] Ensure that the plugin functions correctly with a variety of devfile configurations.
  2. Documentation:

    • [ ] Document the usage of the Backstage plugin in the official Backstage documentation.
    • [x] Include detailed instructions on how to configure and use the plugin for application development with devfiles.
  3. Community Engagement:

    • [ ] Promote the availability of this new Backstage plugin within relevant communities and forums.
  4. Compatibility:

    • [x] Ensure that the plugin is compatible with the latest versions of Backstage and Odo CLI.

rm3l avatar Oct 19 '23 15:10 rm3l

A friendly reminder that this issue had no activity for 90 days. Stale issues will be closed after an additional 30 days of inactivity.

github-actions[bot] avatar Mar 19 '24 00:03 github-actions[bot]

/remove-lifecycle stale /lifecycle frozen

rm3l avatar Mar 19 '24 21:03 rm3l