This Helm chart is used for deploying and maintaining the Montandon eoAPI application and its supporting services in Kubernetes environments using ArgoCD.
The Montandon eoAPI is an Earth Observation API that provides access to geospatial data. This Helm chart deploys the eoAPI application along with its required infrastructure, including PostgreSQL clusters with PostGIS and pgSTAC for storing and querying geospatial data.
├── README.md # This file
├── Chart.yaml # Main Chart descriptor
├── values.yaml # Default values for the chart
├── app-bootstraps/ # ArgoCD application bootstrap manifests
│ └── montandon-eoapi-staging.yaml # Bootstrap manifest for staging environment
├── components/ # Component-specific values templates
│ ├── eoapi-values.yaml # Template values for eoAPI
│ └── eoapi-support-values.yaml # Template values for eoAPI support services
├── environments/ # Environment-specific values
│ ├── production/ # Production environment configuration
│ │ └── values.yaml # Production-specific values
│ ├── shared/ # Shared configuration across environments
│ └── staging/ # Staging environment configuration
│ └── values.yaml # Staging-specific values
└── templates/ # Helm chart templates
├── _helpers.tpl # Helper functions for templates
├── docker-config-secret.yaml # Template for Docker registry credentials
├── eoapi-app.yaml # Template for eoAPI application
├── eoapi-support-app.yaml # Template for eoAPI support services
├── project.yaml # Template for ArgoCD project
├── secrets.yaml # Template for application secrets
└── serviceaccount.yaml # Template for service account- Kubernetes cluster
- ArgoCD installed and configured
- Helm 3.x
- Access to the GitHub repository
To deploy the application to your Kubernetes cluster using ArgoCD, you can use one of the following methods:
For production environment:
argocd app create monty-eoapi \
--dest-namespace argocd \
--dest-server https://kubernetes.default.svc \
--repo https://github.com/IFRCGo/monty-eoapi.git \
--revision main \
--path . \
--values environments/production/values.yaml \
--sync-policy automatedFor staging environment:
argocd app create monty-eoapi-staging \
--dest-namespace argocd \
--dest-server https://kubernetes.default.svc \
--repo https://github.com/IFRCGo/monty-eoapi.git \
--revision main \
--path . \
--values environments/staging/values.yaml \
--sync-policy automatedApply one of the bootstrap manifests from the app-bootstraps directory:
kubectl apply -f app-bootstraps/montandon-eoapi-staging.yamlThe chart supports different environments through the values files in the environments directory:
environments/production/values.yaml: Production environment configurationenvironments/staging/values.yaml: Staging environment configuration
The main components of the application can be configured through the values files:
The eoAPI component is configured in components/eoapi-values.yaml and can be customized through the values in values.yaml or environment-specific values files:
components:
eoapi:
enabled: true
chart:
repository: https://devseed.com/eoapi-k8s/
chart: eoapi
version: 0.5.0
replicaCount: 3
ingress:
enabled: true
hostname: monty-eoapi
tls:
enabled: true
secretName: monty-eoapi-tls
postgrescluster:
bouncer-replicas: 1
data-node:
replicas: 1
resources:
requests:
storage: 100Gi
cpu: 1024m
memory: 3048MiThe eoAPI support component is configured in components/eoapi-support-values.yaml and can be enabled/disabled through the values:
components:
eoapi-support:
enabled: true # Set to false to disableOnce deployed, the eoAPI will be accessible through the configured ingress hostname. For example:
- Production: https://montandon-eoapi.ifrc.org
- Staging: https://montandon-eoapi-stage.ifrc.org
Contributions to this Helm chart are welcome. Please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the terms specified in the repository.
For questions or support, please contact the IFRC Go team.