From f63f15bfc404f50a2ddf226688c71532ae9f43b9 Mon Sep 17 00:00:00 2001 From: Gerry-Forde Date: Mon, 30 Sep 2024 09:03:27 +0100 Subject: [PATCH 1/2] RHIDP-3440-about CX: Adding contnet to About Pplugins --- .../assembly-about-rhdh-plugins.adoc | 2 +- modules/dynamic-plugins/con-rhdh-plugins.adoc | 71 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 modules/dynamic-plugins/con-rhdh-plugins.adoc diff --git a/assemblies/dynamic-plugins/assembly-about-rhdh-plugins.adoc b/assemblies/dynamic-plugins/assembly-about-rhdh-plugins.adoc index 038274ca5..b518961b2 100644 --- a/assemblies/dynamic-plugins/assembly-about-rhdh-plugins.adoc +++ b/assemblies/dynamic-plugins/assembly-about-rhdh-plugins.adoc @@ -1,4 +1,4 @@ [id="rhdh-about-rhdh-plugins_{context}"] = About {product} plugins -//include::../modules/dynamic-plugins/con-rhdh-plugins.adoc[leveloffset=+1] \ No newline at end of file +include::../modules/dynamic-plugins/con-rhdh-plugins.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/dynamic-plugins/con-rhdh-plugins.adoc b/modules/dynamic-plugins/con-rhdh-plugins.adoc new file mode 100644 index 000000000..11922310d --- /dev/null +++ b/modules/dynamic-plugins/con-rhdh-plugins.adoc @@ -0,0 +1,71 @@ +[id="con-rhdh-plugins"] + += Plugins in {product} + +// The {product} application offers a unified platform with various plugins. Using the plugin ecosystem within the {product-short} application, you can access any kind of development infrastructure or software development tool. + +// The plugins in {product-short} maximize the productivity and streamline the development workflows by maintaining the consistency in the overall user experience. + +The {product} ({product-very-short}) application offers a unified platform with various plugins. Using the plugin ecosystem within the {product-very-short} application, you can access any kind of development infrastructure or software development tool. + +Plugins are modular extensions for {product-very-short} that extend functionality, streamline development workflows, and improve the developer experience. You can add and configure plugins in {product-very-short} to access various software development tools. + +Each plugin is treated as a self-contained application and can include almost any type of content. Plugins use a common set of platform APIs and reusable UI components. Plugins can get data from external sources using APIs or by depending on external modules to do the work. + +{product-very-short} provides both static plugins and dynamic plugins which extend {product-very-short} functionality. Static plugins are built into the core of the {product-very-short} application, dynamic plugins are sideloaded into your Developer Hub instance without having to recompile your code or rebuild the container. + +To install or update a static plugin you must update your {product-very-short} application source code and rebuild the application and container image. + +To install or update a dynamic plugin, you must restart your {product-very-short} application source code after installing the plugin. + +You can also import your own custom-built or third-party plugins or create new features using dynamic plugins. + + +Dynamic plugins boost modularity and scalability by enabling more flexible and efficient functionality loading, significantly enhancing the developer experience and customization of your {product-very-short} instance. + +== Dynamic plugins +{product-very-short} dynamic plugins offer several benefits, particularly in environments where flexibility, scalability, and customization are key. Here are some of the benefits that using dynamic plugins in {product-very-short} provide: + +Modularity and extensibility:: +Dynamic plugins allow teams to add or modify features without altering the core {product-very-short} application. This modular approach makes it easier to extend functionality as needs evolve. + +Customization:: +Different teams or projects might have unique requirements. Dynamic plugins enable users to tailor {product-very-short} to fit specific workflows and use cases, enhancing the overall user experience. + +Reduced maintenance and update overhead:: +With dynamic plugins, updates or new features can be deployed independently of the main {product-very-short} codebase. This reduces the risks and efforts associated with maintaining and updating the platform. + +Faster iteration:: +Developers can create and test new features more rapidly as plugins. This encourages experimentation and innovation, allowing teams to quickly iterate based on feedback. + +Improved collaboration:: +Organizations can share plugins across teams or even externally. This sharing can foster collaboration and reduce duplication of effort, as well as help establish best practices across an organization. + +Scalability:: +As organizations grow, their needs become more complex. Dynamic plugins enable {product-very-short} to scale alongside these needs, accommodating an increasing number of users and services. + +Ecosystem growth:: +Encouraging the development of plugins can lead to a vibrant ecosystem around {product-very-short}. This community can contribute plugins that address a wide range of needs, further enriching the platform. + +Security and compliance:: +Plugins can be developed with specific security and compliance requirements in mind, ensuring that {product-very-short} installations meet the necessary standards without compromising the core application. + +Overall, the use of dynamic plugins in {product-very-short} promotes a flexible, adaptable, and sustainable approach to managing and scaling development infrastructure. + +== Comparing dynamic plugins to static plugins +Static plugins are built into the core of the {product-very-short} application. Installing or updating a static plugin requires a restart of the application after installing the plugin. + +The following table provides a comparison between static and dynamic plugins in {product-very-short}. + +[%header,cols=3*] +|=== +|*Feature* |*Static plugins* |*Dynamic plugins* +|Integration |Built into the core application. |Loaded at runtime, separate from the core. +|Flexibility |Requires core changes to add or update features. |Add or update features without core changes. +|Development speed |Slower, requires a complete rebuild for new +features. |Faster, deploy new functionalities quickly. +|Customization |Limited to predefined options. |Easy to tailor platform by loading specific plugins. +|Maintenance |More complex due to tightly coupled features. |Enhanced by modular architecture. +|Resource use |All features loaded at startup. |Only necessary plugins loaded dynamically. +|Innovation |Slower experimentation due to rebuild cycles. |Quick experimentation with new plugins. +|=== \ No newline at end of file From 28e31e47957fac93de8c3f750856bf9f8fbc522a Mon Sep 17 00:00:00 2001 From: Gerry-Forde Date: Mon, 30 Sep 2024 10:15:33 +0100 Subject: [PATCH 2/2] HIDP-3440-troubleshooting CX: Add troubleshooting content --- .../assembly-troubleshooting-rhdh-plugins.adoc | 2 +- .../con-rhdh-troubleshooting-plugins.adoc | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 modules/dynamic-plugins/con-rhdh-troubleshooting-plugins.adoc diff --git a/assemblies/dynamic-plugins/assembly-troubleshooting-rhdh-plugins.adoc b/assemblies/dynamic-plugins/assembly-troubleshooting-rhdh-plugins.adoc index 566325a98..57a783423 100644 --- a/assemblies/dynamic-plugins/assembly-troubleshooting-rhdh-plugins.adoc +++ b/assemblies/dynamic-plugins/assembly-troubleshooting-rhdh-plugins.adoc @@ -1,4 +1,4 @@ [id="rhdh-troubleshooting-rhdh-plugins_{context}"] = Troubleshooting {product-short} plugins -//include::../modules/dynamic-plugins/con-rhdh-plugins.adoc[leveloffset=+1] \ No newline at end of file +include::../modules/dynamic-plugins/con-rhdh-troubleshooting-plugins.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/dynamic-plugins/con-rhdh-troubleshooting-plugins.adoc b/modules/dynamic-plugins/con-rhdh-troubleshooting-plugins.adoc new file mode 100644 index 000000000..7e8d7313f --- /dev/null +++ b/modules/dynamic-plugins/con-rhdh-troubleshooting-plugins.adoc @@ -0,0 +1,10 @@ +[id="con-rhdh-troubleshooting-plugins_{context}"] += Mandatory environment variables +Some dynamic plugins require environment variables to be set. If a mandatory environment variable is not set, and the plugin is enabled, then the application might fail at startup. + +The mandatory environment variables for each plugin are listed in the Dynamic plugins support matrix. + += Zib-bomb detection +Zib-bomb detection When installing some dynamic plugin containing large files, if the installation script considers the package archive to be a Zib-Bomb, the installation fails. + +To increase the maximum permitted size of a file inside a package archive, you can increase the `MAX_ENTRY_SIZE` environment value of the deployment `install-dynamic-plugins initContainer` from the default size of `20000000` bytes.