Skip to content

Helm chart for Smart District Data Infrastructure enabled CKAN

License

Notifications You must be signed in to change notification settings

tum-gis/sddi-ckan-k8s

Repository files navigation

SDDI CKAN for Kubernetes

Helm chart for a SDDI enabled CKAN catalog

Report bug · Request feature

GitHub Workflow Status
DOI

This chart deploys a self contained CKAN data catalog with all of its dependencies. CKAN is extended to support the Smart District Data Infrastructure (SDDI).

💤 TL;DR

Deploy a basic SDDI-CKAN setup in a Kubernetes cluster with ingress-nginx and cert-manager pre-installed and a FQDN (e.g. www.my-sddi-ckan.de) pointing to your Ingress controller.

helm repo add sddi-ckan "https://tum-gis.github.io/sddi-ckan-k8s"
helm repo update
helm install ckan sddi-ckan/sddi-ckan \
  --atomic --wait -n ckan --create-namespace \
  --set 'global.ingress.domains={www.my-sddi-ckan.de}' \
  --set 'ckan.siteUrl=https://www.my-sddi-ckan.de' \
  --set '[email protected]'

After the Helm deployment has finished, your SDDI CKAN instance is available at the FQDN you specified. The default username and password are: admin: changeMe.

Instructions for local testing with e.g. minikube or Docker Desktop are available in the examples section.

Tip

To try out alpha/beta releases, add the --devel option to the helm install command.

📖 Table of content

📦 Application stack

The following applications can be deployed with the Helm chart in this repository.

  • CKAN
    • World leading open source data management system
  • PostgreSQL with PostGIS spatial extension
    • Open source database with powerful support for spatial data
  • Apache Solr
    • Open source search, navigation, and indexing engine
  • Redis
    • Open source in-memory database
  • CKAN Datapusher
    • A standalone web service that pushes data files from a CKAN site resources into its DataStore
  • NGINX Ingress Controller
    • Route traffic to the applications of the stack
    • Optional dependency, usually not required
  • cert-manager
    • Automatic SSL certificate issuing from e.g. Let's Encrypt
    • Optional dependency, usually not required

❓ Getting started

To get this up an running in seconds, check out the examples. You will find examples for:

❕ Requirements

  • Kubernetes cluster with Kubernetes >= v1.23.0

    • For testing 2 -3 nodes with 2-4 CPUs and 4-8 GiB RAM will be sufficient

    • Persistent storage using a suitable StorageClass, usually a default for managed Kubernetes clusters.

📃 Documentation

The chart is documented in the chart directory: charts/sddi-ckan

The documentation for internal dependencies is located in their folders too:

External dependencies are documented here:

☁️ Managed Kubernetes services provisioning

Examples on how to provision a managed Kubernetes service to deploy this Helm chart are available in the provisioning folder.

🚀 Basic usage

  1. Get a fully-qualified domain name (FQDN) and configure it to point to the public IP address of the LoadBalancer service of your Nginx ingress controller.

  2. Add and update Helm repo

    helm repo add sddi-ckan https://tum-gis.github.io/sddi-ckan-k8s
    helm repo update
  3. Create a configuration file according to your needs: my-values.yml

  4. Install the stack

    helm install ckan sddi-ckan/sddi-ckan \
      -n ckan --create-namespace \
      --atomic --wait \
      --values my-values.yml

🛠️ Contributing

Bug fixes, issue reports and contributions are greatly appreciated.

Repository setup

Build Chart documentation

The documentation of this chart is located in this repository in the charts/sddi-ckan folder and consists of Markdown files, that are generated using norwoodj/helm-docs. To keep the documentation in sync with the source files, it is recommended to use pre-commit to automatically update the docs with every commit.

To setup pre-commit to automatically update the documentation before each commit, follow the steps described in norwoodj/helm-docs: Usage and use the .pre-commit-config.yaml in this repo.

To update the Markdown documentation manually using Docker run this from the repo root.

docker run --rm -u $(id -u) --name helm-docs \
    --volume "$PWD/charts/sddi-ckan:/helm-docs" \
  jnorwood/helm-docs:latest

Contributors

Marija Knezevic and Bruno Willenborg at Technical University of Munich, Chair of Geoinformatics realized the current SDDI CKAN Docker images and Helm chart and updated the CKAN SDDI extensions (ckanext-grouphierarchy, ckanext-relation) initially implemented by Mandana Moshrefzadeh and Wolfgang Deigele.

The core concepts, documentation, and initial implementation for SDDI were realized at Technical University of Munich, Chair of Geoinformatics by:

Technical University of Munich, Chair of Geoinformatics

Github contributors to this repo

🎓 Research

An overview of the Smart District Data Infrastructure (SDDI) Project is available at the Chair of Geoinformatics, Technical University of Munich homepage in english and german.

Publications

The full list of SDDI related publications is available here. Some key publications are listed below:

  • Knezevic et al. (2022): Managing Urban Digital Twins with an Extended Catalog Service, Proceedings of the 7th International Smart Data and Smart Cities (SDSC) Conference 2022, ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences, PDF download / DOI.

  • Deigele, W. et al. (2021): Leitfaden – Geobasierter Digitaler Zwilling nach der SDDI-Methode, Ed.: Bayern Innovativ, ZD.B – Themenplattform Smart Cities and Regions.

  • Gackstetter, D. et al. (2021): Smart Rural Areas Data Infrastructure (SRADI) – an information logistics framework for digital agriculture based on open standards, 41. GIL-Jahrestagung 2021 - Fokus: Informations- und Kommunikationstechnologie in kritischen Zeiten, Gesellschaft für Informatik e.V. (GI), PDF download / DOI.

  • Kolbe, T. H. et al. (2020): The Data Integration Challenge in Smart City Projects, Chair of Geoinformatics, Technical University of Munich, PDF download / DOI.

  • Moshrefzadeh, M. et al. (2020): Towards a Distributed Digital Twin of the Agricultural Landscape, Journal of Digital Landscape Architecture (5), PDF download / DOI.

  • Moshrefzadeh, M. et al. (2017): Integrating and Managing the Information for Smart Sustainable Districts - The Smart District Data Infrastructure (SDDI), In: Kolbe, Thomas H.; Bill, Ralf; Donaubauer, Andreas (Hrsg.): Geoinformationssysteme 2017 – Beiträge zur 4. Münchner GI-Runde. . Wichmann Verlag, PDF download / DOI.

  • Moshrefzadeh, M. and T.H. Kolbe (2016): Smart Data Infrastructure for Smart and Sustainable Cities, DDSS 2016, PDF download / DOI.

Cite this repository

To cite this repository, please use the DOI provided by Zenodo. If you want to reference a specific release version of the software, click the badge and navigate to the desired version on the page.

DOI

🤝 Thanks

We would like to thank following institutions and persons for their contributions to the SDDI concepts, tools, documentations, education, and funding:

TwinBy

Bayerische Staatsministerium für Digitales

Bayern Innovativ GmbH

📝 License

This Helm chart is distributed under the Apache License 2.0. See LICENSE for more information.