Customize ESS
You can customize your ESS deployment using Kustomize overlays.
Inrupt provides access to a Git repository containing the Kustomize manifests for ESS. The repository is structured so that you fork it, create your own overlays, and pull upstream tags to upgrade.
Repository Structure
The repository Inrupt provides has the following structure:
ess-kustomize-releases/
base/ # Service deployment manifests (managed by Inrupt)
components/ # Optional feature components (audit, security, scaling, etc.)
generated/images/ # Image digest references
overlays/examples/ # Example overlay configurations
docs/ # Quickstart and upgrade guides
VERSION # Release metadata
CHANGELOG.md # Release notesbase/contains the Kubernetes manifests for each ESS service. These are managed by Inrupt and should not be modified directly.components/contains optional Kustomize components that you can include in your overlay to enable features such as audit sinks, Kafka encryption, HPA autoscaling, pod security standards, and more.overlays/examples/contains example overlay configurations that you can copy and customize for your environment.
Creating Your Overlay
To customize ESS, create your own overlay by copying an example:
Your overlay's kustomization.yaml references the base service manifests and includes the components you need. For example:
Applying Your Customizations
Apply your overlay directly to the cluster:
Adding a Custom Patch
To customize a specific service, add a patch to the patches section of your overlay's kustomization.yaml. For example, to add a custom label to all resources:
Create an overlay file named
labels.yamlin your overlay directory:Reference it in your
kustomization.yaml:
To target a specific service deployment, use the target field:
Examples
The pages in this section contain examples for customizing your ESS deployment.
Start App and Approval Pages
Security
Logging and Auditing
Pod Maintenance and Metrics
General
Design Considerations
When designing your customizations, be aware that new features and services will arrive in updates to ESS. As such, consider the following when customizing:
Be selective. Try to focus the customization on the specific objects you want to change. For example, specify the deployment name when scaling to 20 replicas.
Use labels to select things by their purpose. A number of parts of the deployment have labels such as
role:loggingto help you choose things to customize.Use
mergeandreplacebehaviors to control what you consume. You can choose to extend an existing object, such as aConfigMap, usingmerge. If you want to fully replace the original content, you can usereplace.Use namespaces to separate distinct workloads For instance, you may be adding logging or certificate management. Consider putting those in other namespaces if they are cluster-wide and serve other workloads, not just ESS. However, if you are adding a new web server that will work in tandem with ESS, then using the same namespace as ESS may be preferable.
Additional Information
For more information on Kustomize, see Declarative Management of Kubernetes Objects Using Kustomize .
Last updated