generic-microservice-helm

March 4, 2025 ยท View on GitHub

Version: 1.3.3 Type: application AppVersion: 1.16.0

Generic helm chart for Energy Web Foundation microservices

Maintainers

NameEmailUrl
EWF DevOps Teamdevops@energyweb.org

Requirements

RepositoryNameVersion
https://charts.bitnami.com/bitnamicommon2.2.2

Installing the chart

This helm chart is published in GitHub Packages OCI registry. Beginning in Helm v3.8.0, OCI support is enabled by default.

helm install oci://ghcr.io/energywebfoundation/generic-microservice-helm --generate-name

Pre-commit hook

Make sure you install the pre-commit binary. Then run:

pre-commit install
pre-commit install-hooks

Prometheus Metrics Scraping

This chart provides automatic Prometheus metrics scraping configuration through annotations. To enable metrics scraping for your service:

metrics:
  enabled: true
  path: "/metrics"  # Optional: defaults to /metrics
  port: "8080"      # Optional: if not specified, uses the first service port

When enabled, these annotations (prometheus.io/scrape: "true", prometheus.io/path, and prometheus.io/port) will be automatically added to your pods, making them discoverable by Prometheus.

Values

KeyTypeDefaultDescription
affinityobject{}
autoscaling.enabledboolfalse
autoscaling.maxReplicasint100
autoscaling.minReplicasint1
autoscaling.targetCPUUtilizationPercentageint80
metrics.enabledboolfalseEnable Prometheus metrics scraping
metrics.pathstring"/metrics"Path where metrics are exposed
metrics.portstring""Port where metrics are exposed (defaults to service port)
configFilesobject{}
configFilesMountPathstring"/usr/share/config"
container.ports.httpint80
deploymentStrategystring"RollingUpdate"
envobject{}
envFromobject{}
extraLabelsobject{}Extra lables to be added to all resources
extraVolumeMountslist[]
extraVolumeslist[]
fullnameOverridestring""
image.argslist[]
image.commandlist[]
image.pullPolicystring"IfNotPresent"
image.repositorystring"nginx"
image.tagstring""
image.tty.enabledboolfalse
imagePullSecretslist[]
ingress.annotationsobject{}
ingress.classNamestring""
ingress.enabledboolfalse
ingress.hosts[0].hoststring"chart-example.local"
ingress.hosts[0].paths[0].pathstring"/"
ingress.hosts[0].paths[0].pathTypestring"ImplementationSpecific"
ingress.tlslist[]
initContainersobject{}
livenessProbe.enabledboolfalse
livenessProbe.httpGet.pathstring"/"
livenessProbe.httpGet.portstring"http"
livenessProbe.httpGet.schemestring"HTTP"
livenessProbe.initialDelaySecondsint60
livenessProbe.periodSecondsint10
livenessProbe.successThresholdint1
livenessProbe.timeoutSecondsint10
nameOverridestring""
nodeSelectorobject{}
pdb.enabledboolfalse
pdb.minAvailableint1
podAnnotationsobject{}
podSecurityContextobject{}
pvc.accessModesstring"ReadWriteOnce"
pvc.enabledboolfalse
pvc.mountPathstring"/tmp"
pvc.storagestring"20Gi"
pvc.storageClassNamestring"default"
readinessProbe.enabledboolfalse
readinessProbe.httpGet.pathstring"/"
readinessProbe.httpGet.portstring"http"
readinessProbe.httpGet.schemestring"HTTP"
readinessProbe.initialDelaySecondsint60
readinessProbe.periodSecondsint10
readinessProbe.successThresholdint1
readinessProbe.timeoutSecondsint10
replicaCountint1
resourcesobject{}
restartPolicystring"Always"
sealedSecret.annotationsobject{}
sealedSecret.enabledboolfalse
sealedSecret.encryptedDataobject{}
securityContextobject{}
service.portNamestring""
service.ports[0].namestring"http"
service.ports[0].portint80
service.typestring"ClusterIP"
serviceAccount.annotationsobject{}
serviceAccount.createbooltrue
serviceAccount.namestring""
sidecarslist[]
terminationGracePeriodSecondsint30
tolerationslist[]