GithubHelp home page GithubHelp logo

rdcarrera / helm-geoserver-cloud Goto Github PK

View Code? Open in Web Editor NEW

This project forked from camptocamp/helm-geoserver-cloud

0.0 1.0 0.0 305 KB

Helm chart to install geoserver-cloud

License: Other

Makefile 6.04% Smarty 93.96%

helm-geoserver-cloud's Introduction

Helm chart for geoserver-cloud

Version: 0.0.47 AppVersion: 1.0-RC28

A Helm chart for Geoserver

include this chart as dependency of your own chart:

just include the following section in your Chart.yaml:

dependencies:
  - name: geoservercloud
    repository: https://camptocamp.github.io/helm-geoserver-cloud
    version: <version-numer-here>

See the value file for configuration options.

Developing on geoserver-cloud code using this chart

To develop in this chart, we recommend that you use k3d if you want to use your machine. Please follow the following steps to ensure that you have all the requirements for development:

install kubectl

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"

or follow the steps of the official documentation

install helm (version 3!!!!)

follow the steps of the official documentation

install k3d

wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash

create a cluster on your machine

The following configuration will create a single-node "cluster" on your machine, the kubelet parameters ensure that it works also if you have a development PC with a disk almost full. It will also bind the port localhost:8085 of your machine with the ingress controller port 80, just adapt accordingly to your needs. You also need a local image registry to push your local images into the cluster.

# create a local registry
k3d registry create registry.localhost --port 5000

# create a local cluster and enable the registry
k3d cluster create k3d-cluster-1 --k3s-arg '--kubelet-arg=eviction-soft-grace-period=imagefs.available=60s,nodefs.available=60s@all'  --k3s-arg '--kubelet-arg=eviction-hard=imagefs.available<10Mi,nodefs.available<10Mi@all' --k3s-arg '--kubelet-arg=eviction-minimum-reclaim=imagefs.available=10Mi,nodefs.available=10Mi@all'  -p "8085:80@loadbalancer"

check that the configuration is available

This repository provides a default configuration thanks to a git submodule : if you don't have performed a recursive clone of the repository, don't forget to do a git submodule update before installing the chart !

start the chart

# update the dependencies the first time as well
helm dependency update
# then install the chart
helm install geoserver .

test that it is working.

If everything went well you should see something similar with kubectl:

~# kubectl get po
NAME                                   READY   STATUS    RESTARTS   AGE
geoserver-postgresql-0                 1/1     Running   0          6m17s
geoserver-rabbitmq-0                   1/1     Running   0          6m17s
geoserver-gateway-7d99c5c864-wpbt4     1/1     Running   0          6m17s
geoserver-webui-67dfc967d7-x8cx8       1/1     Running   0          6m17s
geoserver-rest-577ddb7854-pjhv2        1/1     Running   0          6m17s
geoserver-wms-7798c78cfd-ngwdm         1/1     Running   0          6m17s
geoserver-wcs-748c9fb64b-flxts         1/1     Running   0          6m17s
geoserver-wfs-65947f5d4d-88g26         1/1     Running   0          6m17s

and you should be able to access the webui on http://localhost:8085/geoserver-cloud/web/

use a local docker image and import it into the cluster

  1. build your image, tag and name it:
docker build -t k3d-registry.localhost:5000/geoserver-cloud-webui:test .

And push it to the localhost registry

docker push k3d-registry.localhost:5000/geoserver-cloud-webui:test

and then upgrade (or start) the chart with the following argument:

helm upgrade --set geoserver.webui.image.repository=k3d-registry.localhost:5000/geoserver-cloud-webui --set geoserver.webui.image.tag=test geoserver .

NB: this should not be the case with modern OS, but you might need to add the following to your /etc/hosts configuration:

127.0.0.1 k3d-registry.localhost

Requirements

Repository Name Version
https://charts.bitnami.com/bitnami postgresql 10.13.8
https://charts.bitnami.com/bitnami rabbitmq 8.0.1

Values

