Skip to content

nds-cprm/pygeoapi-helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pygeoapi Helm Chart

This Helm chart deploys a pygeoapi instance, a server that publishes geospatial data using Open Geospatial Consortium (OGC) standards and the OGC API Features. This chart is designed to be flexible and easy to configure, allowing you to customize the deployment to fit your needs. 🚀

Local Installation

To install this chart locally, you'll need a Kubernetes cluster running on your machine, such as kind, minikube, CRC/OpenShift Local, or Docker Desktop with Kubernetes enabled. Once your local cluster is up and running, you can install the chart directly from your local file system.

First, navigate to the chart's directory:

cd path/to/your/pygeoapi-helm-chart

Next, use the helm install command, specifying the release name and the local chart path (.) :

helm install [YOUR_RELEASE_NAME] .

To customize the installation, you can create a custom values.yaml file and pass it during installation:

helm install [YOUR_RELEASE_NAME] . -f my-custom-values.yaml
  • In deploys directory, there's an example of a customized values for a CRC/OpenShift Local cluster.

This will deploy the pygeoapi application to your local cluster, allowing you to test configurations and verify functionality before pushing it to a production environment.

Configuration Parameters

This chart is configured via the values.yaml file. Below is a detailed description of each available parameter.

Application Image

Parameter Description Default Value
replicaCount The number of pygeoapi replicas. Increase for higher availability and processing capacity. 1
image.repository The Docker image repository for pygeoapi to be used. docker.io/ndscprm/pygeoapi
image.pullPolicy The image pull policy. IfNotPresent prevents downloading if the image already exists locally. IfNotPresent
image.tag The specific Docker image tag for the pygeoapi version. "0.21.0-rootless"
imagePullSecrets A list of authentication secrets for pulling images from private repositories. []
nameOverride Overrides the chart name when creating Kubernetes resources. ""
fullnameOverride Overrides the full chart name when creating Kubernetes resources. ""
  • This helm chart uses a modified pygeoapi image, because of OpenShift's security requirements. To use official pygeoapi image (v0.21.0), it's required to run the container as root.

Service Account

Parameter Description Default Value
serviceAccount.create If true, a Service Account is created for the application. true
serviceAccount.automount If true, automatically mounts the Service Account's credentials. true
serviceAccount.annotations Annotations to be added to the Service Account. {}
serviceAccount.name The name of the Service Account to use. If empty, a name is generated. ""

Pod Security and Context

Parameter Description Default Value
podAnnotations Annotations to be added to the Pod. {}
podLabels Labels to be added to the Pod. {}
podSecurityContext The security context for the Pod. For example, fsGroup to define the filesystem group ID. {}
securityContext The security context for the container. For example, runAsNonRoot to ensure the process does not run as root. {}

Service and Exposure

Parameter Description Default Value
service.type The Kubernetes service type to expose pygeoapi. ClusterIP
service.port The service port where pygeoapi will be exposed. 8080

Ingress

Parameter Description Default Value
ingress.enabled If true, an Ingress is created to expose pygeoapi externally. false
ingress.className The name of the Ingress class to be used. ""
ingress.annotations Additional annotations for the Ingress. Useful for integrations like cert-manager. {}
ingress.hosts A list of hosts and paths to route traffic to pygeoapi. []
ingress.tls A list of TLS secrets and associated hosts to encrypt traffic. []

pygeoapi Settings

Parameter Description Default Value
settings.config.enabled If true, mounts the pygeoapi configuration file (local.config.yml). true
settings.config.name The name of the ConfigMap or Secret containing the configuration. pygeoapi-config
settings.config.isEncrypted If true, reads the configuration from a Secret; otherwise, from a ConfigMap. false
settings.config.mountPath The full path where the configuration file will be mounted inside the container. /pygeoapi/local.config.yml
settings.config.readOnly If true, mounts the file as read-only. true
settings.openapi The path to the pygeoapi OpenAPI file. /tmp/pygeoapi-openapi.yml
settings.serverAdmin Enables or disables the server's administration interface. false
settings.hotReload Enables hot-reloading of the server. false
settings.wsgi.workers The number of workers for the WSGI server (Gunicorn). 3
settings.wsgi.workerTimeout The worker timeout (in milliseconds). 6000
settings.wsgi.workerClass The worker class to be used by the WSGI server. gevent

Resources and Scaling

Parameter Description Default Value
resources Definition of resource limits and requests (CPU and memory) for the container. {}
autoscaling.enabled If true, enables the Horizontal Pod Autoscaler (HPA) to manage the number of replicas. false
autoscaling.minReplicas The minimum number of replicas when autoscaling is enabled. 1
autoscaling.maxReplicas The maximum number of replicas when autoscaling is enabled. 5
autoscaling.targetCPUUtilizationPercentage The CPU utilization percentage the HPA will try to maintain. 80
autoscaling.targetMemoryUtilizationPercentage The memory utilization percentage the HPA will try to maintain. 80

Additional Volumes

Parameter Description Default Value
volumes A list of additional volumes to be added to the Deployment definition. []
volumeMounts A list of additional volume mounts for the containers. []

Scheduling Configurations

Parameter Description Default Value
nodeSelector Node labels for selecting which nodes the Pod will be scheduled on. {}
tolerations Tolerations to schedule the Pod on nodes with taints. []
affinity Affinity and anti-affinity rules to control Pod scheduling. {}

For a complete list of all parameters and their default values, please refer to the values.yaml file in the chart repository.

About

Helm chart for PyGeoAPI

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages