For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 notes
  • base/ 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

Note The installation and customization tutorials assume Infrastructure as Code (IaC) practice for managing the system and assumes the installation directory is under source control.

Apply your overlay directly to the cluster:

To preview changes before applying, run kustomize build overlays/my-env or kubectl diff -k overlays/my-env. Consider using a GitOps tool such as ArgoCD or Flux to automate deployments from your forked repository.

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:

  1. Create an overlay file named labels.yaml in your overlay directory:

  2. 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:

  1. 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.

  2. Use labels to select things by their purpose. A number of parts of the deployment have labels such as role:logging to help you choose things to customize.

  3. Use merge and replace behaviors to control what you consume. You can choose to extend an existing object, such as a ConfigMap, using merge. If you want to fully replace the original content, you can use replace.

  4. 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