helm

Plugin Fees Helm Chart

This Helm chart installs Plugin Fees for Midaz, a high-performance and open-source ledger.


Install Plugin Fees Helm Chart

To install Plugin Fees using Helm, run the following command:

$ helm install plugin-fees oci://registry-1.docker.io/lerianstudio/plugin-fees-helm --version 1.0.0 -n midaz-plugins --create-namespace

This will create a new namespace called midaz-plugins if it doesn’t already exist and deploy the Plugin Fees Helm chart.

After installation, you can verify that the release was successful by listing the Helm releases in the midaz-plugins namespace:

$ helm list -n midaz-plugins

Upgrading

To upgrade the chart to a new version:

$ helm upgrade plugin-fees oci://registry-1.docker.io/lerianstudio/plugin-fees --version <new-version> -n midaz-plugins

Uninstalling

To uninstall the chart:

$ helm uninstall plugin-fees -n midaz-plugins

Configuring Ingress for Different Controllers

The Plugin Fees Helm Chart optionally supports different Ingress Controllers for exposing services when necessary. Below are the configurations for commonly used controllers.

NGINX Ingress Controller

To use the NGINX Ingress Controller, configure the values.yaml as follows:

ingress:
  enabled: true
  className: "nginx"
  annotations: {}
  hosts:
    - host: midaz.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: midaz-tls
      hosts:
        - midaz.example.com

Configuration

The following table lists the configurable parameters of the Plugin Fees chart and their default values.

Parameter Description Default
replicaCount Number of replicas 1
name Name of the deployment "plugin-fees"
description Description of the plugin "Plugin Fees for Midaz"
image.repository Image repository for the container lerianstudio/plugin-fees
image.pullPolicy Image pull policy Always
image.tag Image tag 1.0.0
imagePullSecrets Secrets for pulling images from a private registry [ { name: regcred } ]
nameOverride Override the default generated name by Helm ""
fullnameOverride Override the full name generated by Helm ""
ingress.enabled Enable or disable ingress false
ingress.className Ingress class name ""
ingress.annotations Additional ingress annotations {}
ingress.hosts List of ingress hosts [ { host: "", paths: [ { path: "/", pathType: "Prefix" } ] } ]
ingress.tls TLS configuration for ingress []
service.type Kubernetes service type ClusterIP
service.port Service port 4002
deploymentStrategy.type Deployment strategy type RollingUpdate
deploymentStrategy.rollingUpdate.maxSurge Max surge for rolling update 1
deploymentStrategy.rollingUpdate.maxUnavailable Max unavailable for rolling update 1
podSecurityContext Pod-level security context {}
securityContext.runAsGroup Group ID for the process 1000
securityContext.runAsUser User ID for the process 1000
securityContext.runAsNonRoot Ensures the process does not run as root true
securityContext.capabilities.drop Linux capabilities to drop [ALL]
securityContext.readOnlyRootFilesystem Root filesystem as read-only true
pdb.enabled Enable PodDisruptionBudget true
pdb.maxUnavailable Maximum unavailable pods 1
pdb.minAvailable Minimum available pods 0
pdb.annotations Annotations for PodDisruptionBudget {}
resources.limits.cpu CPU limit for pods 200m
resources.limits.memory Memory limit for pods 256Mi
resources.requests.cpu Minimum CPU request 100m
resources.requests.memory Minimum memory request 128Mi
autoscaling.enabled Enable horizontal pod autoscaling true
autoscaling.minReplicas Minimum replicas for autoscaling 1
autoscaling.maxReplicas Maximum replicas for autoscaling 3
autoscaling.targetCPUUtilizationPercentage Target CPU utilization for autoscaling 80
autoscaling.targetMemoryUtilizationPercentage Target memory utilization for autoscaling 80
nodeSelector Node selector for scheduling {}
tolerations Tolerations for scheduling on tainted nodes {}
affinity Affinity rules for pod scheduling {}
configmap ConfigMap for environment variables and configurations See below
secrets Secrets for storing sensitive data See below
useExistingSecret Use an existing Kubernetes secret false
existingSecretName Name of the existing Kubernetes secret to use ""
mongodb.enabled Enable embedded MongoDB true
mongodb.external Use external MongoDB false
mongodb.auth.enabled Enable MongoDB authentication true
mongodb.auth.rootUser MongoDB root user plugin-fees
mongodb.auth.rootPassword MongoDB root password lerian
mongodb.persistence.size MongoDB persistent volume size 8Gi
mongodb.resourcesPreset MongoDB resources preset medium

ConfigMap keys

The following environment variables are available in configmap:

Key Default Value
ENV_NAME development
PLUGIN_AUTH_ENABLED false
PLUGIN_AUTH_ADDRESS http://plugin-access-manager-auth:4000
MONGO_HOST plugin-fees-mongodb.midaz-plugins.svc.cluster.local
MONGO_NAME plugin-fees-db
MONGO_PORT 27017
MONGO_USER plugin-fees
CLIENT_ID ac56c81d4d6d95c0ac12

Secrets keys

The following secret keys are available in secrets:

Key Default Value
MONGO_PASSWORD lerian
CLIENT_SECRET 6add4bc64f394456a77fa85708ad8c9b67e39e4c

MongoDB

Support

For more information, see the Lerian Studio Documentation or contact the maintainers.