Extending Stratos
Stratos can be customized in a number of ways. Colors and fonts can be updated to add unique branding, additional menu items can be added in a number of places, custom EULAs can be used, new Stratos Jetstream (backend) endpoints, and much more.
For those with existing customization migrating to 4.0 please see our upgrade guide.
Approach
In order to customize Stratos, you will need to fork the Stratos GitHub repository and apply customizations in your fork. Our aim is to minimize any merge conflicts that might occur when re-basing your fork with the upstream Stratos repository.
Frontend
Frontend customizations are placed in angular packages in the folder named src/frontend/packages
. In the future you will be able to host these packages in npm and bring them into Stratos in the usual npm dependency way. There are no additional processes or build steps required for Stratos to then integrate these packages. All steps will be automatically applied under the hood during npm install
and when ng build
/ng serve
runs.
Information on custom theming can be found in the theming page.
Information on additional functionality can be found in the extensions page.
Backend (Jetstream)
Jetstream customizations are written in go and can be added in src/jetstream/plugins
. In the future we hope to combine this work with the frontend changes, such that all functionality for
a feature can be applied to Stratos in a similar way.
More information can be found in the custom plugins page.
Examples
ACME
The ACME example contains a number of theming and functionality customization.
To run Stratos with these customizations
- Include the example packages (by default these are excluded). Do this by...
- Creating the file
stratos.yaml
in the root of the repo - Adding the following content to
stratos.yaml
packages:include:- '@stratosui/core'- '@stratosui/shared'- '@stratosui/store'- '@stratosui/cloud-foundry'- '@stratosui/cf-autoscaler'- '@stratosui/theme'- '@example/extensions'- '@example/theme'
- Creating the file
- Run Stratos the usual way, for more information see the Developer Guide.
SUSE
More advanced, real world examples can be found the in SUSE Stratos repository, again containing theming and functionality customizations.
To run Stratos with these customizations simply start the console the usual way from that repo, for more information see the Developer Guide.
Further Reading
Detailed instructions on how to customize the theme, frontend functionality and backend can be found in this section.