Team UX Roadmap (June to December)

,

https://projects.theforeman.org/issues/27074

Created a follow-up discussion about the Host Wizard: Host Wizard Kickoff

Hi!

We are currently in the development process of a new server and application deployment approach for Foreman.

Normally servers aren’t deployed for their own sake, but to serve as platform for applications.

Thus we believe, that server deployment should be application centric and self service based.

The use case scenario would be:

Administrator:

  • Creates an application definition including servers and an application orchestration mechanism (ansible playbook, salt state)
  • Defines variables that need/can be changed by the Application owner

Application owner:

  • Creates new application instance from application definition
  • defines needed variables
  • deploys application including servers (one click deployment)

The current development state is in a very early state and allows the definition on a one server deployment and a basic self service portal.

We’d be very happy if you’d take a look at the plugin and we’re happy about any type of feedback :slight_smile:

Foreman Application Centric Deployment

Thanks, Mark

1 Like

Thank you for sharing @hlawatschek :+1:

I looked at the javascript code and I can say I like the code quality +1

Some suggestions to improve the code quality:

  1. Create smaller and reusable React components.
    The ParameterSelection is one big component that handles many tasks and can turn to many smaller pieces combined together by the ParameterSelection component.
    A good starting point would be to create a standalone component for each renderSomething methods.

  2. I would suggest using travis to run tests on the cloud and install coveralls to track test coverage.

As for the roadmap, I would suggest paying attention to:

  1. @MariaAga and @Ron_Lavi work in progress on “API calls as a middleware” that can dramatically change (for good :slight_smile:) your redux actions and reducers.

  2. @amirfefer work on client-side navigation that will allow your plugin pages to load faster.
    https://github.com/theforeman/foreman/pull/6936

  3. The UI teamwork in progress around @theforeman/env package that will bring your plugin a development enviorments and tools so you can use the latest javascript syntax, run tests using jest, run storybook to demo your components, and running linting tools to verify code quality and consistency.

Thanks again for sharing, we will update once those features are ready for a demo.

3 Likes

Thanks @sharvit for you comment and your help. I added travis tests and tried to move some code from ParameterSelection to sub-components.

I’m very interested in react-router / client-side navigation. Hope this can be used for plugins, too.

This is the plan, see @amirfefer PR-6936 and more specifically, the docs about plugins which includes there: https://github.com/theforeman/foreman/pull/6936/files#diff-a587789fcf9430dd14dec2980c25190cR33

You are welcome to add your comments if you have any, afaik @amirfefer will boost the effort soon.