Skip to content

Commit

Permalink
[Fixes #75] Task: readthedocs (#163)
Browse files Browse the repository at this point in the history
  • Loading branch information
mwallschlaeger authored Mar 8, 2024
1 parent 29b8c50 commit 8187a98
Show file tree
Hide file tree
Showing 7 changed files with 223 additions and 9 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ my-values.yaml
**/Chart.lock
charts/*/charts
.vscode
venv
.venv
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,8 @@ To get an overview of the available configuration check out the values [docs](ch

If you want to go straight for a production installation follow the [installation](#install) guide.

Furhter docs:
- [https-ingress](docs/https-ingress.md)
- [access-geonode-database-from-outside-of-kubernetes](docs/access-geonode-database-from-outside.md)
- [use-database-outside-of-this-helm-chart](docs/external-database.md)
- [configure-nginx-ingress-body-size-timeout](docs/nginx-ingress-class.md)
- [run-with-external-postgresql-database](docs/external-database.md)
- [custom-secret-handling](docs/provide-custom-secret.md)
- [how-to-configure-external-pycsw](docs/pycsw.md)
Furhter docs you can find on [readthedocs](https://geonode-k8s.readthedocs.io/en/latest/).

Install
-------

Expand Down
25 changes: 25 additions & 0 deletions docs/.readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"

# Build documentation in the docs/ directory with Sphinx
mkdocs:
configuration: mkdocs.yml

# We recommend specifying your dependencies to enable reproducible builds:
# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt

formats:
- pdf
- epub
112 changes: 112 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@

![Version: 1.0.10](https://img.shields.io/badge/Version-1.0.10-informational?style=flat-square)

# Helm Chart for Geonode

- [GeoWhat?](#Geonode)
- [Geonode-k8s](#geonode-k8s)
- [Install Guilde](#install)

**Homepage:** <https://github.com/zalf-rdm/geonode-k8s>

Geonode
-------

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/).

Geonode-k8s
-----------

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](charts/geonode/README.md). If you want to run the helm chart first on a minikube cluster check out the [minikube](docs/minikube-installation.md) guide. Also check the minikube-values.yaml for basic configuration.

If you want to go straight for a production installation follow the [installation](#install) guide.

Furhter docs you can find on [readthedocs](https://geonode-k8s.readthedocs.io/en/latest/).

Install
-------

## Prerequisites

* A Kubernetes cluster (or [minikube](docs/minikube-installation.md))
* [Helm](https://helm.sh/)

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<br /> chart version | GeoNode<br /> version(s) | geonode container image | geoserver container image |
|---------------------------|--------------------|-------------------------|---------------------------|
| [1.0.0](https://github.com/zalf-rdm/geonode-k8s/releases/tag/1.0.0) | [4.1.2](https://github.com/GeoNode/geonode/releases/tag/4.1.2) | [52north/geonode:4.1.2](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.1](https://github.com/zalf-rdm/geonode-k8s/releases/tag/1.0.1) | [4.1.2](https://github.com/GeoNode/geonode/releases/tag/4.1.2) | [52north/geonode:4.1.2](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.2](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.2) | [4.1.2](https://github.com/GeoNode/geonode/releases/tag/4.1.2) | [52north/geonode:4.1.2](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.3](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.3) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.4](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.4) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.5](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.5) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.6](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.6) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.7](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.7) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.8](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.8) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.9](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.9) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |
| [1.0.10](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.0.10) | [4.1.3](https://github.com/GeoNode/geonode/releases/tag/4.1.3) | [52north/geonode:4.1.3](https://hub.docker.com/r/52north/geonode/tags) | [geonode/geoserver:2.23.0](https://hub.docker.com/r/geonode/geoserver/tags) |

## Install chart dependencies

Update helm dependencies via:

```bash
helm repo add geonode https://zalf-rdm.github.io/geonode-k8s/
helm repo update
```

## Override desired values in your own override file
Define your own values.yaml to configure your geonode installation. Use the [docs](charts/geonode/README.md) to understand the parameters.

```bash
vi my-values.yaml
```

## Install chart
```bash
helm upgrade --cleanup-on-fail --install --namespace geonode --create-namespace --values my-values.yaml geonode charts/geonode
```

## Delete Installation
```bash
helm delete --namespace geonode geonode geonode
```

## Contribution

### Create an Issue

You found a bug :lady_beetle:?
You have an idea how to improve :bulb:?
Feel free to [create an issue](https://github.com/zalf-rdm/geonode-k8s/issues/new/choose)!


### Documentation

Ensure values.yaml documentation is up-to-date.
The [parameter documentation](charts/geonode/README.md) is generated via [`helm-docs`](https://github.com/norwoodj/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
```
1 change: 0 additions & 1 deletion docs/nginx-ingress-class.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ The annotations documented below gives you hints on nginx configuration options

If you run the nginx ingress controller on your cluster, you may ran into an issue where you are unable to upload larger files into your geonode instance.
To avoid this you can increase the `proxy-body-size` for the [nignx-ingress](../charts/geonode/templates/nginx/nginx-ingress.yaml) definition:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
Expand Down
66 changes: 66 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# pip-compile docs/requirements.in
#
click==8.1.3
# via mkdocs
ghp-import==2.1.0
# via mkdocs
griffe==0.22.0
# via mkdocstrings-python
importlib-metadata==4.12.0
# via mkdocs
jinja2==3.1.2
# via
# mkdocs
# mkdocstrings
markdown==3.3.7
# via
# markdown-include
# mkdocs
# mkdocs-autorefs
# mkdocstrings
# pymdown-extensions
markdown-include==0.6.0
# via -r docs/requirements.in
markupsafe==2.1.1
# via
# jinja2
# mkdocstrings
mergedeep==1.3.4
# via mkdocs
mkdocs==1.3.0
# via
# -r docs/requirements.in
# mkdocs-autorefs
# mkdocstrings
mkdocs-autorefs==0.4.1
# via mkdocstrings
mkdocstrings[python]==0.19.0
# via
# -r docs/requirements.in
# mkdocstrings-python
mkdocstrings-python==0.7.1
# via mkdocstrings
packaging==21.3
# via mkdocs
pymdown-extensions==9.5
# via mkdocstrings
pyparsing==3.0.9
# via packaging
python-dateutil==2.8.2
# via ghp-import
pyyaml==6.0
# via
# mkdocs
# pyyaml-env-tag
pyyaml-env-tag==0.1
# via mkdocs
six==1.16.0
# via python-dateutil
watchdog==2.1.9
# via mkdocs
zipp==3.8.0
# via importlib-metadata
16 changes: 16 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
site_name: GeoNode-k8s a Geonode Helm Chart docs
theme:
name: readthedocs
highlightjs: true
plugins:
- search
- mkdocstrings:
handlers:
# See: https://mkdocstrings.github.io/python/usage/
python:
options:
docstring_style: sphinx
markdown_extensions:
- markdown_include.include:
base_path: .
- admonition

0 comments on commit 8187a98

Please sign in to comment.