Key Type Default Description
geoserver.config.affinity object {}
geoserver.config.env list []
geoserver.config.image.repository string "geoservercloud/geoserver-cloud-config"
geoserver.config.image.tag string ""
geoserver.config.nodeSelector object {}
geoserver.config.podAnnotations object {}
geoserver.config.podSecurityContext.runAsUser int 630
geoserver.config.replicaCount int 1
geoserver.config.resources.limits.cpu float 2
geoserver.config.resources.limits.memory string "512Mi"
geoserver.config.resources.requests.cpu float 0.1
geoserver.config.resources.requests.memory string "128Mi"
geoserver.config.securityContext object {}
geoserver.config.service.port int 8080
geoserver.config.service.type string "ClusterIP"
geoserver.config.tolerations object {}
geoserver.database.dropOnDelete bool false
geoserver.database.extensions[0] string "pg_stat_statements"
geoserver.database.secretConfig string "jdbcconfig"
geoserver.discovery.affinity object {}
geoserver.discovery.env list []
geoserver.discovery.image.repository string "geoservercloud/geoserver-cloud-discovery"
geoserver.discovery.image.tag string ""
geoserver.discovery.nodeSelector object {}
geoserver.discovery.podAnnotations object {}
geoserver.discovery.podSecurityContext.runAsUser int 630
geoserver.discovery.replicaCount int 1
geoserver.discovery.resources.limits.cpu float 2
geoserver.discovery.resources.limits.memory string "512Mi"
geoserver.discovery.resources.requests.cpu float 0.1
geoserver.discovery.resources.requests.memory string "128Mi"
geoserver.discovery.securityContext object {}
geoserver.discovery.service.port int 8761
geoserver.discovery.service.type string "ClusterIP"
geoserver.discovery.tolerations object {}
geoserver.envVariables object {}
geoserver.gateway.affinity object {}
geoserver.gateway.env list []
geoserver.gateway.image.repository string "geoservercloud/geoserver-cloud-gateway"
geoserver.gateway.image.tag string ""
geoserver.gateway.nodeSelector object {}
geoserver.gateway.podAnnotations object {}
geoserver.gateway.podSecurityContext.runAsUser int 630
geoserver.gateway.replicaCount int 1
geoserver.gateway.resources.limits.cpu float 2
geoserver.gateway.resources.limits.memory string "512Mi"
geoserver.gateway.resources.requests.cpu float 0.1
geoserver.gateway.resources.requests.memory string "128Mi"
geoserver.gateway.securityContext object {}
geoserver.gateway.service.port int 8080
geoserver.gateway.service.type string "ClusterIP"
geoserver.gateway.tolerations object {}
geoserver.ingress.baseUrl string "/geoserver-cloud/"
geoserver.ingress.deploy bool true
geoserver.jdbc.external bool false
geoserver.jdbc.postgresqlDatabase.secretKey string ""
geoserver.jdbc.postgresqlDatabase.secretName string ""
geoserver.jdbc.postgresqlDatabase.value string ""
geoserver.jdbc.postgresqlHostName.secretKey string ""
geoserver.jdbc.postgresqlHostName.secretName string ""
geoserver.jdbc.postgresqlHostName.value string ""
geoserver.jdbc.postgresqlPassword.secretKey string ""
geoserver.jdbc.postgresqlPassword.secretName string ""
geoserver.jdbc.postgresqlPassword.value string ""
geoserver.jdbc.postgresqlPort.secretKey string ""
geoserver.jdbc.postgresqlPort.secretName string ""
geoserver.jdbc.postgresqlPort.value string ""
geoserver.jdbc.postgresqlUsername.secretKey string ""
geoserver.jdbc.postgresqlUsername.secretName string ""
geoserver.jdbc.postgresqlUsername.value string ""
geoserver.name string "geoserver"
geoserver.rabbitmq.port int 5672
geoserver.serviceAccount.annotations object {}
geoserver.serviceAccount.create bool true
geoserver.serviceAccount.name string ""
geoserver.services.rest.affinity object {}
geoserver.services.rest.env list []
geoserver.services.rest.image.repository string "geoservercloud/geoserver-cloud-rest"
geoserver.services.rest.image.tag string ""
geoserver.services.rest.nodeSelector object {}
geoserver.services.rest.podAnnotations object {}
geoserver.services.rest.podSecurityContext.runAsUser int 630
geoserver.services.rest.replicaCount int 1
geoserver.services.rest.resources.limits.cpu float 2
geoserver.services.rest.resources.limits.memory string "2Gi"
geoserver.services.rest.resources.requests.cpu float 0.1
geoserver.services.rest.resources.requests.memory string "512Mi"
geoserver.services.rest.securityContext object {}
geoserver.services.rest.service.port int 8080
geoserver.services.rest.service.type string "ClusterIP"
geoserver.services.rest.tolerations object {}
geoserver.services.wcs.affinity object {}
geoserver.services.wcs.env list []
geoserver.services.wcs.image.repository string "geoservercloud/geoserver-cloud-wcs"
geoserver.services.wcs.image.tag string ""
geoserver.services.wcs.nodeSelector object {}
geoserver.services.wcs.podAnnotations object {}
geoserver.services.wcs.podSecurityContext.runAsUser int 630
geoserver.services.wcs.replicaCount int 1
geoserver.services.wcs.resources.limits.cpu float 4
geoserver.services.wcs.resources.limits.memory string "4Gi"
geoserver.services.wcs.resources.requests.cpu float 0.1
geoserver.services.wcs.resources.requests.memory string "512Mi"
geoserver.services.wcs.securityContext object {}
geoserver.services.wcs.service.port int 8080
geoserver.services.wcs.service.type string "ClusterIP"
geoserver.services.wcs.tolerations object {}
geoserver.services.webui.affinity object {}
geoserver.services.webui.env list []
geoserver.services.webui.image.repository string "geoservercloud/geoserver-cloud-webui"
geoserver.services.webui.image.tag string ""
geoserver.services.webui.nodeSelector object {}
geoserver.services.webui.podAnnotations object {}
geoserver.services.webui.podSecurityContext.runAsUser int 630
geoserver.services.webui.replicaCount int 1
geoserver.services.webui.resources.limits.cpu float 2
geoserver.services.webui.resources.limits.memory string "512Mi"
geoserver.services.webui.resources.requests.cpu float 0.1
geoserver.services.webui.resources.requests.memory string "128Mi"
geoserver.services.webui.securityContext object {}
geoserver.services.webui.service.port int 8080
geoserver.services.webui.service.type string "ClusterIP"
geoserver.services.webui.tolerations object {}
geoserver.services.wfs.affinity object {}
geoserver.services.wfs.env list []
geoserver.services.wfs.image.repository string "geoservercloud/geoserver-cloud-wfs"
geoserver.services.wfs.image.tag string ""
geoserver.services.wfs.nodeSelector object {}
geoserver.services.wfs.podAnnotations object {}
geoserver.services.wfs.podSecurityContext.runAsUser int 630
geoserver.services.wfs.replicaCount int 1
geoserver.services.wfs.resources.limits.cpu float 4
geoserver.services.wfs.resources.limits.memory string "4Gi"
geoserver.services.wfs.resources.requests.cpu float 0.1
geoserver.services.wfs.resources.requests.memory string "512Mi"
geoserver.services.wfs.securityContext object {}
geoserver.services.wfs.service.port int 8080
geoserver.services.wfs.service.type string "ClusterIP"
geoserver.services.wfs.tolerations object {}
geoserver.services.wms.affinity object {}
geoserver.services.wms.env list []
geoserver.services.wms.image.repository string "geoservercloud/geoserver-cloud-wms"
geoserver.services.wms.image.tag string ""
geoserver.services.wms.nodeSelector object {}
geoserver.services.wms.podAnnotations object {}
geoserver.services.wms.podSecurityContext.runAsUser int 630
geoserver.services.wms.replicaCount int 1
geoserver.services.wms.resources.limits.cpu float 4
geoserver.services.wms.resources.limits.memory string "4Gi"
geoserver.services.wms.resources.requests.cpu float 0.1
geoserver.services.wms.resources.requests.memory string "512Mi"
geoserver.services.wms.securityContext object {}
geoserver.services.wms.service.port int 8080
geoserver.services.wms.service.type string "ClusterIP"
geoserver.services.wms.tolerations object {}
geoserver.volumeMounts list []
global.annotations object {}
global.app_environment_name string "master"
global.base_environment_name string "dev"
global.cluster_environment string "dev"
global.cors.enabled bool true
global.custom_pod_labels object {}
global.deployed_by string "helm"
global.image.pullPolicy string "IfNotPresent"
global.image.registry string "docker.io"
global.revision string "HEAD"
postgresql.enabled bool true
postgresql.fromSecret.enabled bool false
postgresql.persistence.enabled bool false
postgresql.postgresqlDatabase string "config"
postgresql.postgresqlPassword string "password"
postgresql.postgresqlUsername string "username"
postgresql.servicePort string "5432"
postgresql.tls.autoGenerated bool true
postgresql.tls.enabled bool true
postgresql.volumePermissions.enabled bool true
rabbitmq.auth.username string "geoserver"
rabbitmq.image.registry string "docker.io"
rabbitmq.image.repository string "bitnami/rabbitmq"
rabbitmq.image.tag string "3.8.9-debian-10-r37"
rabbitmq.persistence.enabled bool false
rabbitmq.resources.limits.cpu int 2
rabbitmq.resources.limits.memory string "2Gi"
rabbitmq.resources.requests.cpu float 0.1
rabbitmq.resources.requests.memory string "512Mi"

Autogenerated from chart metadata using helm-docs v1.7.0

helm-geoserver-cloud's People

Contributors

danduk82 avatar dependabot[bot] avatar jemacchi avatar cryptobioz avatar vuilleumierc avatar alexgacon avatar bsteinemann avatar groldan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.