Skip to main content

Helmfile Management

Helmfile simplifies managing multiple Helm releases.

Install or Update

helmfile apply  # Unix/Linux
helmfile sync   # Windows

Uninstall All Releases

helmfile destroy

List Releases

helmfile list

Update Specific Release

helmfile -l name=release-name apply

Helm Management

Direct control over individual releases.

Add Loqate Repository

helm repo add loqate https://charts.loqate.com
helm repo update

Install Components

InstallManager:
helm install installmanager loqate/installmanager \
  -n loqate \
  --set licenseKey=your-key \
  --set imageCredentials.username=docker-user \
  --set imageCredentials.password=docker-pass
Memberlist:
helm install memberlist loqate/memberlist \
  -n loqate \
  --set imageCredentials.username=docker-user \
  --set imageCredentials.password=docker-pass
QueryCoordinator:
helm install querycoordinator loqate/querycoordinator \
  -n loqate \
  --set imageCredentials.username=docker-user \
  --set imageCredentials.password=docker-pass \
  --set app.memberlistService=memberlist.loqate.svc
Spatial-API:
helm install spatial-api loqate/spatial-api \
  -n loqate \
  --set imageCredentials.username=docker-user \
  --set imageCredentials.password=docker-pass \
  --set app.memberlistService=memberlist.loqate.svc \
  --set verify.dataset=row

Upgrade Release

helm upgrade release-name loqate/chart-name \
  -n loqate \
  --set key=value

Uninstall Release

helm uninstall release-name -n loqate

List Releases

helm list -n loqate

Testing Verify

Port Forward to QueryCoordinator

kubectl port-forward -n loqate svc/querycoordinator 8900:8900

Version Check

Unix/Linux:
curl http://localhost:8900/api/version
Windows:
Invoke-WebRequest -Method GET http://localhost:8900/api/version
Expected response:
{"version":"2.xx.x.xxxxx-xxxxxxx"}

Verify Request

Unix/Linux:
curl -X POST http://localhost:8900/verify \
  -H "Content-Type: application/json" \
  -d '{"input":[{"Address1":"The Foundation","Locality":"Chester","Country":"GB"}]}'
Windows:
Invoke-WebRequest http://localhost:8900/verify -Method POST `
  -ContentType "application/json" `
  -Body '{"input":[{"Address1":"The Foundation","Locality":"Chester","Country":"GB"}]}'
Successful response includes validated address with AVC and AQI scores.

Monitoring

Pod Status

kubectl get pods -n loqate
All pods should show 1/1 in the READY column (except InstallManager which shows 0/1 Completed).

Pod Logs

kubectl logs pod-name -n loqate
kubectl logs -f pod-name -n loqate  # Follow logs

Resource Usage

kubectl top pods -n loqate

Recent Events

kubectl get events -n loqate --sort-by='.lastTimestamp'

Scaling

Manual Scaling

kubectl scale deployment deployment-name --replicas=3 -n loqate

Horizontal Pod Autoscaler (HPA)

Configure in your values file:
autoscaling:
  enabled: true
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilizationPercentage: 80
Apply via Helm:
--set autoscaling.enabled=true \
--set autoscaling.minReplicas=2 \
--set autoscaling.maxReplicas=10

KEDA (Event-Driven Autoscaling)

See Configuration for KEDA setup.

Configuration Override

Single Value

--set key=value

Multiple Values

--set key1=value1 --set key2=value2

From Custom Values File

helm install release-name loqate/chart-name \
  -n loqate \
  -f custom-values.yaml

Complete Cleanup

Remove All Resources

Using Helmfile:
helmfile destroy
kubectl delete namespace loqate
Using Helm:
helm uninstall installmanager -n loqate
helm uninstall memberlist -n loqate
helm uninstall querycoordinator -n loqate
helm uninstall spatial-api -n loqate
# Repeat for any other releases

kubectl delete namespace loqate

Verify Cleanup

kubectl get all -n loqate
Should return: No resources found

Common Values

Key configuration options in values.yaml:
image:
  repository: loqate/component-name
  tag: latest
  pullPolicy: IfNotPresent

imageCredentials:
  username: ""
  password: ""

resources:
  requests:
    memory: "4Gi"
    cpu: "1"
  limits:
    memory: "8Gi"
    cpu: "2"

verify:
  dataset: "row"

storage:
  path: "/data"
  size: "250Gi"

Next Steps