Homepage: https://github.com/zalf-rdm/geonode-k8s
Geonode is a geospatial content management system, a platform for the management and publication of geospatial data. It brings together mature and stable open-source software projects under a consistent and easy-to-use interface allowing non-specialized users to share data and create interactive maps.
You can find the Sourcecode and more information about geonode under:
- Homepage: https://geonode.org/
- Github: https://github.com/GeoNode/geonode
- Docs: https://docs.geonode.org
Due to growing needs for high availability and scalability this repository aims at running Geonode with all required services in a cloud based manner. To due so we use Kubernetes (https://kubernetes.io/), a cloud management software, which runs on public and private clouds. As the Kubernetes echosystem can be confusing for people getting new to this field, there are packages for most services which are able to run on top of kubernetes. This packages are managed via helm (https://helm.sh/).
This repository provides a helm chart for geonode including additional services as:
- geoserver: source server for sharing geospatial data (https://geoserver.org/)
- rabbitmq: message broker (scalable)
- postgresql database: using zalando postgres-operator for distributed database for geonode and postgis db for geoserver (https://github.com/zalando/postgres-operator) (scalable)
- memcached (optional): as django cache (scalable)
- nginx: webserver to deliver static content (scalable)
- pycsw: CSW interface (scalable) This helm chart provides the possibility to run most of the services redundant to increase performance on the one hand and increase fail safe on the other hand.
To get an overview of the available configuration check out the values docs. If you want to run the helm chart first on a minikube cluster check out the minikube guide. Also check the minikube-values.yaml for basic configuration.
If you want to go straight for a production installation follow the installation guide.
Furhter docs:
- https-ingress
- access-geonode-database-from-outside-of-kubernetes
- use-database-outside-of-this-helm-chart
- configure-nginx-ingress-body-size-timeout
- run-with-external-postgresql-database
- custom-secret-handling
- how-to-configure-external-pycsw Install
The chart will automatically install required dependencies, i.e. a RabbitMQ broker and a Postgres database with postgis
extensions installed, and link them up.
GeoNode-k8s chart version |
GeoNode version(s) |
geonode container image | geoserver container image |
---|---|---|---|
1.0.0 | 4.1.2 | 52north/geonode:4.1.2 | geonode/geoserver:2.23.0 |
1.0.1 | 4.1.2 | 52north/geonode:4.1.2 | geonode/geoserver:2.23.0 |
1.0.2 | 4.1.2 | 52north/geonode:4.1.2 | geonode/geoserver:2.23.0 |
1.0.3 | 4.1.3 | 52north/geonode:4.1.3 | geonode/geoserver:2.23.0 |
1.0.4 | 4.1.3 | 52north/geonode:4.1.3 | geonode/geoserver:2.23.0 |
Update helm dependencies via:
helm repo add geonode https://zalf-rdm.github.io/geonode-k8s/
helm repo update
Define your own values.yaml to configure your geonode installation. Use the docs to understand the parameters.
vi my-values.yaml
helm upgrade --cleanup-on-fail --install --namespace geonode --create-namespace --values my-values.yaml geonode charts/geonode
helm delete --namespace geonode geonode charts/geonode
You found a bug 🐞? You have an idea how to improve 💡? Feel free to create an issue!
Ensure values.yaml documentation is up-to-date.
The parameter documentation is generated via helm-docs
.
There is a pre-commit hook configuration so please ensure you install it into your local working copy via
pre-commit install
pre-commit install-hooks