diff --git a/README.md b/README.md index ce6fc86..2475817 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -![Version: 1.2.1](https://img.shields.io/badge/Version-1.2.1-informational?style=flat-square) +![Version: 1.2.2](https://img.shields.io/badge/Version-1.2.2-informational?style=flat-square) # Helm Chart for Geonode diff --git a/charts/geonode/Chart.yaml b/charts/geonode/Chart.yaml index 5c0643c..80d3efa 100644 --- a/charts/geonode/Chart.yaml +++ b/charts/geonode/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: geonode-k8s -version: 1.2.1 +version: 1.2.2 description: "Helm Chart for Geonode. Supported versions: Geonode: 4.3.0, Geoserver: 2.24.3-v1, pyCSW: 2.6.1" keywords: - geonode diff --git a/charts/geonode/README.md b/charts/geonode/README.md index 578099e..43acc04 100644 --- a/charts/geonode/README.md +++ b/charts/geonode/README.md @@ -1,6 +1,6 @@ # geonode-k8s -![Version: 1.2.1](https://img.shields.io/badge/Version-1.2.1-informational?style=flat-square) +![Version: 1.2.2](https://img.shields.io/badge/Version-1.2.2-informational?style=flat-square) Helm Chart for Geonode. Supported versions: Geonode: 4.3.0, Geoserver: 2.24.3-v1, pyCSW: 2.6.1 @@ -53,6 +53,7 @@ Helm Chart for Geonode. Supported versions: Geonode: 4.3.0, Geoserver: 2.24.3-v1 | geonode.general.externalScheme | string | `"http"` | external ingress schema. If set to 'https', make sure to configure TLS either by configuring tls certificate or using cert-manager. Available options: (http|https) | | geonode.general.force_reinit | bool | `true` | set force reinit true so that changing passwords etc. in Values.yaml will take effect after restarting the pod this on the other hand will increase pod initializing time, only change if you know what you are doing | | geonode.general.freetext_keywords_readonly | bool | `false` | FREETEXT_KEYWORDS_READONLY Make Free-Text Keywords writable from users. Or read-only when set to False. | +| geonode.general.geonode_project | string | `"geonode"` | the name of the geonode project used (keep geonode for base image) | | geonode.general.max_document_size | int | `10` | max upload document size in MB | | geonode.general.ogc_request_backoff_factor | float | `0.3` | OGC_REQUEST_BACKOFF_FACTOR | | geonode.general.ogc_request_max_retries | int | `1` | OGC_REQUEST_MAX_RETRIES | @@ -146,6 +147,8 @@ Helm Chart for Geonode. Supported versions: Geonode: 4.3.0, Geoserver: 2.24.3-v1 | geonode.version | string | `"4.3.0"` | geonode version, used for some distinguassion between version of GeoNode | | geonodeFixtures | map of fixture files | `{"somefixture.json":"[\n {\n \"pk\": 0,\n \"model\": \"myapp.sample\"\n \"description\": \"nice little content\"\n }\n]\n"}` | Fixture files which shall be made available under /usr/src/geonode/geonode/fixtures (refer to https://docs.djangoproject.com/en/4.2/howto/initial-data/) | | geoserver.container_name | string | `"geoserver"` | geoserver container name | +| geoserver.extraConfigMap | string | `""` | additional elements to include in the config map provided to GeoServer | +| geoserver.extraPodEnv | string | `""` | Define this for extra GeoServer environment variables Format: extraPodEnv: | - name: KEY_1 value: "VALUE_1" - name: KEY_2 value: "VALUE_2" | | geoserver.force_reinit | bool | `true` | set force reinit true so that changing passwords etc. in Values.yaml will take effect after restarting the pod this on the other hand will increase pod initializing time, only change if you know what you are doing | | geoserver.image.name | string | `"geonode/geoserver"` | geoserver image docker image (default in zalf namespace because geonode one was not up to date) | | geoserver.image.tag | string | `"2.24.3-v1"` | geoserver docker image tag | @@ -160,6 +163,7 @@ Helm Chart for Geonode. Supported versions: Geonode: 4.3.0, Geoserver: 2.24.3-v1 | geoserver.secret.admin_password | string | `"geoserver"` | geoserver admin password, respect admin_factory_password, if you gonna change the password from not factory password | | geoserver.secret.admin_username | string | `"admin"` | geoserver admin username | | geoserver.secret.existingSecretName | string | `""` | name of an existing Secret to use. Set, if you want to separately maintain the Secret. | +| geoserver.secret.extraSecrets | string | `""` | additional elements to include in the secret provided to GeoServer, if not using an existing secret | | geoserver_data.container_name | string | `"geoserver-data-dir"` | | | geoserver_data.image.name | string | `"geonode/geoserver_data"` | geoserver image docker image (default in zalf namespace because geonode one was not up to date) | | geoserver_data.image.tag | string | `"2.23.3-v1"` | geoserver docker image tag | @@ -236,4 +240,4 @@ Helm Chart for Geonode. Supported versions: Geonode: 4.3.0, Geoserver: 2.24.3-v1 | rabbitmq.requests.memory | string | `"1Gi"` | requested memory as in resource.requests.memory (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) | ---------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) +Autogenerated from chart metadata using [helm-docs v1.13.1](https://github.com/norwoodj/helm-docs/releases/v1.13.1) diff --git a/charts/geonode/templates/_helpers.tpl b/charts/geonode/templates/_helpers.tpl index 0a7c316..f01961d 100644 --- a/charts/geonode/templates/_helpers.tpl +++ b/charts/geonode/templates/_helpers.tpl @@ -138,3 +138,27 @@ amqp://{{ .Values.rabbitmq.auth.username }}:{{ .Values.rabbitmq.auth.password }} {{- define "boolean2str" -}} {{ . | ternary "True" "False" }} {{- end -}} + +{{- define "settings_module" -}} +{{- if (not .Values.geonode.general.settings_module) -}} +{{ .Values.geonode.general.geonode_project }}.settings +{{- else -}} +{{ .Values.geonode.general.settings_module }} +{{- end -}} +{{- end -}} + +{{- define "geonode_root_path" -}} +/usr/src/{{ .Values.geonode.general.geonode_project }} +{{- end -}} + +{{- define "geonode_path" -}} +/usr/src/{{ .Values.geonode.general.geonode_project }}/{{ .Values.geonode.general.geonode_project }} +{{- end -}} + +{{- define "initial_data_path" -}} +{{- if (eq .Values.geonode.general.geonode_project "geonode") -}} +geonode/base/fixtures/initial_data.json +{{- else -}} +initial_data.json +{{- end -}} +{{- end -}} diff --git a/charts/geonode/templates/geonode/geonode-deploy.yaml b/charts/geonode/templates/geonode/geonode-deploy.yaml index 59bbe23..6eebc67 100644 --- a/charts/geonode/templates/geonode/geonode-deploy.yaml +++ b/charts/geonode/templates/geonode/geonode-deploy.yaml @@ -71,17 +71,18 @@ spec: cd /usr/src/geonode/ {{ end }} + cd {{ include "geonode_root_path" .}}/ # Add config overrides - cat /usr/src/geonode/geonode/geonode-k8s-settings.py >> /usr/src/geonode/geonode/settings.py - cat /usr/src/geonode/geonode/geonode-k8s-settings-additions.py >> /usr/src/geonode/geonode/settings.py + cat /usr/src/geonode/geonode/geonode-k8s-settings.py >> {{ include "geonode_path" .}}/settings.py + cat /usr/src/geonode/geonode/geonode-k8s-settings-additions.py >> {{ include "geonode_path" .}}/settings.py # Setup - touch /usr/src/geonode/invoke.log - dockerize -stdout /usr/src/geonode/invoke.log /usr/src/geonode/entrypoint.sh + touch {{ include "geonode_root_path" .}}/invoke.log + dockerize -stdout {{ include "geonode_root_path" .}}/invoke.log {{ include "geonode_root_path" .}}/entrypoint.sh # Run web server touch /var/log/geonode.log - dockerize -stdout /var/log/geonode.log /usr/local/bin/uwsgi --ini /usr/src/geonode/uwsgi.ini + dockerize -stdout /var/log/geonode.log /usr/local/bin/uwsgi --ini {{ include "geonode_root_path" .}}/uwsgi.ini ports: - name: http @@ -133,14 +134,14 @@ spec: - name: cache-volume mountPath: /tmp - name: tasks-py - mountPath: "/usr/src/geonode/tasks.py" + mountPath: "{{ include "geonode_root_path" .}}/tasks.py" subPath: tasks.py readOnly: true - name: entrypoint-sh - mountPath: "/usr/src/geonode/entrypoint.sh" + mountPath: "{{ include "geonode_root_path" .}}/entrypoint.sh" subPath: entrypoint.sh - name: uwsgi-ini - mountPath: "/usr/src/geonode/uwsgi.ini" + mountPath: "{{ include "geonode_root_path" .}}/uwsgi.ini" subPath: uwsgi.ini readOnly: true - name: geonode-k8s-settings-py @@ -152,7 +153,7 @@ spec: readOnly: true {{ if .Values.geonodeFixtures }} - name: geonode-fixtures - mountPath: "/usr/src/geonode/geonode/fixtures" + mountPath: "{{ include "geonode_path" .}}/fixtures" readOnly: true {{ end }} @@ -199,16 +200,18 @@ spec: cd /usr/src/geonode/ {{ end }} + cd {{ include "geonode_root_path" .}}/ + {{ if .Values.geonode.sentry.enabled }} pip install sentry-sdk {{ end }} # Add config overrides - cat /usr/src/geonode/geonode/geonode-k8s-settings.py >> /usr/src/geonode/geonode/settings.py - cat /usr/src/geonode/geonode/geonode-k8s-settings-additions.py >> /usr/src/geonode/geonode/settings.py + cat /usr/src/geonode/geonode/geonode-k8s-settings.py >> {{ include "geonode_path" .}}/settings.py + cat /usr/src/geonode/geonode/geonode-k8s-settings-additions.py >> {{ include "geonode_path" .}}/settings.py # Setup touch /var/log/celery.log - dockerize -stdout /var/log/celery.log /usr/src/geonode/entrypoint.sh celery-cmd + dockerize -stdout /var/log/celery.log {{ include "geonode_root_path" .}}/entrypoint.sh celery-cmd envFrom: - configMapRef: @@ -260,10 +263,10 @@ spec: - name: cache-volume mountPath: /tmp - name: entrypoint-sh - mountPath: "/usr/src/geonode/entrypoint.sh" + mountPath: "{{ include "geonode_root_path" .}}/entrypoint.sh" subPath: entrypoint.sh - name: tasks-py - mountPath: "/usr/src/geonode/tasks.py" + mountPath: "{{ include "geonode_root_path" .}}/tasks.py" subPath: tasks.py readOnly: true - name: geonode-k8s-settings-py @@ -275,7 +278,7 @@ spec: readOnly: true {{ if .Values.geonodeFixtures }} - name: geonode-fixtures - mountPath: "/usr/src/geonode/geonode/fixtures" + mountPath: "{{ include "geonode_path" .}}/fixtures" readOnly: true {{ end }} diff --git a/charts/geonode/templates/geonode/geonode-entrypoint-sh-conf.yaml b/charts/geonode/templates/geonode/geonode-entrypoint-sh-conf.yaml index c54575d..94b47ec 100644 --- a/charts/geonode/templates/geonode/geonode-entrypoint-sh-conf.yaml +++ b/charts/geonode/templates/geonode/geonode-entrypoint-sh-conf.yaml @@ -15,7 +15,7 @@ data: then /usr/local/bin/invoke $@ else - /usr/local/bin/invoke $@ > /usr/src/geonode/invoke.log 2>&1 + /usr/local/bin/invoke $@ > {{ include "geonode_root_path" . }}/invoke.log 2>&1 fi echo "$@ tasks done" } diff --git a/charts/geonode/templates/geonode/geonode-env.yaml b/charts/geonode/templates/geonode/geonode-env.yaml index b88846f..c9d19fc 100644 --- a/charts/geonode/templates/geonode/geonode-env.yaml +++ b/charts/geonode/templates/geonode/geonode-env.yaml @@ -44,7 +44,7 @@ data: # General settings FREETEXT_KEYWORDS_READONLY: {{ include "boolean2str" .Values.geonode.general.freetext_keywords_readonly | quote }} - FIXTURE_DIRS: "[ '/usr/src/geonode/geonode/fixtures' ]" + FIXTURE_DIRS: "[ '{{ include "geonode_path" .}}/fixtures' ]" # PUBLISHING RESOURCE_PUBLISHING: {{ include "boolean2str" .Values.geonode.general.publishing.resource_publishing_by_staff | quote }} ADMIN_MODERATE_UPLOADS: {{ include "boolean2str" .Values.geonode.general.publishing.admin_moderate_uploads | quote }} @@ -121,7 +121,7 @@ data: CATALOGUE_ENGINE: geonode.catalogue.backends.pycsw_local {{ end}} - DJANGO_SETTINGS_MODULE: {{ .Values.geonode.general.settings_module }} + DJANGO_SETTINGS_MODULE: {{ include "settings_module" . }} DEFAULT_BACKEND_DATASTORE: datastore DEFAULT_BACKEND_UPLOADER: geonode.importer diff --git a/charts/geonode/templates/geonode/geonode-tasks-py-conf.yaml b/charts/geonode/templates/geonode/geonode-tasks-py-conf.yaml index 760ba45..358c7d4 100644 --- a/charts/geonode/templates/geonode/geonode-tasks-py-conf.yaml +++ b/charts/geonode/templates/geonode/geonode-tasks-py-conf.yaml @@ -353,7 +353,12 @@ data: pty=True, ) ctx.run( - f"python manage.py loaddata geonode/base/fixtures/initial_data.json \ + f"python manage.py loaddata /tmp/default_site.json \ + --settings={_localsettings()}", + pty=True, + ) + ctx.run( + f"python manage.py loaddata {{ include "initial_data_path" . }} \ --settings={_localsettings()}", pty=True, ) diff --git a/charts/geonode/templates/geonode/geonode-uwsgi-ini-conf.yaml b/charts/geonode/templates/geonode/geonode-uwsgi-ini-conf.yaml index d0994b7..0945214 100644 --- a/charts/geonode/templates/geonode/geonode-uwsgi-ini-conf.yaml +++ b/charts/geonode/templates/geonode/geonode-uwsgi-ini-conf.yaml @@ -9,8 +9,8 @@ data: http-socket = 0.0.0.0:8001 # pidfile = /tmp/geonode.pid - chdir = /usr/src/geonode/ - module = geonode.wsgi:application + chdir = {{ include "geonode_root_path" . }}/ + module = {{ .Values.geonode.general.geonode_project }}.wsgi:application strict = false master = true @@ -24,7 +24,7 @@ data: # path to where uwsgi logs will be saved logto = /var/log/geonode.log - touch-reload = /usr/src/geonode/geonode/wsgi.py + touch-reload = {{ include "geonode_path" . }}/wsgi.py buffer-size = {{ .Values.geonode.uwsgi.buffer_size }} harakiri = {{ .Values.geonode.uwsgi.harakiri }} @@ -49,4 +49,4 @@ data: cheaper-busyness-backlog-step = {{ .Values.geonode.uwsgi.cheaper_busyness_backlog_step }} # daemonize = /var/log/uwsgi/geonode.log - # cron = -1 -1 -1 -1 -1 /usr/local/bin/python /usr/src/geonode/manage.py collect_metrics -n + # cron = -1 -1 -1 -1 -1 /usr/local/bin/python {{ include "geonode_root_path" . }}/manage.py collect_metrics -n diff --git a/charts/geonode/templates/geoserver/geoserver-deploy.yaml b/charts/geonode/templates/geoserver/geoserver-deploy.yaml index 224df9a..72655a2 100644 --- a/charts/geonode/templates/geoserver/geoserver-deploy.yaml +++ b/charts/geonode/templates/geoserver/geoserver-deploy.yaml @@ -73,6 +73,9 @@ spec: secretKeyRef: name: {{ include "database_geodata_password_secret_key_ref" . }} key: {{ include "database_geodata_password_key_ref" . }} + {{- with .Values.geoserver.extraPodEnv }} + {{- tpl . $ | nindent 10 }} + {{- end }} volumeMounts: - name: "{{ include "persistant_volume_name" . }}" diff --git a/charts/geonode/templates/geoserver/geoserver-env.yaml b/charts/geonode/templates/geoserver/geoserver-env.yaml index f3fd4f8..8c65b54 100644 --- a/charts/geonode/templates/geoserver/geoserver-env.yaml +++ b/charts/geonode/templates/geoserver/geoserver-env.yaml @@ -20,3 +20,7 @@ data: GEONODE_GEODATABASE: {{ .Values.postgres.geodata_databasename_and_username | quote }} GEONODE_GEODATABASE_SCHEMA: {{ .Values.postgres.schema | quote }} FORCE_REINIT: {{ .Values.geoserver.force_reinit | quote }} + + {{- with .Values.geoserver.extraConfigMap }} + {{- tpl . $ | nindent 2 }} + {{- end }} diff --git a/charts/geonode/templates/geoserver/geoserver-secret.yaml b/charts/geonode/templates/geoserver/geoserver-secret.yaml index cba15f6..e3e92b8 100644 --- a/charts/geonode/templates/geoserver/geoserver-secret.yaml +++ b/charts/geonode/templates/geoserver/geoserver-secret.yaml @@ -14,4 +14,7 @@ data: OAUTH2_API_KEY: "" OAUTH2_CLIENT_ID: {{ .Values.geonode.secret.oauth2.clientId | b64enc}} OAUTH2_CLIENT_SECRET: {{ .Values.geonode.secret.oauth2.clientSecret | b64enc }} + {{- with .Values.geoserver.secret.extraSecrets }} + {{- tpl . $ | nindent 2 }} + {{- end }} {{ end }} \ No newline at end of file diff --git a/charts/geonode/values.yaml b/charts/geonode/values.yaml index 3722ff8..158eebc 100644 --- a/charts/geonode/values.yaml +++ b/charts/geonode/values.yaml @@ -163,6 +163,8 @@ geonode: debug: False # -- enable django static debug debug_static: False + # -- the name of the geonode project used (keep geonode for base image) + geonode_project: geonode # -- the settings module to load settings_module: geonode.settings # -- add additional settings to the settings py. This code will be appended to the end of the geonode settings.py @@ -362,6 +364,22 @@ geoserver: admin_username: admin # -- geoserver admin password, respect admin_factory_password, if you gonna change the password from not factory password admin_password: geoserver + # -- additional elements to include in the secret provided to GeoServer, if not using an existing secret + extraSecrets: | +# key_1: value_1 + + # -- additional elements to include in the config map provided to GeoServer + extraConfigMap: | +# file_1: conf content + + # -- Define this for extra GeoServer environment variables + # Format: + # extraPodEnv: | + # - name: KEY_1 + # value: "VALUE_1" + # - name: KEY_2 + # value: "VALUE_2" + extraPodEnv: | resources: requests: diff --git a/docs/index.md b/docs/index.md index ce6fc86..2475817 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,5 @@ -![Version: 1.2.1](https://img.shields.io/badge/Version-1.2.1-informational?style=flat-square) +![Version: 1.2.2](https://img.shields.io/badge/Version-1.2.2-informational?style=flat-square) # Helm Chart for Geonode diff --git a/docs/list-of-releases-and-versions.md b/docs/list-of-releases-and-versions.md index ece44dd..a358484 100644 --- a/docs/list-of-releases-and-versions.md +++ b/docs/list-of-releases-and-versions.md @@ -18,4 +18,5 @@ the table below shows an overview about the geonode-k8s release with the corespo | [1.1.0](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.1.0) | [4.2.2](https://github.com/GeoNode/geonode/releases/tag/4.2.2) | [geonode/geonode:4.2.2](https://hub.docker.com/r/geonode/geonode/tags) | [geonode/geoserver:2.23.3-v2](https://hub.docker.com/r/geonode/geoserver/tags) | | [1.1.1](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.1.1) | [4.2.2](https://github.com/GeoNode/geonode/releases/tag/4.2.2) | [geonode/geonode:4.2.2](https://hub.docker.com/r/geonode/geonode/tags) | [geonode/geoserver:2.23.3-v2](https://hub.docker.com/r/geonode/geoserver/tags) | | [1.2.0](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.2.0) | [4.3.0](https://github.com/GeoNode/geonode/releases/tag/4.3.0) | [geonode/geonode:4.3.0](https://hub.docker.com/r/geonode/geonode/tags) | [geonode/geoserver:2.24.3-v1](https://hub.docker.com/r/geonode/geoserver/tags) | - [1.2.1](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.2.1) | [4.3.0](https://github.com/GeoNode/geonode/releases/tag/4.3.0) | [geonode/geonode:4.3.0](https://hub.docker.com/r/geonode/geonode/tags) | [geonode/geoserver:2.24.3-v1](https://hub.docker.com/r/geonode/geoserver/tags) | \ No newline at end of file + [1.2.1](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.2.1) | [4.3.0](https://github.com/GeoNode/geonode/releases/tag/4.3.0) | [geonode/geonode:4.3.0](https://hub.docker.com/r/geonode/geonode/tags) | [geonode/geoserver:2.24.3-v1](https://hub.docker.com/r/geonode/geoserver/tags) | + [1.2.2](https://github.com/zalf-rdm/geonode-k8s/releases/tag/geonode-k8s-1.2.1) | [4.3.0](https://github.com/GeoNode/geonode/releases/tag/4.3.0) | [geonode/geonode:4.3.0](https://hub.docker.com/r/geonode/geonode/tags) | [geonode/geoserver:2.24.3-v1](https://hub.docker.com/r/geonode/geoserver/tags) | \ No newline at end of file