Setting up Init Container for Customization
You can now configure an init container to apply customizations to the product during certified container deployment. All the customizations from the init container are mounted to the application containers during initialization. These customizations are then applied to the product as soon as the application containers begin running when the application containers get into running state.
The new customization init container is an alternative to deploying customization via Customization UI/APIs. You can choose either of the options for deploying your customization, however you cannot choose both the options at the same time. Once the customization init container option is enabled in helm charts, the Customization UI is available for viewing in read-only mode. During this phase, you cannot add, edit, or remove any customization using the Customization UI.
When you enable the customization init container option, it will automatically delete any customizations you previously added through the Customization UI. These will be replaced by the customizations included in the customization init container. Make sure to review the customizations you have on the Customization UI and confirm that all the required ones have been included in the customization init container image before you enable this feature.
On the other hand, if you switch back from customization init container to Customization UI, then the customizations need to be cleaned-up manually from the Customization UI and applied again.
- During application startup, it retrieves all customizations from the database and
applies them to the application sequentially using the traditional
install3rdParty
andInstallService
. This method works well with few customizations, but as the number increases, it significantly slows down the container startup time. - There are limitations to deleting or updating customizations once they are installed.
- The size of the customization file further degrades the performance of the pod startup time.
- You can add any number of customizations without relatively impacting the pod startup time.
- All updates to the database for custom services and Customization UI entries for view-only are handled as part of the db setup job as a one-time database update during application install or upgrade.
- Updates to the database for customizations are only required when there are changes to the customizations or new custom services are added to the image.
- There is no limit to the size of the custom jars or services that can be added to the product.
- You can easily delete or update customizations by just updating the customization container image.
The other significant advantage with the customization init container is that all the customizations can now be maintained on a single source repository, built and packaged using CI/CD pipelines, as an independent container image purpose-built for customization. This helps with better handling and maintainability of all customization resources.
- Custom Third-party Libraries libraries including jars, db driver jars, properties and shared or native libraries
- Custom Services
- User Exits
- Custom Properties including override files and adding new/or updating existing product property files
- Custom SFG Protocols
- UI Branding for all currently supported web interfaces including dashboard, mailbox, filegateway, myfilegateway and myfg20
- Liberty or API server extensions (new)
- Startup script extensions (new)