Files
api7-demo/helm/api7ee
d.viti ef93f4a35f
All checks were successful
Build and Deploy / build-web (push) Successful in 36s
Build and Deploy / build-api (push) Successful in 38s
Add Helm chart for deploying web and API components
- Created complete Helm chart with deployments, services, and ingress
- Added support for both web frontend and API backend components
- Included autoscaling (HPA) for both components
- Added pod disruption budgets for high availability
- Configured security contexts and best practices
- Created helper templates and configuration management
- Added production and development value files
- Included comprehensive README with installation instructions
2025-10-03 01:51:17 +02:00
..

API7 Enterprise Edition Helm Chart

This Helm chart deploys the API7 Enterprise Edition demo application, consisting of a Web frontend and API backend service.

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.8.0+
  • PV provisioner support in the underlying infrastructure (optional)
  • Ingress controller (e.g., NGINX Ingress Controller)

Installation

Add the Helm repository (if published)

helm repo add api7ee https://charts.commandware.com
helm repo update

Install the chart

# Install with default values
helm install my-api7ee ./helm/api7ee

# Install in a specific namespace
helm install my-api7ee ./helm/api7ee --namespace api7ee --create-namespace

# Install with custom values file
helm install my-api7ee ./helm/api7ee -f custom-values.yaml

Configuration

Key Configuration Options

Parameter Description Default
web.enabled Enable Web component true
web.replicaCount Number of Web replicas 2
web.image.repository Web image repository api7ee/web
web.image.tag Web image tag main
web.service.port Web service port 8000
api.enabled Enable API component true
api.replicaCount Number of API replicas 3
api.image.repository API image repository api7ee/api
api.image.tag API image tag main
api.service.port API service port 8080
ingress.enabled Enable ingress true
ingress.hosts[0].host Ingress hostname demo.commandware.it

Custom Values Examples

Using a private registry:

global:
  imageRegistry: my-registry.example.com
  imagePullSecrets:
    - name: my-registry-secret

Enabling autoscaling:

web:
  autoscaling:
    enabled: true
    minReplicas: 2
    maxReplicas: 10
    targetCPUUtilizationPercentage: 70

Custom resource limits:

api:
  resources:
    limits:
      cpu: 2000m
      memory: 2Gi
    requests:
      cpu: 1000m
      memory: 1Gi

Upgrading

# Upgrade to a new version
helm upgrade my-api7ee ./helm/api7ee

# Upgrade with new values
helm upgrade my-api7ee ./helm/api7ee --set web.replicaCount=3

Uninstallation

# Uninstall the release
helm uninstall my-api7ee

# Uninstall from a specific namespace
helm uninstall my-api7ee --namespace api7ee

Monitoring

If metrics are enabled, the services expose Prometheus-compatible metrics:

metrics:
  enabled: true
  serviceMonitor:
    enabled: true
    interval: 30s

Troubleshooting

Check deployment status:

kubectl get deployments -l app.kubernetes.io/instance=my-api7ee

View logs:

# Web component logs
kubectl logs -l app.kubernetes.io/instance=my-api7ee,app.kubernetes.io/component=web

# API component logs
kubectl logs -l app.kubernetes.io/instance=my-api7ee,app.kubernetes.io/component=api

Check HPA status:

kubectl get hpa -l app.kubernetes.io/instance=my-api7ee

Security Considerations

  • Pod Security Context is configured to run as non-root user (UID 1000)
  • Security Context drops all capabilities and prevents privilege escalation
  • Read-only root filesystem is enabled
  • Network policies can be enabled to restrict traffic

Support

For issues and questions, please contact support@commandware.com or visit https://git.commandware.com/demos/api7-demo