From 01203e25e4357e714c6f3b215bdddd834f255f61 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 29 Oct 2019 22:20:53 +0100 Subject: [PATCH 01/47] Proof of Concept to enable docker-compose for glassfish-dev. See #118. --- docker-compose.yaml | 32 +++++++++++++++++++ .../docker-compose/secrets/admin/password | 1 + personas/docker-compose/secrets/api/key | 1 + personas/docker-compose/secrets/db/password | 1 + personas/docker-compose/secrets/doi/password | 1 + 5 files changed, 36 insertions(+) create mode 100644 docker-compose.yaml create mode 100644 personas/docker-compose/secrets/admin/password create mode 100644 personas/docker-compose/secrets/api/key create mode 100644 personas/docker-compose/secrets/db/password create mode 100644 personas/docker-compose/secrets/doi/password diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..367723e2 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,32 @@ +--- +version: '3.5' +services: + + postgresql: + image: postgres:9.6 + expose: + - 5432 + environment: + - POSTGRES_USER=dataverse + - POSTGRES_PASSWORD=changeme + + solr: + image: iqss/solr-k8s + expose: + - 8963 + + dataverse: + build: + context: . + dockerfile: ./docker/dataverse-k8s/glassfish-dev/Dockerfile + image: iqss/dataverse-k8s:dev + depends_on: + - postgresql + - solr + ports: + - 8080:8080 + volumes: + - type: bind + source: ./personas/docker-compose/secrets + target: /opt/dataverse/secrets + read_only: true diff --git a/personas/docker-compose/secrets/admin/password b/personas/docker-compose/secrets/admin/password new file mode 100644 index 00000000..4607aca9 --- /dev/null +++ b/personas/docker-compose/secrets/admin/password @@ -0,0 +1 @@ +admin1 diff --git a/personas/docker-compose/secrets/api/key b/personas/docker-compose/secrets/api/key new file mode 100644 index 00000000..b5f90786 --- /dev/null +++ b/personas/docker-compose/secrets/api/key @@ -0,0 +1 @@ +supersecret diff --git a/personas/docker-compose/secrets/db/password b/personas/docker-compose/secrets/db/password new file mode 100644 index 00000000..dff0ae5a --- /dev/null +++ b/personas/docker-compose/secrets/db/password @@ -0,0 +1 @@ +changeme diff --git a/personas/docker-compose/secrets/doi/password b/personas/docker-compose/secrets/doi/password new file mode 100644 index 00000000..dff0ae5a --- /dev/null +++ b/personas/docker-compose/secrets/doi/password @@ -0,0 +1 @@ +changeme From 183b16c3748eb2ed3e7485d0b096bac56fab262d Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 29 Oct 2019 22:49:05 +0100 Subject: [PATCH 02/47] Fix Solr port in docker-compose.yaml. #118 --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 367723e2..eefc5acd 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,7 +13,7 @@ services: solr: image: iqss/solr-k8s expose: - - 8963 + - 8983 dataverse: build: From 93ef1ab00f0b3fc93159178c529ccd3d70f4ff0e Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 29 Oct 2019 22:50:32 +0100 Subject: [PATCH 03/47] Refactor bootstrap-job.sh to better handle env vars for Solr. #118 --- docker/dataverse-k8s/bin/bootstrap-job.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/dataverse-k8s/bin/bootstrap-job.sh b/docker/dataverse-k8s/bin/bootstrap-job.sh index ed415d8c..63525a63 100644 --- a/docker/dataverse-k8s/bin/bootstrap-job.sh +++ b/docker/dataverse-k8s/bin/bootstrap-job.sh @@ -14,7 +14,8 @@ set -euo pipefail DATAVERSE_SERVICE_HOST=${DATAVERSE_SERVICE_HOST:-"dataverse"} DATAVERSE_SERVICE_PORT=${DATAVERSE_SERVICE_PORT:-"8080"} DATAVERSE_URL=${DATAVERSE_URL:-"http://${DATAVERSE_SERVICE_HOST}:${DATAVERSE_SERVICE_PORT}"} -SOLR_K8S_HOST=${SOLR_K8S_HOST:-${SOLR_SERVICE_HOST}} +SOLR_SERVICE_HOST=${SOLR_SERVICE_HOST:-"solr"} +SOLR_SERVICE_PORT=${SOLR_SERVICE_PORT:-"8983"} # Check postgres and API key secrets are available if [ ! -s "${SECRETS_DIR}/db/password" ]; then @@ -50,7 +51,7 @@ sed -i -e "s#dataverse@mailinator.com#${CONTACT_MAIL}#" data/user-admin.json ./setup-all.sh --insecure -p="${ADMIN_PASSWORD}" # 4.) Configure Solr location -curl -sS -X PUT -d "${SOLR_K8S_HOST}:8983" "${DATAVERSE_URL}/api/admin/settings/:SolrHostColonPort" +curl -sS -X PUT -d "${SOLR_SERVICE_HOST}:${SOLR_SERVICE_PORT}" "${DATAVERSE_URL}/api/admin/settings/:SolrHostColonPort" # 5.) Configure system email (otherwise no email will be send) curl -sS -X PUT -d "${ADMIN_MAIL}" "${DATAVERSE_URL}/api/admin/settings/:SystemEmail" From 57879b94750fe20991498434c26d3ed4768e30fe Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 23 Apr 2020 13:33:03 +0200 Subject: [PATCH 04/47] Update tini to 0.19 and switch to SHA256 for verification. #187 --- docker/dataverse-k8s/glassfish/Dockerfile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docker/dataverse-k8s/glassfish/Dockerfile b/docker/dataverse-k8s/glassfish/Dockerfile index fa15a908..e46f8a43 100644 --- a/docker/dataverse-k8s/glassfish/Dockerfile +++ b/docker/dataverse-k8s/glassfish/Dockerfile @@ -8,7 +8,7 @@ FROM centos:7 LABEL maintainer="FDM FZJ " -ARG TINI_VERSION=v0.18.0 +ARG TINI_VERSION=v0.19.0 ARG JMX_EXPORTER_VERSION=0.12.0 ARG VERSION=4.19 ARG DOMAIN=domain1 @@ -47,11 +47,9 @@ RUN groupadd -g 1000 glassfish && \ chown -R glassfish: ${HOME_DIR} ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} # Install tini as minimized init system -RUN wget --no-verbose -O /tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini && \ - wget --no-verbose -O /tini.asc https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini.asc && \ - gpg --batch --keyserver "hkp://p80.pool.sks-keyservers.net:80" --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 && \ - gpg --batch --verify /tini.asc /tini && \ - chmod +x /tini +RUN wget --no-verbose -O tini-amd64 https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-amd64 && \ + echo '93dcc18adc78c65a028a84799ecf8ad40c936fdfc5f2a57b1acda5a8117fa82c tini-amd64' | sha256sum -c - && \ + mv tini-amd64 /tini && chmod +x /tini # Install esh template engine from Github RUN wget --no-verbose -O esh https://raw.githubusercontent.com/jirutka/esh/v0.3.0/esh && \ From 52b179171ebef3b03e7ffa294c81293a6d736763 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Mon, 17 Aug 2020 14:03:01 +0200 Subject: [PATCH 05/47] Remove empty ConfigMap from the k8s directory, so it does not overwrite local ones with an empty one. Struck me a few times on installations when re-applying. #194 --- k8s/dataverse/configmap.yaml | 11 ----------- k8s/dataverse/kustomization.yaml | 1 - personas/demo/kustomization.yaml | 2 +- personas/demo/patch-memory.yaml | 8 ++++---- 4 files changed, 5 insertions(+), 17 deletions(-) delete mode 100644 k8s/dataverse/configmap.yaml diff --git a/k8s/dataverse/configmap.yaml b/k8s/dataverse/configmap.yaml deleted file mode 100644 index 5514049f..00000000 --- a/k8s/dataverse/configmap.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -kind: ConfigMap -apiVersion: v1 -metadata: - name: dataverse - labels: - app.kubernetes.io/name: configmap - app.kubernetes.io/version: "1.0" - app.kubernetes.io/component: configmap - app.kubernetes.io/part-of: dataverse - app.kubernetes.io/managed-by: kubectl diff --git a/k8s/dataverse/kustomization.yaml b/k8s/dataverse/kustomization.yaml index dc8bea50..48b3d9b9 100644 --- a/k8s/dataverse/kustomization.yaml +++ b/k8s/dataverse/kustomization.yaml @@ -3,7 +3,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - deployment.yaml - - configmap.yaml - pvc.yaml - svc.yaml diff --git a/personas/demo/kustomization.yaml b/personas/demo/kustomization.yaml index 8e242b8e..39c9126c 100644 --- a/personas/demo/kustomization.yaml +++ b/personas/demo/kustomization.yaml @@ -9,9 +9,9 @@ bases: resources: - secrets.yaml - mailcatcher.yaml + - configmap.yaml images: patchesStrategicMerge: - - configmap.yaml - patch-memory.yaml diff --git a/personas/demo/patch-memory.yaml b/personas/demo/patch-memory.yaml index 988dbdd0..141d623a 100644 --- a/personas/demo/patch-memory.yaml +++ b/personas/demo/patch-memory.yaml @@ -10,9 +10,9 @@ spec: - name: dataverse resources: requests: - memory: "1Gi" + memory: "1.0Gi" limits: - memory: "1Gi" + memory: "1.0Gi" --- kind: Deployment apiVersion: apps/v1 @@ -25,6 +25,6 @@ spec: - name: solr resources: requests: - memory: "1Gi" + memory: "1.0Gi" limits: - memory: "1Gi" + memory: "1.0Gi" From 4043c01e42c59cd627cb99c018c5436a169727eb Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 00:55:42 +0200 Subject: [PATCH 06/47] Announce the usage of a release/develop branch strategy for the project. --- README.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.rst b/README.rst index 146197aa..2fda2623 100644 --- a/README.rst +++ b/README.rst @@ -24,6 +24,10 @@ If you would like to contribute, you are most welcome. Head over to the `contribution guide `_ for details. +This project follows the same branching strategy as the upstream Dataverse +project, using a ``release`` branch for stable releases plus a ``develop`` +branch. In this branch unexpected or breaking changes may happen. + .. |Dataverse badge| image:: https://img.shields.io/badge/Dataverse-v4.19-important.svg From f6a7a369d22cc9347db4f51591cf49ee296cea6e Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 01:31:43 +0200 Subject: [PATCH 07/47] Fix typos in docs, ignore _build dir of docs. --- docs/.gitignore | 1 + docs/day1/config.rst | 6 +++--- docs/get-started/index.rst | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/.gitignore b/docs/.gitignore index 24e5b0a1..187d5941 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,2 @@ .build +_build diff --git a/docs/day1/config.rst b/docs/day1/config.rst index 277f4bb8..6815d1e6 100644 --- a/docs/day1/config.rst +++ b/docs/day1/config.rst @@ -63,7 +63,7 @@ server). Examples (see below :ref:`full-example`): .. literalinclude:: examples/configmap.yaml - :lines: 12,16-18,26-27,34 + :lines: 12-13,15-17,26-29 .. warning:: @@ -93,7 +93,7 @@ Provide settings ^^^^^^^^^^^^^^^^ 1. Pick a `Database setting `_ -2. Remove the ``:``` and replace it with ``db_``. Keep the Pascal case! +2. Remove the ``:`` and replace it with ``db_``. Keep the Pascal case! 3. Put the transformed value into the ``ConfigMap.data``. 4. Add your value, which can be any value you see in the docs. Keep in mind: when you need to use JSON, format it as a string! @@ -102,7 +102,7 @@ Provide settings Examples (see below :ref:`full-example`): .. literalinclude:: examples/configmap.yaml - :lines: 12,27-31,42-43 + :lines: 12,27,30-33,42-45 .. warning:: diff --git a/docs/get-started/index.rst b/docs/get-started/index.rst index 46f3bc26..33d1d798 100644 --- a/docs/get-started/index.rst +++ b/docs/get-started/index.rst @@ -33,7 +33,7 @@ With the power of `Kubernetes `_, many scenarios are possi .. code-block:: shell - kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo/common + kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo Wait. Regularly check logs and pods. Login with ``dataverseAdmin:admin1``. From d5f693ed5fa680fbd6794ecbfa28aef5cd4dcff1 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 01:33:03 +0200 Subject: [PATCH 08/47] Create a local storage location inside application container by default, but opt-out. See #196 --- docker/dataverse-k8s/bin/default.config | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker/dataverse-k8s/bin/default.config b/docker/dataverse-k8s/bin/default.config index 10de0cb4..eb18ab34 100644 --- a/docker/dataverse-k8s/bin/default.config +++ b/docker/dataverse-k8s/bin/default.config @@ -16,6 +16,14 @@ JMX_EXPORTER_CONFIG=${JMX_EXPORTER_CONFIG:-"${HOME}/jmx_exporter_config.yaml"} # (Exporting needed as they cannot be seen by `env` otherwise) export dataverse_files_directory=${dataverse_files_directory:-/data} +export dataverse_files_storage__driver__id=${dataverse_files_storage__driver__id:-local} + +if [ "${dataverse_files_storage__driver__id}" = "local" ]; then + export dataverse_files_local_type=${dataverse_files_local_type:-file} + export dataverse_files_local_label=${dataverse_files_local_label:-Local} + export dataverse_files_local_directory=${dataverse_files_local_directory:-/data} +fi + export dataverse_rserve_host=${dataverse_rserve_host:-rserve} export dataverse_rserve_port=${dataverse_rserve_port:-6311} export dataverse_rserve_user=${dataverse_rserve_user:-rserve} From abb1bee8f54f2a6363c3df176f0732f459b14828 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 08:47:19 +0200 Subject: [PATCH 09/47] Make all kubectl apply/create commands in docs use GitCDN link and correct pathes where necessary. --- docs/day1/config.rst | 4 ++-- docs/day2/job-index.rst | 2 +- docs/day2/job-metadata.rst | 4 ++-- docs/development/mail.rst | 2 +- docs/get-started/demo/k3s.rst | 2 +- docs/get-started/demo/minikube.rst | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/day1/config.rst b/docs/day1/config.rst index 6815d1e6..dc905920 100644 --- a/docs/day1/config.rst +++ b/docs/day1/config.rst @@ -117,9 +117,9 @@ is a bad idea. It's always a good idea to put it in revision control. .. code:: # Update ConfigMap: - kubectl apply -f k8s/dataverse/configmap.yaml + kubectl apply -f path/to/your/configmap.yaml # Deploy a new config job: - kubectl create -f k8s/dataverse/jobs/configure.yaml + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/k8s/dataverse/jobs/configure.yaml You might consider providing a `CronJob` for scheduled, regular updates. diff --git a/docs/day2/job-index.rst b/docs/day2/job-index.rst index e330d68e..02675b1c 100644 --- a/docs/day2/job-index.rst +++ b/docs/day2/job-index.rst @@ -24,7 +24,7 @@ in the docs. Simply deploy it during off-hours (or fork and create a ``CronJob`` .. code-block:: shell - kubectl create -f k8s/dataverse/jobs/inplace-reindex.yaml + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/k8s/dataverse/jobs/inplace-reindex.yaml .. hint:: diff --git a/docs/day2/job-metadata.rst b/docs/day2/job-metadata.rst index f58d27c3..6ddf2ec6 100644 --- a/docs/day2/job-metadata.rst +++ b/docs/day2/job-metadata.rst @@ -21,7 +21,7 @@ get your custom metadata inside that job somehow, see below. .. code-block:: shell - kubectl create -f k8s/dataverse/jobs/metadata-update.yaml + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/k8s/dataverse/jobs/metadata-update.yaml .. important:: @@ -48,7 +48,7 @@ to re-export all citation metadata. A simple job does the trick: .. code-block:: shell - kubectl create -f k8s/dataverse/jobs/metadata-reexport.yaml + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/k8s/dataverse/jobs/metadata-reexport.yaml Having a large set of published dataverses and datasets, you might want to run this during off-hours. diff --git a/docs/development/mail.rst b/docs/development/mail.rst index 5e062a9f..2d132147 100644 --- a/docs/development/mail.rst +++ b/docs/development/mail.rst @@ -10,7 +10,7 @@ just use `MailCatcher `_ as a small extra deployment: .. code-block:: shell - kubectl create -f k8s/utils/mailcatcher.yaml + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/personas/demo/mailcatcher.yaml minikube service mailcatcher (The last will open the web UI in your default browser.) diff --git a/docs/get-started/demo/k3s.rst b/docs/get-started/demo/k3s.rst index 90b3d158..59296043 100644 --- a/docs/get-started/demo/k3s.rst +++ b/docs/get-started/demo/k3s.rst @@ -58,7 +58,7 @@ Now start to deploy Dataverse plus any necessary services and bootstrap via Kust .. code-block:: shell - kubectl apply -k ./personas/demo-k3s + kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo-k3s .. image:: img/k3s-deploy.png diff --git a/docs/get-started/demo/minikube.rst b/docs/get-started/demo/minikube.rst index 9ada0319..da96ee04 100644 --- a/docs/get-started/demo/minikube.rst +++ b/docs/get-started/demo/minikube.rst @@ -37,7 +37,7 @@ its ready) to create a demo: .. code-block:: shell - kubectl apply -k personas/demo-minikube + kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo-minikube .. image:: img/minikube-deploy.png From 41dc7bf0417c5f44e1e2191b6eae31922173306b Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 09:18:52 +0200 Subject: [PATCH 10/47] Update docs config example with new storage location style. Include static config snippets instead of file ranges that have to be aligned manually everytime. --- docs/day1/config.rst | 27 +++++++++++++++++++++++---- docs/day1/examples/configmap.yaml | 10 ++++++---- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/docs/day1/config.rst b/docs/day1/config.rst index dc905920..f5b9d43e 100644 --- a/docs/day1/config.rst +++ b/docs/day1/config.rst @@ -62,8 +62,17 @@ server). Examples (see below :ref:`full-example`): -.. literalinclude:: examples/configmap.yaml - :lines: 12-13,15-17,26-29 +.. code-block:: yaml + + data: + ### GENERAL SETTINGS + dataverse_fqdn: data.example.org + dataverse_siteUrl: https://\${dataverse.fqdn} + dataverse_auth_password__reset__timeout__in__minutes: 30 + + ### DOI SETTINGS + doi_baseurlstring: https://mds.test.datacite.org + doi_username: EXAMPLEORG.TEST .. warning:: @@ -101,8 +110,18 @@ Provide settings Examples (see below :ref:`full-example`): -.. literalinclude:: examples/configmap.yaml - :lines: 12,27,30-33,42-45 +.. code-block:: yaml + + data: + ### DOI SETTINGS + db_DoiProvider: DataCite + db_Protocol: doi + db_Authority: "10.12345" + db_Shoulder: EXAMPLE/ + + ### CUSTOMIZATION + db_StatusMessageHeader: "Example.org is not yet in production" + db_StatusMessageText: "
Please do not save any real data, only use for testing and sneak-peek." .. warning:: diff --git a/docs/day1/examples/configmap.yaml b/docs/day1/examples/configmap.yaml index 0f95f430..1a089301 100644 --- a/docs/day1/examples/configmap.yaml +++ b/docs/day1/examples/configmap.yaml @@ -34,11 +34,13 @@ data: ### FILE STORAGE dataverse_files_directory: /data - dataverse_files_storage__driver__id: "s3" - dataverse_files_s3__custom__endpoint__url: http://minio:9000 - dataverse_files_s3__bucket__name: dataverse + dataverse_files_storage__driver__id: "myremote" + dataverse_files_myremote_type: "s3" + dataverse_files_myremote_label: "My Remote S3 Object Store" + dataverse_files_myremote_custom__endpoint__url: http://minio:9000 + dataverse_files_myremote_bucket__name: dataverse # required for Minio! - dataverse_files_s3__path__style__access: "true" + dataverse_files_myremote_path__style__access: "true" ### CUSTOMIZATION db_StatusMessageHeader: "Example.org is not yet in production" From e1dc59a40fc168674338174bc0e3966e1ebedd18 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 10:55:09 +0200 Subject: [PATCH 11/47] Extend storage docs about the new possibilities of multiple storages etc. --- docs/day1/storage.rst | 52 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/docs/day1/storage.rst b/docs/day1/storage.rst index cfefd984..d688c47e 100644 --- a/docs/day1/storage.rst +++ b/docs/day1/storage.rst @@ -28,7 +28,11 @@ there, some hints how to cope with that on Kubernetes: - Research data area - Use a *ReadWriteMany* type volume when using a multi-instance deployment. - When using object storage like S3 or Swift, you might configure it as ``emptyDir`` volume for temporary upload only. + When using remote storage (like S3), you may use an ``emptyDir`` volume + for temporary upload storage. + + Keep in mind that as of Dataverse v4.20, you may enable multiple storage + locations, mix-n-matching local and remote storages. * - **/docroot** - Web application area - Users upload data into this area. Dataverse application writes data here. @@ -42,6 +46,52 @@ there, some hints how to cope with that on Kubernetes: you need to populate this directory. A sidecar pattern is likely to be a good fit for this, retrieving data from remote (like a Git repository). +Temporary Data Storage +^^^^^^^^^^^^^^^^^^^^^^ +Depending on the ``dataverse_files_directory`` :doc:`setting ` data +uploaded by users will be stored in a ``temp`` sub-directory of the given +path for processing (ingest) and moving to final location. With default +``/data``, this will result in temporary storage at ``/data/temp``. + + +"Local" Data Storage +^^^^^^^^^^^^^^^^^^^^ +*Local storage* is any kind of volume mounted into the application container. It +*will look like a local filesystem to the application. + +It might be a ``hostPath`` flavored volume, a Docker volume, a NFS share or even +a clustered file system. Plenty of options are available for Kubernetes. +For any mounts, you should think about using a subdirectory of ``/data``. + +Remember that you will have to ensure proper permissions on the mounted volume +(the appserver uses ``uid=1000, gid=1000``). One option to solve this is by +adding an init container to your deployment object: + +.. code-block:: yaml + + initContainers: + - name: volume-mount-hack + image: giantswarm/tiny-tools + command: ["sh"] + args: + - -c + - chown -c 1000:1000 /data/mystorage + volumeMounts: + - name: mystorage + mountPath: /data/mystorage + + +Remote Data Storage +^^^^^^^^^^^^^^^^^^^ +*Remote storage* is any kind of storage not mounted as a local filesystem, +reachable over a network and having storage driver support inside Dataverse. +Examples are any S3-based or Swift object stores. + +They can be activated via :doc:`configuration ` in your ``ConfigMap``. +Please see upstream documentation about +:guide_dv:`file storage ` +for extensive docs on the available options. :ref:`full-example` provides +a handy S3 example using Minio. Index server ------------ From 629517b59f8fdb32117e8a6215199c2439827f59 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 11:46:01 +0200 Subject: [PATCH 12/47] Update to a more recent version of Payara to avoid memory problems. #183 #181 --- docker/dataverse-k8s/payara/Dockerfile | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/docker/dataverse-k8s/payara/Dockerfile b/docker/dataverse-k8s/payara/Dockerfile index 9b48484a..46ca629d 100644 --- a/docker/dataverse-k8s/payara/Dockerfile +++ b/docker/dataverse-k8s/payara/Dockerfile @@ -4,7 +4,7 @@ # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 -FROM payara/server-full:5.201 +FROM payara/server-full:5.2020.3 LABEL maintainer="FDM FZJ " ARG VERSION=4.19 @@ -27,21 +27,9 @@ RUN mkdir -p ${HOME_DIR} ${SCRIPT_DIR} ${SECRETS_DIR} && \ mkdir -p ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} && \ chown -R payara: ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} ${SECRETS_DIR} -# WORKAROUND MEMORY ISSUES UNTIL UPSTREAM FIXES THEM IN NEW RELEASE -RUN ${PAYARA_DIR}/bin/asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} start-domain ${DOMAIN_NAME} && \ - ${PAYARA_DIR}/bin/asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} delete-jvm-options \ - '-XX\:+UnlockExperimentalVMOptions:-XX\:+UseCGroupMemoryLimitForHeap:-XX\:MaxRAMFraction=1' && \ - ${PAYARA_DIR}/bin/asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-jvm-options \ - '-XX\:+UseContainerSupport:-XX\:MaxRAMPercentage=${ENV=MEM_MAX_RAM_PERCENTAGE}:-Xss${ENV=MEM_XSS}' && \ - ${PAYARA_DIR}/bin/asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} stop-domain ${DOMAIN_NAME} && \ - # Cleanup after initialization - rm -rf \ - ${PAYARA_DIR}/glassfish/domains/${DOMAIN_NAME}/osgi-cache \ - ${PAYARA_DIR}/glassfish/domains/${DOMAIN_NAME}/logs - # Install prerequisites RUN apt-get -qq update && \ - apt-get -qqy install postgresql-client jq imagemagick curl + apt-get -qqy install postgresql-client jq imagemagick curl wget unzip # Install esh template engine from Github RUN wget --no-verbose -O esh https://raw.githubusercontent.com/jirutka/esh/v0.3.0/esh && \ From e006d624080123942a445aa48e49ce80da7adc0c Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 11:47:14 +0200 Subject: [PATCH 13/47] Align PostgreSQL JDBC JAR in Glassfish and Payara images (to 42.2.12) --- docker/dataverse-k8s/glassfish/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/dataverse-k8s/glassfish/Dockerfile b/docker/dataverse-k8s/glassfish/Dockerfile index e46f8a43..181cfb88 100644 --- a/docker/dataverse-k8s/glassfish/Dockerfile +++ b/docker/dataverse-k8s/glassfish/Dockerfile @@ -25,7 +25,7 @@ ENV HOME_DIR=/opt/dataverse\ GLASSFISH_SHA1=704a90899ec5e3b5007d310b13a6001575827293\ WELD_PKG=https://repo1.maven.org/maven2/org/jboss/weld/weld-osgi-bundle/2.2.10.SP1/weld-osgi-bundle-2.2.10.SP1-glassfish4.jar\ GRIZZLY_PKG=http://guides.dataverse.org/en/latest/_downloads/glassfish-grizzly-extra-all.jar\ - PGDRIVER_PKG=https://jdbc.postgresql.org/download/postgresql-42.2.10.jar\ + PGDRIVER_PKG=https://jdbc.postgresql.org/download/postgresql-42.2.12.jar\ DATAVERSE_VERSION=${VERSION}\ DATAVERSE_PKG=https://github.com/IQSS/dataverse/releases/download/v${VERSION}/dvinstall.zip\ JMX_EXPORTER_PKG=https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/${JMX_EXPORTER_VERSION}/jmx_prometheus_javaagent-${JMX_EXPORTER_VERSION}.jar\ From 4cf1047027b6d36172469a4c24427d068c720767 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 18 Aug 2020 11:52:43 +0200 Subject: [PATCH 14/47] Update to v4.20 release in images, docs and k8s objects. #183 --- README.rst | 2 +- dataverse | 2 +- docker/dataverse-k8s/glassfish/Dockerfile | 2 +- docker/dataverse-k8s/payara/Dockerfile | 2 +- docker/solr-k8s/Dockerfile | 2 +- docs/conf.py | 2 +- docs/get-started/demo/img/minikube-done.png | Bin 43144 -> 43144 bytes docs/images/build.rst | 4 ++-- docs/images/dataverse-k8s.md | 8 ++++---- docs/images/solr-k8s.md | 12 ++++++------ k8s/dataverse/deployment.yaml | 2 +- k8s/dataverse/kustomization.yaml | 2 +- k8s/kustomization.yaml | 4 ++-- k8s/solr/deployment.yaml | 2 +- k8s/solr/kustomization.yaml | 2 +- 15 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.rst b/README.rst index 2fda2623..a7ec8f3a 100644 --- a/README.rst +++ b/README.rst @@ -30,7 +30,7 @@ branch. In this branch unexpected or breaking changes may happen. -.. |Dataverse badge| image:: https://img.shields.io/badge/Dataverse-v4.19-important.svg +.. |Dataverse badge| image:: https://img.shields.io/badge/Dataverse-v4.20-important.svg :target: https://dataverse.org .. |Validation badge| image:: https://jenkins.dataverse.org/job/dataverse-k8s/job/Kubeval%20Linting/job/master/badge/icon?subject=kubeval&status=valid&color=purple :target: https://jenkins.dataverse.org/blue/organizations/jenkins/dataverse-k8s%2FKubeval%20Linting/activity?branch=master diff --git a/dataverse b/dataverse index affbf4fb..4e07b625 160000 --- a/dataverse +++ b/dataverse @@ -1 +1 @@ -Subproject commit affbf4fbeb511e0a8591348accdec51423e02d92 +Subproject commit 4e07b625ed585d2feb0ff44b9273c95746958476 diff --git a/docker/dataverse-k8s/glassfish/Dockerfile b/docker/dataverse-k8s/glassfish/Dockerfile index 181cfb88..ca3541c1 100644 --- a/docker/dataverse-k8s/glassfish/Dockerfile +++ b/docker/dataverse-k8s/glassfish/Dockerfile @@ -10,7 +10,7 @@ LABEL maintainer="FDM FZJ " ARG TINI_VERSION=v0.19.0 ARG JMX_EXPORTER_VERSION=0.12.0 -ARG VERSION=4.19 +ARG VERSION=4.20 ARG DOMAIN=domain1 ENV HOME_DIR=/opt/dataverse\ diff --git a/docker/dataverse-k8s/payara/Dockerfile b/docker/dataverse-k8s/payara/Dockerfile index 46ca629d..859fb2ce 100644 --- a/docker/dataverse-k8s/payara/Dockerfile +++ b/docker/dataverse-k8s/payara/Dockerfile @@ -7,7 +7,7 @@ FROM payara/server-full:5.2020.3 LABEL maintainer="FDM FZJ " -ARG VERSION=4.19 +ARG VERSION=4.20 ARG DOMAIN=domain1 ENV DATA_DIR=/data\ diff --git a/docker/solr-k8s/Dockerfile b/docker/solr-k8s/Dockerfile index d4eced60..214a5572 100644 --- a/docker/solr-k8s/Dockerfile +++ b/docker/solr-k8s/Dockerfile @@ -10,7 +10,7 @@ LABEL maintainer="FDM FZJ " ARG WEBHOOK_VERSION=2.6.11 ARG TINI_VERSION=v0.18.0 -ARG VERSION=4.19 +ARG VERSION=4.20 ARG COLLECTION=collection1 ENV SOLR_OPTS="-Dsolr.jetty.request.header.size=102400"\ COLLECTION_DIR=/opt/solr/server/solr/${COLLECTION}\ diff --git a/docs/conf.py b/docs/conf.py index 1f46a2f0..ff53df3d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -25,7 +25,7 @@ author = u'Oliver Bertuch' # The short X.Y version -version = u'4.19' +version = u'4.20' # The full version, including alpha/beta/rc tags release = version diff --git a/docs/get-started/demo/img/minikube-done.png b/docs/get-started/demo/img/minikube-done.png index 7dcdc9d88b9a85c4b9e235507bd19397ff753eaa..1cdac29ddb50eaa62e2270abaa883958549811c8 100644 GIT binary patch delta 27 fcmeCU$kcI>X@h(Ov!0Q`W~GQ&elVjcoy`#dgLMdi delta 27 fcmeCU$kcI>X@h(Ov!S8oW~GQ&elVjcoy`#dgk}hq diff --git a/docs/images/build.rst b/docs/images/build.rst index fa7deffa..37f11493 100644 --- a/docs/images/build.rst +++ b/docs/images/build.rst @@ -19,8 +19,8 @@ Simple with Docker (or Podman) after cloning the project and accessing the sourc .. code-block:: shell - docker build -t iqss/dataverse-k8s:4.19 -f docker/dataverse-k8s/glassfish/Dockerfile . - docker build -t iqss/solr-k8s:4.19 docker/solr-k8s + docker build -t iqss/dataverse-k8s:4.20 -f docker/dataverse-k8s/glassfish/Dockerfile . + docker build -t iqss/solr-k8s:4.20 docker/solr-k8s *Please remember to change the tag above as appropriate. You should be* diff --git a/docs/images/dataverse-k8s.md b/docs/images/dataverse-k8s.md index b43c9d95..509afa27 100644 --- a/docs/images/dataverse-k8s.md +++ b/docs/images/dataverse-k8s.md @@ -1,6 +1,6 @@ # Image "dataverse-k8s" -[![Upstream](https://img.shields.io/badge/Dataverse-v4.19-important.svg)](https://github.com/IQSS/dataverse/releases/v4.19) +[![Upstream](https://img.shields.io/badge/Dataverse-v4.20-important.svg)](https://github.com/IQSS/dataverse/releases/v4.20) [![Hub](https://img.shields.io/static/v1.svg?label=image&message=dataverse-k8s&logo=docker)](https://hub.docker.com/r/iqss/dataverse-k8s) ![Pulls](https://img.shields.io/docker/pulls/iqss/dataverse-k8s) [![RTD](https://img.shields.io/readthedocs/dataverse-k8s)](https://dataverse-k8s.readthedocs.io) @@ -18,12 +18,12 @@ like [Docker](https://docker.io) or [podman](https://podman.io). - `latest`: master branch based build ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/glassfish/Dockerfile)) - `payara`: master branch based build, payara flavor ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/payara/Dockerfile)) - `build-cache`: a maven cache image to speedup dev builds, refreshed every night based on latest upstream `develop`. ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/build-cache/Dockerfile), [`Jenkinsfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/build-cache/Jenkinsfile)) -- `4.19`, ..., `4.15.1`, ..., `4.11`: stable (tagged) releases +- `4.20`, ..., `4.15.1`, ..., `4.11`: stable (tagged) releases - Using [upstream release schema](https://github.com/IQSS/dataverse/releases/) down to `4.11`. - See also [list on Docker Hub](https://hub.docker.com/r/iqss/dataverse-k8s/tags?page=1&ordering=last_updated&name=4.) for releases - - Last stable tag ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/v4.19/docker/dataverse-k8s/glassfish/Dockerfile)) -- `4.19-payara`, ..., `4.19-payara`: same as above, but using Payara 5 as appserver. + - Last stable tag ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/v4.20/docker/dataverse-k8s/glassfish/Dockerfile)) +- `4.20-payara`, ..., `4.20-payara`: same as above, but using Payara 5 as appserver. ## Quick reference diff --git a/docs/images/solr-k8s.md b/docs/images/solr-k8s.md index 49046140..c99d4901 100644 --- a/docs/images/solr-k8s.md +++ b/docs/images/solr-k8s.md @@ -1,6 +1,6 @@ # Image "solr-k8s" -[![Upstream](https://img.shields.io/badge/Dataverse-v4.19-important.svg)](https://github.com/IQSS/dataverse/releases/v4.19) +[![Upstream](https://img.shields.io/badge/Dataverse-v4.20-important.svg)](https://github.com/IQSS/dataverse/releases/v4.20) [![Hub](https://img.shields.io/static/v1.svg?label=image&message=solr-k8s&logo=docker)](https://hub.docker.com/r/iqss/solr-k8s) [![Solr](https://img.shields.io/static/v1.svg?label=upstream&message=7.3.1&logo=docker)](https://hub.docker.com/_/solr) ![Pulls](https://img.shields.io/docker/pulls/iqss/solr-k8s) @@ -10,7 +10,7 @@ This container image includes a dependency service to run [Dataverse](https://dataverse.org), a Java EE based web application for research data management, on a container platform. It is derived from [upstream Solr images](https://hub.docker.com/_/solr), [using the -required version](http://guides.dataverse.org/en/4.19/installation/prerequisites.html#solr). +required version](http://guides.dataverse.org/en/4.20/installation/prerequisites.html#solr). It is primarily targeted to be used in production on [Kubernetes](https://kubernetes.io), but if you follow the same conventions, you should be able to use it with other tools @@ -19,11 +19,11 @@ like [Docker](https://docker.io) or [podman](https://podman.io). ## Supported tags - `latest`: master branch based build ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/glassfish/Dockerfile)) -- `4.19`, ..., `4.15.1`, ..., `4.11`: stable (tagged) releases +- `4.20`, ..., `4.15.1`, ..., `4.11`: stable (tagged) releases - Using [upstream release schema](https://github.com/IQSS/dataverse/releases/) down to `4.11`. - See also [list on Docker Hub](https://hub.docker.com/r/iqss/dataverse-k8s/tags?page=1&ordering=last_updated&name=4.) for releases - - Last stable tag ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/v4.19/docker/solr-k8s/Dockerfile)) + - Last stable tag ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/v4.20/docker/solr-k8s/Dockerfile)) ## Quick reference @@ -54,8 +54,8 @@ to this user on any volumes used for the below directories. Also available as `$SCHEMA_DIR` Please read the detailed docs about Solr schema provisioning: - - [Upstream: updating Solr schema](http://guides.dataverse.org/en/4.19/admin/metadatacustomization.html#updating-the-solr-schema). - - [Kubernetes `Job`s for Search Index](https://dataverse-k8s.rtfd.io/en/4.19/day2/job-index.html) + - [Upstream: updating Solr schema](http://guides.dataverse.org/en/4.20/admin/metadatacustomization.html#updating-the-solr-schema). + - [Kubernetes `Job`s for Search Index](https://dataverse-k8s.rtfd.io/en/4.20/day2/job-index.html) - **/scripts**
A collection of scripts for init containers and sidecars. See guide for more information on those scripts. Also available as `$SCRIPT_DIR`. diff --git a/k8s/dataverse/deployment.yaml b/k8s/dataverse/deployment.yaml index 7283aad9..ab39c8a4 100644 --- a/k8s/dataverse/deployment.yaml +++ b/k8s/dataverse/deployment.yaml @@ -5,7 +5,7 @@ metadata: name: dataverse labels: app.kubernetes.io/name: dataverse - app.kubernetes.io/version: "4.19" + app.kubernetes.io/version: "4.20" app.kubernetes.io/component: appserver app.kubernetes.io/part-of: dataverse app.kubernetes.io/managed-by: kubectl diff --git a/k8s/dataverse/kustomization.yaml b/k8s/dataverse/kustomization.yaml index 48b3d9b9..805f4881 100644 --- a/k8s/dataverse/kustomization.yaml +++ b/k8s/dataverse/kustomization.yaml @@ -8,4 +8,4 @@ resources: images: - name: iqss/dataverse-k8s - newTag: "4.19" + newTag: "4.20" diff --git a/k8s/kustomization.yaml b/k8s/kustomization.yaml index f38f4e30..27edc04f 100644 --- a/k8s/kustomization.yaml +++ b/k8s/kustomization.yaml @@ -7,6 +7,6 @@ bases: images: - name: iqss/dataverse-k8s - newTag: "4.19" + newTag: "4.20" - name: iqss/solr-k8s - newTag: "4.19" + newTag: "4.20" diff --git a/k8s/solr/deployment.yaml b/k8s/solr/deployment.yaml index 36efd9f7..535a5168 100644 --- a/k8s/solr/deployment.yaml +++ b/k8s/solr/deployment.yaml @@ -5,7 +5,7 @@ metadata: name: solr labels: app.kubernetes.io/name: solr - app.kubernetes.io/version: "4.19" + app.kubernetes.io/version: "4.20" app.kubernetes.io/component: searchindex app.kubernetes.io/part-of: dataverse app.kubernetes.io/managed-by: kubectl diff --git a/k8s/solr/kustomization.yaml b/k8s/solr/kustomization.yaml index a2f13375..f9aa7e3c 100644 --- a/k8s/solr/kustomization.yaml +++ b/k8s/solr/kustomization.yaml @@ -8,4 +8,4 @@ resources: images: - name: iqss/solr-k8s - newTag: "4.19" + newTag: "4.20" From 111151c0a9745e3bbe76505e056bf2e4a5a9bc70 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 10:04:38 +0200 Subject: [PATCH 15/47] Add JVM HeapDump options to the Docker images (glassfish & payara) --- docker/dataverse-k8s/glassfish/Dockerfile | 7 +++++-- docker/dataverse-k8s/payara/Dockerfile | 9 +++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docker/dataverse-k8s/glassfish/Dockerfile b/docker/dataverse-k8s/glassfish/Dockerfile index ca3541c1..d8d9345a 100644 --- a/docker/dataverse-k8s/glassfish/Dockerfile +++ b/docker/dataverse-k8s/glassfish/Dockerfile @@ -21,6 +21,7 @@ ENV HOME_DIR=/opt/dataverse\ DOCROOT_DIR=/docroot\ METADATA_DIR=/metadata\ SECRETS_DIR=/secrets\ + DUMPS_DIR=/dumps\ GLASSFISH_PKG=http://download.java.net/glassfish/4.1/release/glassfish-4.1.zip\ GLASSFISH_SHA1=704a90899ec5e3b5007d310b13a6001575827293\ WELD_PKG=https://repo1.maven.org/maven2/org/jboss/weld/weld-osgi-bundle/2.2.10.SP1/weld-osgi-bundle-2.2.10.SP1-glassfish4.jar\ @@ -43,8 +44,8 @@ RUN groupadd -g 1000 glassfish && \ useradd -u 1000 -M -s /bin/bash -d ${HOME_DIR} glassfish -g glassfish && \ echo glassfish:glassfish | chpasswd && \ mkdir -p ${HOME_DIR} ${SCRIPT_DIR} ${SECRETS_DIR} && \ - mkdir -p ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} && \ - chown -R glassfish: ${HOME_DIR} ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} + mkdir -p ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} ${DUMPS_DIR} && \ + chown -R glassfish: ${HOME_DIR} ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} ${DUMPS_DIR} # Install tini as minimized init system RUN wget --no-verbose -O tini-amd64 https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-amd64 && \ @@ -92,6 +93,8 @@ RUN ${GLASSFISH_DIR}/bin/asadmin start-domain && \ for MEMORY_JVM_OPTION in $(${GLASSFISH_DIR}/bin/asadmin list-jvm-options | grep "Xm[sx]"); do\ ${GLASSFISH_DIR}/bin/asadmin delete-jvm-options $MEMORY_JVM_OPTION;\ done && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:+HeapDumpOnOutOfMemoryError" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:HeapDumpPath=${DUMPS_DIR}" && \ ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-server" && \ ${GLASSFISH_DIR}/bin/asadmin stop-domain && \ mkdir -p ${DOMAIN_DIR}/autodeploy && \ diff --git a/docker/dataverse-k8s/payara/Dockerfile b/docker/dataverse-k8s/payara/Dockerfile index 859fb2ce..8116a128 100644 --- a/docker/dataverse-k8s/payara/Dockerfile +++ b/docker/dataverse-k8s/payara/Dockerfile @@ -14,18 +14,19 @@ ENV DATA_DIR=/data\ DOCROOT_DIR=/docroot\ METADATA_DIR=/metadata\ SECRETS_DIR=/secrets\ + DUMPS_DIR=/dumps\ DOMAIN_DIR=${PAYARA_DIR}/glassfish/domains/${DOMAIN_NAME}\ DATAVERSE_VERSION=${VERSION}\ DATAVERSE_PKG=https://github.com/IQSS/dataverse/releases/download/v${VERSION}/dvinstall.zip\ PGDRIVER_PKG=https://jdbc.postgresql.org/download/postgresql-42.2.12.jar\ - MEM_MAX_RAM_PERCENTAGE=70.0\ - MEM_XSS=512k + # Make heap dumps on OOM appear in DUMPS_DIR + JVM_ARGS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=\${ENV=DUMPS_DIR}" # Create basic pathes USER root RUN mkdir -p ${HOME_DIR} ${SCRIPT_DIR} ${SECRETS_DIR} && \ - mkdir -p ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} && \ - chown -R payara: ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} ${SECRETS_DIR} + mkdir -p ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} ${DUMPS_DIR} && \ + chown -R payara: ${DATA_DIR} ${METADATA_DIR} ${DOCROOT_DIR} ${SECRETS_DIR} ${DUMPS_DIR} # Install prerequisites RUN apt-get -qq update && \ From 569d2ad7cf9b88607f80ddc9ea5accf73d9fe2d7 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 10:05:21 +0200 Subject: [PATCH 16/47] Add useful JVM options for production usage to Glassfish image, optimizing GC etc. --- docker/dataverse-k8s/glassfish/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/dataverse-k8s/glassfish/Dockerfile b/docker/dataverse-k8s/glassfish/Dockerfile index d8d9345a..f4dd8554 100644 --- a/docker/dataverse-k8s/glassfish/Dockerfile +++ b/docker/dataverse-k8s/glassfish/Dockerfile @@ -95,6 +95,12 @@ RUN ${GLASSFISH_DIR}/bin/asadmin start-domain && \ done && \ ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:+HeapDumpOnOutOfMemoryError" && \ ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:HeapDumpPath=${DUMPS_DIR}" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:+UseG1GC" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:+UseStringDeduplication" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:MaxGCPauseMillis=500" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:MetaspaceSize=256m" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:MaxMetaspaceSize=2g" && \ + ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-XX\:+IgnoreUnrecognizedVMOptions" && \ ${GLASSFISH_DIR}/bin/asadmin create-jvm-options -- "-server" && \ ${GLASSFISH_DIR}/bin/asadmin stop-domain && \ mkdir -p ${DOMAIN_DIR}/autodeploy && \ From 0f3d11e53a321a3752323112e3b620a9b19b1e6f Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 10:07:49 +0200 Subject: [PATCH 17/47] Demo and dev personas: more memory for Dataverse to avoid OOM kills, lower memory for Solr. Add sidecar for heapdumps in dev persona. --- personas/demo/patch-memory.yaml | 8 ++++---- personas/dev/patch-dev.yaml | 20 +++++++++++++++----- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/personas/demo/patch-memory.yaml b/personas/demo/patch-memory.yaml index 141d623a..6764d880 100644 --- a/personas/demo/patch-memory.yaml +++ b/personas/demo/patch-memory.yaml @@ -10,9 +10,9 @@ spec: - name: dataverse resources: requests: - memory: "1.0Gi" + memory: "1.5Gi" limits: - memory: "1.0Gi" + memory: "1.5Gi" --- kind: Deployment apiVersion: apps/v1 @@ -25,6 +25,6 @@ spec: - name: solr resources: requests: - memory: "1.0Gi" + memory: "0.8Gi" limits: - memory: "1.0Gi" + memory: "0.8Gi" diff --git a/personas/dev/patch-dev.yaml b/personas/dev/patch-dev.yaml index 46cda0f0..e934bbce 100644 --- a/personas/dev/patch-dev.yaml +++ b/personas/dev/patch-dev.yaml @@ -10,16 +10,26 @@ spec: - name: dataverse resources: requests: - memory: "1Gi" + memory: "1.5Gi" limits: - memory: "1Gi" + memory: "1.5Gi" env: - name: MEM_MAX_RAM_PERCENTAGE - value: "60.0" + value: "70.0" - name: "ENABLE_JMX" value: "1" - name: "ENABLE_JDWP" value: "1" + - name: heapdumps + image: wardsco/sleep + resources: + requests: + memory: "64Mi" + limits: + memory: "64Mi" + volumeMounts: + - name: heapdumps + mountPath: /dumps --- kind: Deployment apiVersion: apps/v1 @@ -32,6 +42,6 @@ spec: - name: solr resources: requests: - memory: "1Gi" + memory: "0.8Gi" limits: - memory: "1Gi" + memory: "0.8Gi" From 73e5340aa757878344c32cf759041c13425c882a Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 10:08:37 +0200 Subject: [PATCH 18/47] K8s object for Dataverse: add /dumps volume mount with emptyDir to store heap dumps. --- k8s/dataverse/deployment.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/k8s/dataverse/deployment.yaml b/k8s/dataverse/deployment.yaml index ab39c8a4..b5a7edf7 100644 --- a/k8s/dataverse/deployment.yaml +++ b/k8s/dataverse/deployment.yaml @@ -55,6 +55,8 @@ spec: mountPath: /data - name: docroot mountPath: /docroot + - name: heapdumps + mountPath: /dumps - name: db-secret mountPath: "/secrets/db" readOnly: true @@ -103,6 +105,8 @@ spec: - name: doi-secret secret: secretName: dataverse-doi + - name: heapdumps + emptyDir: {} # This is here because of IQSS/dataverse-kubernetes#177. TBR for #178 - name: primefaces-upload emptyDir: {} From 62429ca45f900c5b8404eb403d690ea2a7c5ac47 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 10:09:36 +0200 Subject: [PATCH 19/47] Resource usage docs: align memory minimums with demo/dev personas experience. --- docs/day1/resources.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/day1/resources.rst b/docs/day1/resources.rst index cee96931..f1e574fc 100644 --- a/docs/day1/resources.rst +++ b/docs/day1/resources.rst @@ -23,12 +23,12 @@ tweaked for memory usage. Obviously the values below count per instance. - Recommendend min. RAM for production use * - Application server w/ Dataverse - - 1 GiB - - 512 MiB + - 1.5 GiB + - 768 MiB - 4 GiB * - Solr Search Index - - 1 GiB - - 512 MiB + - 820 MiB + - 410 MiB - 4 GiB .. hint:: From fd96df1ced3e8d7ef041614b471f36118f21494b Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 10:33:55 +0200 Subject: [PATCH 20/47] Small refactoring of resources docs. --- docs/day1/resources.rst | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/day1/resources.rst b/docs/day1/resources.rst index f1e574fc..78c6ea66 100644 --- a/docs/day1/resources.rst +++ b/docs/day1/resources.rst @@ -62,13 +62,19 @@ To configure these limits, simply configure it in the ``Deployment`` object: .. seealso:: For development or demo use, you'll be good in most cases with much less. - You need to ensure the JVM uses at least 512 MiB for heap space. + You need to ensure the JVM uses at least ~800 MiB for heap space. Using less heap space will not even deploy successfully. + How much RAM is used at max for Java Heap can be easily adjusted by using the + JVM option ``-XX:MaxRAMPercentage=xx.x``. For your convenience this has been + simplified by supporting an environment variable ``${MEM_MAX_RAM_PERCENTAGE}``, + see hidden example below. *Please keep in mind: value must be a floating point + value!* + .. toggle-header:: :header: Development values are hidden on purpose to avoid confusion. *Expand/hide* - 1 GiB RAM means 717 MB of heap space with 70% default setting, which is safe. + 1.5 GiB RAM means ~1 GiB of heap space using the 70% default setting, which is safe. You can tweak the setting to match your necessities like below: .. code-block:: yaml @@ -80,14 +86,9 @@ To configure these limits, simply configure it in the ``Deployment`` object: - name: dataverse resources: requests: - memory: "1Gi" + memory: "1.0Gi" limits: - memory: "1Gi" + memory: "1.5Gi" env: - name: MEM_MAX_RAM_PERCENTAGE value: "50.0" - - How much RAM is used at max for Java Heap can be easily adjusted by using the - JVM option ``-XX:MaxRAMPercentage=xx.x``. For your convenience this has been - simplified by supporting an environment variable ``${MEM_MAX_RAM_PERCENTAGE}``, - see hidden example above. *Please keep in mind: must be a floating point value!* From b52845c74ae7fa0ac7aad6eaf2e8c07766627f04 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 20 Aug 2020 14:15:31 +0200 Subject: [PATCH 21/47] Closes #204. Extend docs about memory shortage, troubleshooting and the new dumps directory. --- docs/day1/resources.rst | 84 ++++++++++++++++++++++++++++++++++++ docs/day1/storage.rst | 10 +++++ docs/images/dataverse-k8s.md | 4 ++ 3 files changed, 98 insertions(+) diff --git a/docs/day1/resources.rst b/docs/day1/resources.rst index 78c6ea66..4790c1c8 100644 --- a/docs/day1/resources.rst +++ b/docs/day1/resources.rst @@ -92,3 +92,87 @@ To configure these limits, simply configure it in the ``Deployment`` object: env: - name: MEM_MAX_RAM_PERCENTAGE value: "50.0" + +Fighting "Out Of Memory" situations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Java Memory usage is a very complex topic and you should take great care of +monitoring it's usage within your deployment. + +Most operators are aware of the *Heap*, where values of POJOs are stored during +the applications runtime. You should also be aware of the *Stack*, *Metaspace* +and other memory terms, like *Native Memory*. + +The following sections is not so much about prevention of these situations +(that's why you're doing monitoring, right?), but what you can do to troubleshoot +when bad things happened. + + + +Shortage of Heap Space +...................... + +Many times, you're application is killed by running out of memory. Often this is +related to running out of *Heap Space*, the most important type of memory for a +Java application. + +If you don't know what *Garbage Collection* is and how memory allocation works +in Java, you can find lots of resources online. Some examples: + +- https://www.baeldung.com/java-stack-heap +- https://www.baeldung.com/jvm-garbage-collectors +- https://www.youtube.com/watch?v=kR8_r3kMK-Y + +When running out of *Heap Space*, your JVM will throw an ``OutOfMemoryError`` +exception (see also `Oracle docs on OutOfMemoryError`_). + +In these cases, a *heap dump* will be written to ``$DUMPS_DIR``, which is +``/dumps`` by default. Those can be analyzed using tools like `Eclipse MAT`_. + +.. note:: + In the ``dev`` persona, a sidecar container is deployed with whom you + can use ``kubectl cp`` to download the ``.hprof`` dump file for analysis. + +You might want to deploy your own solution, maybe uploading to an object store, +sending notifications or other great ideas. Some inspirations: + +- https://link.medium.com/Ifnt4khj68 +- https://link.medium.com/gZfpnGTH48 +- https://danlebrero.com/2018/11/20/how-to-do-java-jvm-heapdump-in-kubernetes + + + +Shortage of other memory spaces +............................... +For many users of Java applications, other types of memory than the *Heap* are +less commonly known. Compared to the huge amounts of Heap spaces, those are +often rather small, yet they might get you into trouble. + +To understand how this might happen, you need to be aware that the Linux kernel +will non-gracefully kill processes exceeding their memory limits. A container +running on a Kubernetes cluster usually should have resource limits restrictions +applied. (Java will align it's memory usage to these as outlined above.) Once +the containers starts using more RAM than the limits allow, the out of memory +killer will stop the process (usually the only one running in a single container) +and Kubernetes will log an event ``OOMKilled``. + +Depending on how much RAM budget you have left on your nodes, you might either +simply raise the limits. Or you might want to do deeper analysis of the problem, +because there might be a memory leak, coming back no matter how much you raise +the limits. + +There are some excellent resources to read when you go for a hunt: + +- https://devcenter.heroku.com/articles/java-memory-issues +- https://stackoverflow.com/questions/38597965 +- https://medium.com/swlh/native-memory-the-silent-jvm-killer-595913cba8e7 + +So regarding to monitoring, you should always keep an eye not only on heap +and GC stats, but also on the very basic containers metrics offered by K8s. +Try to match the JVM memory stats with those from the container. If things +fall apart, there is a good chance you'll see it before it dies from memory leaks. + + + + +.. _Oracle docs on OutOfMemoryError: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/memleaks002.html +.. _Eclipse MAT: https://www.eclipse.org/mat/ diff --git a/docs/day1/storage.rst b/docs/day1/storage.rst index d688c47e..7b3e50c2 100644 --- a/docs/day1/storage.rst +++ b/docs/day1/storage.rst @@ -46,6 +46,13 @@ there, some hints how to cope with that on Kubernetes: you need to populate this directory. A sidecar pattern is likely to be a good fit for this, retrieving data from remote (like a Git repository). + * - **/dumps** + - Heap dumps area + - In case of :ref:`running out of heap space `, + heap dumps will be saved here for further shipping, analysis etc. + By default this is backed by an ``emptyDir`` temporary storage volume. + Should be monitored in a sidecar container. + Temporary Data Storage ^^^^^^^^^^^^^^^^^^^^^^ Depending on the ``dataverse_files_directory`` :doc:`setting ` data @@ -53,6 +60,9 @@ uploaded by users will be stored in a ``temp`` sub-directory of the given path for processing (ingest) and moving to final location. With default ``/data``, this will result in temporary storage at ``/data/temp``. +Remember to have temporary storage available at ``/dumps``. Heap dumps +might grow as large as your configured container memory limits and storing +them on the overlay filesytem of the container is a bad idea. "Local" Data Storage ^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/images/dataverse-k8s.md b/docs/images/dataverse-k8s.md index 509afa27..05a0de04 100644 --- a/docs/images/dataverse-k8s.md +++ b/docs/images/dataverse-k8s.md @@ -62,6 +62,10 @@ to this user on any volumes (except secrets) used for the below directories. Installation root of application server, WAR files, scripts etc. See `Dockerfile` for all details. +- **/dumps**
+ Mount a volume here to access Java Heap dumps when running out of heap memory. + Also available as `$DUMPS_DIR`. + ### Secrets and Credentials Currently understood secrets in the container, mounted at `$SECRETS_DIR` (see From 5fb5b0862e7cde1086b884dfd541b3e7882fa082 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Mon, 24 Aug 2020 16:34:39 +0200 Subject: [PATCH 22/47] Make dataverse-k8s v4.20 Glassfish image compatible with upstream release 4.20 (grizzly patch download) --- docker/dataverse-k8s/glassfish/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/dataverse-k8s/glassfish/Dockerfile b/docker/dataverse-k8s/glassfish/Dockerfile index f4dd8554..258309f8 100644 --- a/docker/dataverse-k8s/glassfish/Dockerfile +++ b/docker/dataverse-k8s/glassfish/Dockerfile @@ -25,7 +25,7 @@ ENV HOME_DIR=/opt/dataverse\ GLASSFISH_PKG=http://download.java.net/glassfish/4.1/release/glassfish-4.1.zip\ GLASSFISH_SHA1=704a90899ec5e3b5007d310b13a6001575827293\ WELD_PKG=https://repo1.maven.org/maven2/org/jboss/weld/weld-osgi-bundle/2.2.10.SP1/weld-osgi-bundle-2.2.10.SP1-glassfish4.jar\ - GRIZZLY_PKG=http://guides.dataverse.org/en/latest/_downloads/glassfish-grizzly-extra-all.jar\ + GRIZZLY_PKG=http://guides.dataverse.org/en/${VERSION}/_downloads/glassfish-grizzly-extra-all.jar\ PGDRIVER_PKG=https://jdbc.postgresql.org/download/postgresql-42.2.12.jar\ DATAVERSE_VERSION=${VERSION}\ DATAVERSE_PKG=https://github.com/IQSS/dataverse/releases/download/v${VERSION}/dvinstall.zip\ From 24efb0a28f89b8caa74c39434ffc280ac1c0f486 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Mon, 24 Aug 2020 16:37:00 +0200 Subject: [PATCH 23/47] Refactor S3 credentials handling in init scripts for #195 --- .../glassfish/bin/init_1_conf_glassfish.sh | 33 ++++++++++++------ .../payara/bin/init_2_conf_payara.sh | 34 +++++++++++++------ 2 files changed, 46 insertions(+), 21 deletions(-) diff --git a/docker/dataverse-k8s/glassfish/bin/init_1_conf_glassfish.sh b/docker/dataverse-k8s/glassfish/bin/init_1_conf_glassfish.sh index bb26b3eb..42dba629 100644 --- a/docker/dataverse-k8s/glassfish/bin/init_1_conf_glassfish.sh +++ b/docker/dataverse-k8s/glassfish/bin/init_1_conf_glassfish.sh @@ -30,16 +30,29 @@ do done # 1b. Create AWS access credentials when storage driver is set to s3 -# See IQSS/dataverse-kubernetes#28 for details of this workaround. -if [ "s3" = "${dataverse_files_storage__driver__id}" ]; then - if [ -f ${SECRETS_DIR}/s3/access-key ] && [ -f ${SECRETS_DIR}/s3/secret-key ]; then - mkdir -p ${HOME_DIR}/.aws - echo "[default]" > ${HOME_DIR}/.aws/credentials - cat ${SECRETS_DIR}/s3/access-key | sed -e "s#^#aws_access_key_id = #" -e "s#\$#\n#" >> ${HOME_DIR}/.aws/credentials - cat ${SECRETS_DIR}/s3/secret-key | sed -e "s#^#aws_secret_access_key = #" -e "s#\$#\n#" >> ${HOME_DIR}/.aws/credentials - else - echo "WARNING: Could not find all S3 access secrets in ${SECRETS_DIR}/s3/(access-key|secret-key). Check your Kubernetes Secrets and their mounting!" - fi +# Find all access keys +if [ -d "${SECRETS_DIR}/s3" ]; then + S3_KEYS=`find "${SECRETS_DIR}/s3" -readable -type f -iname '*access-key'` + S3_CRED_FILE=${HOME_DIR}/.aws/credentials + mkdir -p `dirname "${S3_CRED_FILE}"` + rm -f ${S3_CRED_FILE} + # Iterate keys + while IFS= read -r S3_ACCESS_KEY; do + echo "Loading S3 key ${S3_ACCESS_KEY}" + # Try to find the secret key, parse for profile and add to the credentials file. + S3_PROFILE=`echo "${S3_ACCESS_KEY}" | sed -ne "s#.*/\(.*\)-access-key#\1#p"` + S3_SECRET_KEY=`echo "${S3_ACCESS_KEY}" | sed -ne "s#\(.*/\|.*/.*-\)access-key#\1secret-key#p"` + + if [ -r ${S3_SECRET_KEY} ]; then + [ -z "${S3_PROFILE}" ] && echo "[default]" >> "${S3_CRED_FILE}" || echo "[${S3_PROFILE}]" >> "${S3_CRED_FILE}" + cat "${S3_ACCESS_KEY}" | sed -e "s#^#aws_access_key_id = #" -e "s#\$#\n#" >> "${S3_CRED_FILE}" + cat "${S3_SECRET_KEY}" | sed -e "s#^#aws_secret_access_key = #" -e "s#\$#\n#" >> "${S3_CRED_FILE}" + echo "" >> "${S3_CRED_FILE}" + else + echo "ERROR: Could not find or read matching \"$S3_SECRET_KEY\"." + exit 1 + fi + done <<< "${S3_KEYS}" fi # 2. Domain-spaced resources (JDBC, JMS, ...) diff --git a/docker/dataverse-k8s/payara/bin/init_2_conf_payara.sh b/docker/dataverse-k8s/payara/bin/init_2_conf_payara.sh index d61b6563..ac9a68a2 100644 --- a/docker/dataverse-k8s/payara/bin/init_2_conf_payara.sh +++ b/docker/dataverse-k8s/payara/bin/init_2_conf_payara.sh @@ -34,17 +34,29 @@ do done # 1b. Create AWS access credentials when storage driver is set to s3 -# See IQSS/dataverse-kubernetes#28 for details of this workaround. -if [ "s3" = "${dataverse_files_storage__driver__id}" ]; then - if [ -f ${SECRETS_DIR}/s3/access-key ] && [ -f ${SECRETS_DIR}/s3/secret-key ]; then - echo "INFO: Deploying AWS credentials." - mkdir -p ${HOME_DIR}/.aws - echo "[default]" > ${HOME_DIR}/.aws/credentials - cat ${SECRETS_DIR}/s3/access-key | sed -e "s#^#aws_access_key_id = #" -e "s#\$#\n#" >> ${HOME_DIR}/.aws/credentials - cat ${SECRETS_DIR}/s3/secret-key | sed -e "s#^#aws_secret_access_key = #" -e "s#\$#\n#" >> ${HOME_DIR}/.aws/credentials - else - echo "WARNING: Could not find all S3 access secrets in ${SECRETS_DIR}/s3/(access-key|secret-key). Check your Kubernetes Secrets and their mounting!" - fi +# Find all access keys +if [ -d "${SECRETS_DIR}/s3" ]; then + S3_KEYS=`find "${SECRETS_DIR}/s3" -readable -type f -iname '*access-key'` + S3_CRED_FILE=${HOME_DIR}/.aws/credentials + mkdir -p `dirname "${S3_CRED_FILE}"` + rm -f ${S3_CRED_FILE} + # Iterate keys + while IFS= read -r S3_ACCESS_KEY; do + echo "Loading S3 key ${S3_ACCESS_KEY}" + # Try to find the secret key, parse for profile and add to the credentials file. + S3_PROFILE=`echo "${S3_ACCESS_KEY}" | sed -ne "s#.*/\(.*\)-access-key#\1#p"` + S3_SECRET_KEY=`echo "${S3_ACCESS_KEY}" | sed -ne "s#\(.*/\|.*/.*-\)access-key#\1secret-key#p"` + + if [ -r ${S3_SECRET_KEY} ]; then + [ -z "${S3_PROFILE}" ] && echo "[default]" >> "${S3_CRED_FILE}" || echo "[${S3_PROFILE}]" >> "${S3_CRED_FILE}" + cat "${S3_ACCESS_KEY}" | sed -e "s#^#aws_access_key_id = #" -e "s#\$#\n#" >> "${S3_CRED_FILE}" + cat "${S3_SECRET_KEY}" | sed -e "s#^#aws_secret_access_key = #" -e "s#\$#\n#" >> "${S3_CRED_FILE}" + echo "" >> "${S3_CRED_FILE}" + else + echo "ERROR: Could not find or read matching \"$S3_SECRET_KEY\"." + exit 1 + fi + done <<< "${S3_KEYS}" fi # 2. Domain-spaced resources (JDBC, JMS, ...) From 3e47e199882cae9978aeb0398549dc2ecf49225b Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Mon, 24 Aug 2020 16:44:54 +0200 Subject: [PATCH 24/47] Add sample integration with a Minio based S3 storage. --- personas/demo-integrate-minio/configmap.yaml | 21 +++++ .../demo-integrate-minio/kustomization.yaml | 14 +++ .../minio-standalone/deployment.yaml | 91 +++++++++++++++++++ .../minio-standalone/kustomization.yaml | 7 ++ .../minio-standalone/pvc.yaml | 13 +++ .../minio-standalone/svc.yaml | 16 ++++ .../demo-integrate-minio/patch-memory.yaml | 15 +++ .../patch-pod-s3-secret.yaml | 18 ++++ personas/demo-integrate-minio/secrets.yaml | 15 +++ 9 files changed, 210 insertions(+) create mode 100644 personas/demo-integrate-minio/configmap.yaml create mode 100644 personas/demo-integrate-minio/kustomization.yaml create mode 100644 personas/demo-integrate-minio/minio-standalone/deployment.yaml create mode 100644 personas/demo-integrate-minio/minio-standalone/kustomization.yaml create mode 100644 personas/demo-integrate-minio/minio-standalone/pvc.yaml create mode 100644 personas/demo-integrate-minio/minio-standalone/svc.yaml create mode 100644 personas/demo-integrate-minio/patch-memory.yaml create mode 100644 personas/demo-integrate-minio/patch-pod-s3-secret.yaml create mode 100644 personas/demo-integrate-minio/secrets.yaml diff --git a/personas/demo-integrate-minio/configmap.yaml b/personas/demo-integrate-minio/configmap.yaml new file mode 100644 index 00000000..010c0250 --- /dev/null +++ b/personas/demo-integrate-minio/configmap.yaml @@ -0,0 +1,21 @@ +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: dataverse + labels: + app.kubernetes.io/name: configmap + app.kubernetes.io/part-of: dataverse +data: + # PIDs + db_DoiProvider: FAKE + + ### FILE STORAGE + dataverse_files_directory: /data + dataverse_files_storage__driver__id: "myremote" + dataverse_files_myremote_type: "s3" + dataverse_files_myremote_label: "My Remote S3 Object Store" + dataverse_files_myremote_custom__endpoint__url: http://minio:9000 + dataverse_files_myremote_bucket__name: dataverse + # required for Minio! + dataverse_files_myremote_path__style__access: "true" diff --git a/personas/demo-integrate-minio/kustomization.yaml b/personas/demo-integrate-minio/kustomization.yaml new file mode 100644 index 00000000..94f2b62c --- /dev/null +++ b/personas/demo-integrate-minio/kustomization.yaml @@ -0,0 +1,14 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: + - ../demo + - minio-standalone + +resources: + - secrets.yaml + +patchesStrategicMerge: + - configmap.yaml + - patch-pod-s3-secret.yaml + - patch-memory.yaml diff --git a/personas/demo-integrate-minio/minio-standalone/deployment.yaml b/personas/demo-integrate-minio/minio-standalone/deployment.yaml new file mode 100644 index 00000000..2bef0109 --- /dev/null +++ b/personas/demo-integrate-minio/minio-standalone/deployment.yaml @@ -0,0 +1,91 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: minio + labels: + app.kubernetes.io/name: minio + app.kubernetes.io/version: "latest" + app.kubernetes.io/component: storage + app.kubernetes.io/part-of: dataverse + app.kubernetes.io/managed-by: kubectl +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: minio + app.kubernetes.io/part-of: dataverse + revisionHistoryLimit: 1 + strategy: + # Choosen as upstream example uses this. Might be a thing of locks... + type: Recreate + template: + metadata: + labels: + app.kubernetes.io/name: minio + app.kubernetes.io/part-of: dataverse + annotations: {} + spec: + containers: + - name: minio + image: minio/minio + args: ["server", "/data"] + resources: + requests: + memory: "0.5Gi" + cpu: "0.5" + limits: + memory: "1Gi" + cpu: "1" + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + env: + # MinIO access key and secret key + - name: MINIO_ACCESS_KEY_FILE + value: minio/access-key + - name: MINIO_SECRET_KEY_FILE + value: minio/secret-key + volumeMounts: + - name: data + mountPath: /data + - name: minio-secrets + mountPath: "/run/secrets/minio" + readOnly: true + ports: + - containerPort: 9000 + name: service + readinessProbe: + httpGet: + path: /minio/health/ready + port: service + initialDelaySeconds: 30 + periodSeconds: 30 + livenessProbe: + httpGet: + path: /minio/health/live + port: service + initialDelaySeconds: 30 + periodSeconds: 30 + securityContext: + fsGroup: 1000 + initContainers: + - name: perm-and-bucket + image: giantswarm/tiny-tools + securityContext: + runAsUser: 0 + command: + - sh + - -c + - | + mkdir -p /data/dataverse /data/mdclogs; + chown -c 1000:1000 /data /data/dataverse /data/mdclogs + volumeMounts: + - name: data + mountPath: /data + volumes: + - name: data + persistentVolumeClaim: + claimName: minio + - name: minio-secrets + secret: + secretName: dataverse-s3 diff --git a/personas/demo-integrate-minio/minio-standalone/kustomization.yaml b/personas/demo-integrate-minio/minio-standalone/kustomization.yaml new file mode 100644 index 00000000..db8781da --- /dev/null +++ b/personas/demo-integrate-minio/minio-standalone/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - deployment.yaml + - svc.yaml + - pvc.yaml diff --git a/personas/demo-integrate-minio/minio-standalone/pvc.yaml b/personas/demo-integrate-minio/minio-standalone/pvc.yaml new file mode 100644 index 00000000..bda24e34 --- /dev/null +++ b/personas/demo-integrate-minio/minio-standalone/pvc.yaml @@ -0,0 +1,13 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: minio + labels: + app: minio +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi diff --git a/personas/demo-integrate-minio/minio-standalone/svc.yaml b/personas/demo-integrate-minio/minio-standalone/svc.yaml new file mode 100644 index 00000000..10e7152d --- /dev/null +++ b/personas/demo-integrate-minio/minio-standalone/svc.yaml @@ -0,0 +1,16 @@ +--- +kind: Service +apiVersion: v1 +metadata: + name: minio + labels: + app: minio +spec: + ports: + - port: 9000 + name: minio + targetPort: 9000 + protocol: TCP + selector: + app.kubernetes.io/name: minio + app.kubernetes.io/part-of: dataverse diff --git a/personas/demo-integrate-minio/patch-memory.yaml b/personas/demo-integrate-minio/patch-memory.yaml new file mode 100644 index 00000000..46b1feba --- /dev/null +++ b/personas/demo-integrate-minio/patch-memory.yaml @@ -0,0 +1,15 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: dataverse +spec: + template: + spec: + containers: + - name: dataverse + resources: + requests: + memory: "2Gi" + limits: + memory: "2Gi" diff --git a/personas/demo-integrate-minio/patch-pod-s3-secret.yaml b/personas/demo-integrate-minio/patch-pod-s3-secret.yaml new file mode 100644 index 00000000..2bd3006a --- /dev/null +++ b/personas/demo-integrate-minio/patch-pod-s3-secret.yaml @@ -0,0 +1,18 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: dataverse +spec: + template: + spec: + volumes: + - name: s3-secret + secret: + secretName: dataverse-s3 + containers: + - name: dataverse + volumeMounts: + - name: s3-secret + mountPath: "/secrets/s3" + readOnly: true diff --git a/personas/demo-integrate-minio/secrets.yaml b/personas/demo-integrate-minio/secrets.yaml new file mode 100644 index 00000000..b52fabda --- /dev/null +++ b/personas/demo-integrate-minio/secrets.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Secret +metadata: + name: dataverse-s3 + labels: + app.kubernetes.io/name: dataverse-s3 + app.kubernetes.io/version: "1.0" + app.kubernetes.io/component: secret + app.kubernetes.io/part-of: dataverse + app.kubernetes.io/managed-by: kubectl +type: Opaque +stringData: + access-key: dataverse + secret-key: changeme From a86617606137af35c8da620465de90b627fde9e1 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Mon, 24 Aug 2020 17:34:36 +0200 Subject: [PATCH 25/47] Start adding docs about integrating object storage for #195 --- docs/day3/index.rst | 3 ++- docs/day3/objectstore.rst | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 docs/day3/objectstore.rst diff --git a/docs/day3/index.rst b/docs/day3/index.rst index 2fbb46c7..6a53df9b 100644 --- a/docs/day3/index.rst +++ b/docs/day3/index.rst @@ -2,7 +2,7 @@ Day 3 - Integrations ==================== -This section is is about getting fancy. Day 1 and day 2 operations are mostly +This section is about getting fancy. Day 1 and day 2 operations are mostly about covering the pure basics, while the true power of Dataverse unleashes with its fabulous integrations of and in other tools. @@ -11,3 +11,4 @@ with its fabulous integrations of and in other tools. :caption: Contents: auth + objectstore diff --git a/docs/day3/objectstore.rst b/docs/day3/objectstore.rst new file mode 100644 index 00000000..69c1dd44 --- /dev/null +++ b/docs/day3/objectstore.rst @@ -0,0 +1,24 @@ +============== +Object Storage +============== + +Dataverse offers storing data on object storage like AWS S3 or OpenStack Swift. +You should read upstream docs on this: + +- :guide_dv:`Configure Storage Locations ` +- :guide_dv:`Direct Access for Big Data ` + +Since Dataverse v4.20, multiple storage locations are supported for both local +or remote storage or mixed (see also :doc:`/day1/storage`). + +To enable object storage locations, you need to follow three steps: + +1. Create your ``Secrets``. If you deploy both your storage solution and + Dataverse to the same cluster / location, you should share them somehow. + Docs on how to create secrets for Dataverse and apply them to the pod + can be found in :doc:`/day1/secrets`. +2. Prepare and/or deploy your object storage solution +3. Configure Dataverse to make use of it. See :doc:`/day1/config` for details + on how to create a configuration. + +.. todo:: Describe ``personas/demo-integrate-minio`` example here. From 3cca57566a86126260d104e66ffa26acbbbb5763 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 25 Aug 2020 15:15:28 +0200 Subject: [PATCH 26/47] Extend docs about object storage integration by referencing the Minio demo persona. #195 --- docs/conf.py | 1 + docs/day1/storage.rst | 3 +++ docs/day3/objectstore.rst | 10 +++++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index ff53df3d..4fa94ab8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -87,6 +87,7 @@ autosectionlabel_prefix_document = True extlinks = { + 'tree': ('https://github.com/IQSS/dataverse-kubernetes/tree/master/%s', 'folder of master branch '), 'issue': ('https://github.com/IQSS/dataverse-kubernetes/issues/%s', 'issue '), 'issue_dv': ('https://github.com/IQSS/dataverse/issues/%s', 'issue '), 'guide_dv': ('http://guides.dataverse.org/en/'+version+'/%s', 'upstream docs ') diff --git a/docs/day1/storage.rst b/docs/day1/storage.rst index 7b3e50c2..861814b7 100644 --- a/docs/day1/storage.rst +++ b/docs/day1/storage.rst @@ -103,6 +103,9 @@ Please see upstream documentation about for extensive docs on the available options. :ref:`full-example` provides a handy S3 example using Minio. +Further explenaition and an example can be found in the integration docs about +:doc:`/day3/objectstore`. + Index server ------------ diff --git a/docs/day3/objectstore.rst b/docs/day3/objectstore.rst index 69c1dd44..e5583026 100644 --- a/docs/day3/objectstore.rst +++ b/docs/day3/objectstore.rst @@ -21,4 +21,12 @@ To enable object storage locations, you need to follow three steps: 3. Configure Dataverse to make use of it. See :doc:`/day1/config` for details on how to create a configuration. -.. todo:: Describe ``personas/demo-integrate-minio`` example here. + +Minio Example Demo +------------------ +In the :tree:`Minio Integration Demo ` you can +find a very basic example how to deploy a simple Minio service to your cluster +plus patching the Dataverse deployment to include the S3 credentials from +the ``Secret``. + +Simply deploy with ``kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo-integrate-minio`` From 3246cc196e56174edc0a2b825fea92ae7fb39733 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Tue, 25 Aug 2020 16:40:26 +0200 Subject: [PATCH 27/47] Add hints about integration external services in getting started docs. --- docs/get-started/index.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/get-started/index.rst b/docs/get-started/index.rst index 33d1d798..1b08c839 100644 --- a/docs/get-started/index.rst +++ b/docs/get-started/index.rst @@ -176,3 +176,7 @@ tools. Previewers, data analysis, data capturing and many more await you. Currently, none of these are supported or maintained by this project, although this is a mid-term goal. If you feel a need, raise an issue. You are most welcome to contribute. + +Apart from external tools, Dataverse can be integrated with :doc:`external +authentication ` systems and :doc:`object storage `, +which is supported by this project. From c973aa9e5e3f545db9ba74caf38d5656bef3cd71 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 10:16:24 +0200 Subject: [PATCH 28/47] Update to Sphinx 3.2, update dependencies. --- docs/requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 9c5f788b..2497a0f7 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,6 +1,6 @@ -sphinx==1.8.5 -sphinxcontrib-plantuml==0.17.1 +sphinx==3.2.1 +sphinxcontrib-plantuml==0.18 sphinx_materialdesign_theme==0.1.11 recommonmark==0.6.0 -sphinxcontrib-contentui==0.2.3 -sphinxcontrib-images==0.8.0 +sphinxcontrib-contentui==0.2.5 +sphinxcontrib-images==0.9.2 From bca4ce694987f4d4459fb3dd67992e7864d18695 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 11:17:45 +0200 Subject: [PATCH 29/47] Make README shorter and preciser. --- README.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index a7ec8f3a..bfd4587b 100644 --- a/README.rst +++ b/README.rst @@ -11,18 +11,17 @@ Deploying, Running and Using Dataverse on Kubernetes |Docs badge| |IRC badge| -This community-supported project aims to provide simple to re-use Kubernetes -objects on how to run Dataverse on a Kubernetes cluster. +This community-supported project aims at offering a new way to deploy, run and +maintain a Dataverse installation for any purpose on any kind of Kubernetes-based +cloud infrastructure. -It aims at day-1 deployments and day-2 operations. +You can use this on your laptop, in your on-prem datacentre or public cloud. +With the power of `Kubernetes `_, many scenarios are possible. * Documentation: https://dataverse-k8s.rtfd.io -* Support: https://github.com/IQSS/dataverse-kubernetes/issues -* Roadmap: https://dataverse-k8s.rtfd.io/en/latest/roadmap.html +* Support and new ideas: https://github.com/IQSS/dataverse-kubernetes/issues -If you would like to contribute, you are most welcome. Head over to the -`contribution guide `_ -for details. +If you would like to contribute, you are most welcome. This project follows the same branching strategy as the upstream Dataverse project, using a ``release`` branch for stable releases plus a ``develop`` From cb6c23ad85441c37dc8eb4d44dc6fe05b576edf8 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 11:19:28 +0200 Subject: [PATCH 30/47] Move get-started to quickstart --- .../demo/img/dataverse-dataversedemo.png | Bin .../demo/img/dataverse-localhost-8080.png | Bin .../demo/img/k3s-deploy.png | Bin .../demo/img/k3s-done.png | Bin .../demo/img/k3s-setup.png | Bin .../demo/img/k3s-wait.png | Bin .../demo/img/minikube-deploy.png | Bin .../demo/img/minikube-done.png | Bin .../demo/img/minikube-ingress.png | Bin .../demo/img/minikube-portfwd-8080.png | Bin .../demo/img/minikube-setup.png | Bin docs/{get-started => quickstart}/demo/k3s.rst | 0 docs/{get-started => quickstart}/demo/minikube.rst | 2 +- docs/{get-started => quickstart}/index.rst | 6 +++--- 14 files changed, 4 insertions(+), 4 deletions(-) rename docs/{get-started => quickstart}/demo/img/dataverse-dataversedemo.png (100%) rename docs/{get-started => quickstart}/demo/img/dataverse-localhost-8080.png (100%) rename docs/{get-started => quickstart}/demo/img/k3s-deploy.png (100%) rename docs/{get-started => quickstart}/demo/img/k3s-done.png (100%) rename docs/{get-started => quickstart}/demo/img/k3s-setup.png (100%) rename docs/{get-started => quickstart}/demo/img/k3s-wait.png (100%) rename docs/{get-started => quickstart}/demo/img/minikube-deploy.png (100%) rename docs/{get-started => quickstart}/demo/img/minikube-done.png (100%) rename docs/{get-started => quickstart}/demo/img/minikube-ingress.png (100%) rename docs/{get-started => quickstart}/demo/img/minikube-portfwd-8080.png (100%) rename docs/{get-started => quickstart}/demo/img/minikube-setup.png (100%) rename docs/{get-started => quickstart}/demo/k3s.rst (100%) rename docs/{get-started => quickstart}/demo/minikube.rst (99%) rename docs/{get-started => quickstart}/index.rst (99%) diff --git a/docs/get-started/demo/img/dataverse-dataversedemo.png b/docs/quickstart/demo/img/dataverse-dataversedemo.png similarity index 100% rename from docs/get-started/demo/img/dataverse-dataversedemo.png rename to docs/quickstart/demo/img/dataverse-dataversedemo.png diff --git a/docs/get-started/demo/img/dataverse-localhost-8080.png b/docs/quickstart/demo/img/dataverse-localhost-8080.png similarity index 100% rename from docs/get-started/demo/img/dataverse-localhost-8080.png rename to docs/quickstart/demo/img/dataverse-localhost-8080.png diff --git a/docs/get-started/demo/img/k3s-deploy.png b/docs/quickstart/demo/img/k3s-deploy.png similarity index 100% rename from docs/get-started/demo/img/k3s-deploy.png rename to docs/quickstart/demo/img/k3s-deploy.png diff --git a/docs/get-started/demo/img/k3s-done.png b/docs/quickstart/demo/img/k3s-done.png similarity index 100% rename from docs/get-started/demo/img/k3s-done.png rename to docs/quickstart/demo/img/k3s-done.png diff --git a/docs/get-started/demo/img/k3s-setup.png b/docs/quickstart/demo/img/k3s-setup.png similarity index 100% rename from docs/get-started/demo/img/k3s-setup.png rename to docs/quickstart/demo/img/k3s-setup.png diff --git a/docs/get-started/demo/img/k3s-wait.png b/docs/quickstart/demo/img/k3s-wait.png similarity index 100% rename from docs/get-started/demo/img/k3s-wait.png rename to docs/quickstart/demo/img/k3s-wait.png diff --git a/docs/get-started/demo/img/minikube-deploy.png b/docs/quickstart/demo/img/minikube-deploy.png similarity index 100% rename from docs/get-started/demo/img/minikube-deploy.png rename to docs/quickstart/demo/img/minikube-deploy.png diff --git a/docs/get-started/demo/img/minikube-done.png b/docs/quickstart/demo/img/minikube-done.png similarity index 100% rename from docs/get-started/demo/img/minikube-done.png rename to docs/quickstart/demo/img/minikube-done.png diff --git a/docs/get-started/demo/img/minikube-ingress.png b/docs/quickstart/demo/img/minikube-ingress.png similarity index 100% rename from docs/get-started/demo/img/minikube-ingress.png rename to docs/quickstart/demo/img/minikube-ingress.png diff --git a/docs/get-started/demo/img/minikube-portfwd-8080.png b/docs/quickstart/demo/img/minikube-portfwd-8080.png similarity index 100% rename from docs/get-started/demo/img/minikube-portfwd-8080.png rename to docs/quickstart/demo/img/minikube-portfwd-8080.png diff --git a/docs/get-started/demo/img/minikube-setup.png b/docs/quickstart/demo/img/minikube-setup.png similarity index 100% rename from docs/get-started/demo/img/minikube-setup.png rename to docs/quickstart/demo/img/minikube-setup.png diff --git a/docs/get-started/demo/k3s.rst b/docs/quickstart/demo/k3s.rst similarity index 100% rename from docs/get-started/demo/k3s.rst rename to docs/quickstart/demo/k3s.rst diff --git a/docs/get-started/demo/minikube.rst b/docs/quickstart/demo/minikube.rst similarity index 99% rename from docs/get-started/demo/minikube.rst rename to docs/quickstart/demo/minikube.rst index da96ee04..56efc7ae 100644 --- a/docs/get-started/demo/minikube.rst +++ b/docs/quickstart/demo/minikube.rst @@ -69,7 +69,7 @@ Add the `Ingress` IP address to your `/etc/hosts`: Take a note of the IP address (it might take a while till it appears, try again) and add it to ``/etc/hosts``, replacing ``XXX.XXX.XXX.XXX`` with it: -.. code-block:: hosts +.. code-block:: XXX.XXX.XXX.XXX dataverse.demo diff --git a/docs/get-started/index.rst b/docs/quickstart/index.rst similarity index 99% rename from docs/get-started/index.rst rename to docs/quickstart/index.rst index 1b08c839..b7009a1f 100644 --- a/docs/get-started/index.rst +++ b/docs/quickstart/index.rst @@ -1,6 +1,6 @@ -=============== -Getting started -=============== +================= +Quickstart / Demo +================= .. toctree:: :maxdepth: 2 From 0f039843666bb0a8372541d418498276bbe785be Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 11:20:48 +0200 Subject: [PATCH 31/47] Cleanup guide index page by removing the README include and linking to the different docs. Better describe what this is all about, more extensive than README. --- docs/img/building-blocks.png | Bin 0 -> 71415 bytes docs/img/building-blocks.svg | 552 +++++++++++++++++++++++++++++++++++ docs/index.rst | 46 ++- 3 files changed, 594 insertions(+), 4 deletions(-) create mode 100644 docs/img/building-blocks.png create mode 100644 docs/img/building-blocks.svg diff --git a/docs/img/building-blocks.png b/docs/img/building-blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..7f1c9c30c13d948e6fa2159556e5654f6d115e2d GIT binary patch literal 71415 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 + + + + + + + + + image/svg+xml + + + + + + + + + More tooling(Integrations, Auth, ...) + + + + Images + + + + + + + + + + + + + + + + + + + + + + + + + + DVCLI + DATAVERSE FROM CMDLINE + + + + + + + + + + + Cloud &Container Guide + + + + + K8s Objects + + + + Operator + (tbd) + + + + + + + + + + ComposeSupport + + (tbd) + + + + + + CommunityProject + + + + + + + + + + + + + + diff --git a/docs/index.rst b/docs/index.rst index a7ec1517..f52852ac 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,25 +1,63 @@ +.. warning:: + **tl;dr:** Just :doc:`take me to the quickstart demos `. + ===================================== The Dataverse Cloud & Container Guide ===================================== -.. include:: ../README.rst +This project aims at offering a new way to deploy, run and maintain a Dataverse +installation for any purpose on any kind of Kubernetes-based cloud infrastructure. +You can use it on your laptop, in your on-prem datacentre or public cloud. +With the power of `Kubernetes `_, many scenarios are possible. .. important:: | This is a **community driven and supported project**, unsupported by `IQSS `_, Harvard. - | Current main drivers are `Forschungszentrum Jülich `_ and `DANS KNAW `_. + | Current main driver is `Forschungszentrum Jülich `_. | | If you need help, please :issue:`open an issue ` or find us on `IRC `_ or Twitter. + +.. image:: img/building-blocks.svg + :height: 250px + +Content: what can you do for me? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We provide you with simple to re-use Kubernetes objects as building blocks. +Those help with + +- :doc:`deployments on day 1 `, +- :doc:`operations on day 2 ` and +- :doc:`integrations on day 3 `. + +And if you're into developing Dataverse, we offer an easy to use +:doc:`development setup approach `. + +We're also maintaining the :doc:`container images ` deployments +build upon. + + + +Context: what is Dataverse? +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`The dataverse project `_ describes itself as: + + | Dataverse is an open source web application to share, preserve, cite, explore, + | and analyze research data. It facilitates making data available to others, and + | allows you to replicate others' work more easily. Researchers, journals, data + | authors, publishers, data distributors, and affiliated institutions all receive + | academic credit and web visibility. + + .. toctree:: :maxdepth: 4 :hidden: - get-started/index + quickstart/index day1/index day2/index day3/index images/index development/index - ./roadmap From 756ad24789a7a38b76b13a0415bde0ea8a53ba58 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 11:21:27 +0200 Subject: [PATCH 32/47] Remove unused roadmap page. --- docs/roadmap.rst | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 docs/roadmap.rst diff --git a/docs/roadmap.rst b/docs/roadmap.rst deleted file mode 100644 index 6f8ae51b..00000000 --- a/docs/roadmap.rst +++ /dev/null @@ -1,14 +0,0 @@ -======= -Roadmap -======= - -.. todo:: - This needs yet to be refactored. Goals are missing, a vision is absent. - -- At a later point in time, an [Operator](https://coreos.com/operators/) might be added for even easier usage. - -- The docker images should at some point be moved into the upstream code, - so they can be build and used for development purposes, too. - See also [issue 5292](https://github.com/IQSS/dataverse/issues/5292) on this. - -- This should support testing S3 remote file storage with Minio out of the box. From ee179eec02e43aad02981d3a928b27877d51de27 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 11:22:11 +0200 Subject: [PATCH 33/47] Fix typo in storage docs page. --- docs/day1/storage.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/day1/storage.rst b/docs/day1/storage.rst index 861814b7..2560fbab 100644 --- a/docs/day1/storage.rst +++ b/docs/day1/storage.rst @@ -67,7 +67,7 @@ them on the overlay filesytem of the container is a bad idea. "Local" Data Storage ^^^^^^^^^^^^^^^^^^^^ *Local storage* is any kind of volume mounted into the application container. It -*will look like a local filesystem to the application. +will look like a local filesystem to the application. It might be a ``hostPath`` flavored volume, a Docker volume, a NFS share or even a clustered file system. Plenty of options are available for Kubernetes. From 0c41084a3722d1a4fa5b66b313978dc9969c1303 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 12:58:18 +0200 Subject: [PATCH 34/47] Add presentations to the guide. Closes #162 --- docs/index.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index f52852ac..da148f07 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -51,6 +51,17 @@ Context: what is Dataverse? | academic credit and web visibility. + +Media: where a the stories? +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This project was presented at a few Dataverse related events: + +- Presentation at European Dataverse Workshop 2020, Tromso, https://doi.org/10.7557/5.5427 +- Presentation at Dataverse Community Meeting 2020, Online Conference, https://youtu.be/OTiEkaDc7j8?t=3817 + + + .. toctree:: :maxdepth: 4 :hidden: From 17f59bbd2c047d2804a5799b83fb88283b79d9f9 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 13:39:43 +0200 Subject: [PATCH 35/47] Refactor quickstart to include only the k3s and minikube demo. --- .../img/dataverse-dataversedemo.png | Bin .../img/dataverse-localhost-8080.png | Bin docs/quickstart/{demo => }/img/k3s-deploy.png | Bin docs/quickstart/{demo => }/img/k3s-done.png | Bin docs/quickstart/{demo => }/img/k3s-setup.png | Bin docs/quickstart/{demo => }/img/k3s-wait.png | Bin .../{demo => }/img/minikube-deploy.png | Bin .../{demo => }/img/minikube-done.png | Bin 43144 -> 43144 bytes .../{demo => }/img/minikube-ingress.png | Bin .../{demo => }/img/minikube-portfwd-8080.png | Bin .../{demo => }/img/minikube-setup.png | Bin docs/quickstart/index.rst | 177 +----------------- docs/quickstart/{demo => }/k3s.rst | 3 +- docs/quickstart/{demo => }/minikube.rst | 13 +- 14 files changed, 18 insertions(+), 175 deletions(-) rename docs/quickstart/{demo => }/img/dataverse-dataversedemo.png (100%) rename docs/quickstart/{demo => }/img/dataverse-localhost-8080.png (100%) rename docs/quickstart/{demo => }/img/k3s-deploy.png (100%) rename docs/quickstart/{demo => }/img/k3s-done.png (100%) rename docs/quickstart/{demo => }/img/k3s-setup.png (100%) rename docs/quickstart/{demo => }/img/k3s-wait.png (100%) rename docs/quickstart/{demo => }/img/minikube-deploy.png (100%) rename docs/quickstart/{demo => }/img/minikube-done.png (99%) rename docs/quickstart/{demo => }/img/minikube-ingress.png (100%) rename docs/quickstart/{demo => }/img/minikube-portfwd-8080.png (100%) rename docs/quickstart/{demo => }/img/minikube-setup.png (100%) rename docs/quickstart/{demo => }/k3s.rst (94%) rename docs/quickstart/{demo => }/minikube.rst (88%) diff --git a/docs/quickstart/demo/img/dataverse-dataversedemo.png b/docs/quickstart/img/dataverse-dataversedemo.png similarity index 100% rename from docs/quickstart/demo/img/dataverse-dataversedemo.png rename to docs/quickstart/img/dataverse-dataversedemo.png diff --git a/docs/quickstart/demo/img/dataverse-localhost-8080.png b/docs/quickstart/img/dataverse-localhost-8080.png similarity index 100% rename from docs/quickstart/demo/img/dataverse-localhost-8080.png rename to docs/quickstart/img/dataverse-localhost-8080.png diff --git a/docs/quickstart/demo/img/k3s-deploy.png b/docs/quickstart/img/k3s-deploy.png similarity index 100% rename from docs/quickstart/demo/img/k3s-deploy.png rename to docs/quickstart/img/k3s-deploy.png diff --git a/docs/quickstart/demo/img/k3s-done.png b/docs/quickstart/img/k3s-done.png similarity index 100% rename from docs/quickstart/demo/img/k3s-done.png rename to docs/quickstart/img/k3s-done.png diff --git a/docs/quickstart/demo/img/k3s-setup.png b/docs/quickstart/img/k3s-setup.png similarity index 100% rename from docs/quickstart/demo/img/k3s-setup.png rename to docs/quickstart/img/k3s-setup.png diff --git a/docs/quickstart/demo/img/k3s-wait.png b/docs/quickstart/img/k3s-wait.png similarity index 100% rename from docs/quickstart/demo/img/k3s-wait.png rename to docs/quickstart/img/k3s-wait.png diff --git a/docs/quickstart/demo/img/minikube-deploy.png b/docs/quickstart/img/minikube-deploy.png similarity index 100% rename from docs/quickstart/demo/img/minikube-deploy.png rename to docs/quickstart/img/minikube-deploy.png diff --git a/docs/quickstart/demo/img/minikube-done.png b/docs/quickstart/img/minikube-done.png similarity index 99% rename from docs/quickstart/demo/img/minikube-done.png rename to docs/quickstart/img/minikube-done.png index 1cdac29ddb50eaa62e2270abaa883958549811c8..7dcdc9d88b9a85c4b9e235507bd19397ff753eaa 100644 GIT binary patch delta 27 fcmeCU$kcI>X@h(Ov!S8oW~GQ&elVjcoy`#dgk}hq delta 27 fcmeCU$kcI>X@h(Ov!0Q`W~GQ&elVjcoy`#dgLMdi diff --git a/docs/quickstart/demo/img/minikube-ingress.png b/docs/quickstart/img/minikube-ingress.png similarity index 100% rename from docs/quickstart/demo/img/minikube-ingress.png rename to docs/quickstart/img/minikube-ingress.png diff --git a/docs/quickstart/demo/img/minikube-portfwd-8080.png b/docs/quickstart/img/minikube-portfwd-8080.png similarity index 100% rename from docs/quickstart/demo/img/minikube-portfwd-8080.png rename to docs/quickstart/img/minikube-portfwd-8080.png diff --git a/docs/quickstart/demo/img/minikube-setup.png b/docs/quickstart/img/minikube-setup.png similarity index 100% rename from docs/quickstart/demo/img/minikube-setup.png rename to docs/quickstart/img/minikube-setup.png diff --git a/docs/quickstart/index.rst b/docs/quickstart/index.rst index b7009a1f..a647d756 100644 --- a/docs/quickstart/index.rst +++ b/docs/quickstart/index.rst @@ -6,177 +6,16 @@ Quickstart / Demo :maxdepth: 2 :hidden: - demo/k3s - demo/minikube - -`The dataverse project `_ describes itself as: - - | Dataverse is an open source web application to share, preserve, cite, explore, - | and analyze research data. It facilitates making data available to others, and - | allows you to replicate others' work more easily. Researchers, journals, data - | authors, publishers, data distributors, and affiliated institutions all receive - | academic credit and web visibility. - ------------------------------------- -Introduction: what's this all about? ------------------------------------- -This project aims at offering a new way to deploy, run and maintain a Dataverse -installation for any purpose on any kind of Kubernetes-based cloud infrastructure. - -You can use this on your laptop, in your on-prem datacentre or public cloud. -With the power of `Kubernetes `_, many scenarios are possible. - -.. tip:: - - | **tl;dr...** - | Quick'n'dirty demo persona on naked cluster [1]_: - - .. code-block:: shell - - kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo - - Wait. Regularly check logs and pods. Login with ``dataverseAdmin:admin1``. - - .. [1] *Your mileage may vary due to storage classes. You really should look at the* :ref:`demos ` *below.* - - - - - - ----------------------------------- -Prerequisites: First things first. ----------------------------------- - -Before you start deploying, make sure to look at the following checklist: - -| **1. Think first** - -If you never touched a commandline, never thought about why using cloud -infrastructure might be a good idea: maybe you should stick with the old, -but paved and solid ways of installing complex applications like Dataverse. - -Keen to learn new technology? Be part of the future? Want to streamline -CI/CD and your application? *Continue*. - -| **2. Install tools** - -You will at least need: - -- `kubectl `_, at least version 1.14 -- `git `_ (or another VCS) - -Depending on your use-case and targeted environment that might be just it. -If something else is necessary, it'll be documented in its respective documentation part. - -| **3. Grasp some knowledge** - -If you never used Kubernetes, but want to deploy to production, you definitely -should be reading some docs first. Some starting points: - -- https://kubernetes.io/docs/tutorials/kubernetes-basics/ -- https://ramitsurana.github.io/awesome-kubernetes -- https://kubernetes-on-aws.readthedocs.io/en/latest/admin-guide/kubernetes-in-production.html - -| **4. Grab a cluster** - -You'll need a running and fully configured Kubernetes cluster. - -- Local options: - - - `k3s `_ - - `minikube `_ - - `microk8s `_ - - `kind `_ - -- Deploy your own (production) cluster. Many tools to choose from. Examples: - - - `kops `_ - - `kubespray `_ - -- Use a hosted solution. Some example services at - - - Google: `GKE `_ - - Microsoft: `Azure AKS `_ - - Amazon: `AWS EKS `_ - - RedHat: `OpenShift `_ - -| **5. Choose persistent identifiers** - -When you want to register datasets and/or files in your deployment to -DataCite, EZID or similar, you will need active accounts. Be sure to have -access credentials around. As an alternative, you might want to use the FAKE provider. - -.. seealso:: - - For more information on Dataverses supported providers: - - - `Installation Guide: Persistent Identifiers and Publishing Datasets `_ - - `Installation Guide: Configuration Option :DoiProvider `_ - - - - - ---------------------------------------------- -Use Cases: What installation persona are you? ---------------------------------------------- + k3s + minikube .. _demos: -1. Demo time! -------------- -Demos provide showcases what Dataverse can do for you. Currently pre-packaged: - -- Local - - - Using ``minikube``, see :doc:`demo/minikube` - - Using ``k3s``, see :doc:`demo/k3s` - -- Cloud-based - - - Using ``kops`` on Amazon EC2 VMs, see :doc:`demo/aws-kops` - -2. Developing is my thing -------------------------- - -There is an entire section in this guide dealing with how to use this project -for developing Dataverse, run development snapshots for tech demos, etc. - -Please go to :doc:`development docs here `. - -3. Gimme the *production* stuff ----------------------------------- - -.. todo:: - This needs yet to be refactored. - -You should make yourself familiar with a series of documentation articles, linked below: - -* [Container images](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/images.md) -* [Persistance storage](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/storage.md) -* [Detailed insight into inner workings](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/how-it-works.md) -* [Using Kubernetes descriptors from this project](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/reuse.md) -* [Configuration of Dataverse](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/config.md) -* [Secrets usage](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/secrets.md) -* [(Custom) Metadata Blocks](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/metadata.md) -* [Maintenance Jobs and Little Helpers](https://github.com/IQSS/dataverse-kubernetes/blob/master/docs/little-helpers.md) - -Please be aware that this project currently only offers images and support -for basic usage. Integrations are not yet part of this, but may be added as needed. -See also relevant docs within Dataverse guides and upstream projects. - -4. Integrate yourself! ----------------------- -One of the true superpowers of Dataverse is its ability to integrate with external -tools. Previewers, data analysis, data capturing and many more await you. - -.. hint:: +Our quick to start demos provide showcases what Dataverse can do for you. +Currently pre-packaged to be run on your local machine: - Currently, none of these are supported or maintained by this project, although - this is a mid-term goal. If you feel a need, raise an issue. You are most - welcome to contribute. +- Using ``minikube``, see :doc:`minikube` +- Using ``k3s``, see :doc:`k3s` -Apart from external tools, Dataverse can be integrated with :doc:`external -authentication ` systems and :doc:`object storage `, -which is supported by this project. +:ref:`day3/objectstore:Minio Example Demo` bases on these, but includes +integrating an S3 compatible object store, too. diff --git a/docs/quickstart/demo/k3s.rst b/docs/quickstart/k3s.rst similarity index 94% rename from docs/quickstart/demo/k3s.rst rename to docs/quickstart/k3s.rst index 59296043..9c35f47d 100644 --- a/docs/quickstart/demo/k3s.rst +++ b/docs/quickstart/k3s.rst @@ -52,7 +52,8 @@ Let's get ready to Dataverse... Please be aware that the *k3s.io* persona is using `Kustomize `_ to re-use the provided descriptors, but suited for usage with K3s. - Please ensure having *kubectl* v1.14 or later installed as described in :doc:`/get-started/index`. + Please ensure having *kubectl* v1.14 or later installed or follow the + `kubectl installation docs `_. Now start to deploy Dataverse plus any necessary services and bootstrap via Kustomize: diff --git a/docs/quickstart/demo/minikube.rst b/docs/quickstart/minikube.rst similarity index 88% rename from docs/quickstart/demo/minikube.rst rename to docs/quickstart/minikube.rst index 56efc7ae..7dd6728f 100644 --- a/docs/quickstart/demo/minikube.rst +++ b/docs/quickstart/minikube.rst @@ -16,13 +16,13 @@ Booting your *minikube* K8s cluster: .. code-block:: shell - minikube start --memory=4096 + minikube start --memory 6144 --cpus 4 --disk-size 30g .. image:: img/minikube-setup.png .. important:: - Please provide at least 4 GB of RAM for the Minikube VM, as Dataverse will - use **a lot** of RAM during deployment and at least 1024 MB when idle. + Please provide at least 6 GB of RAM for the Minikube VM, as Dataverse will + use **a lot** of RAM (see :doc:`/day1/resources`). Remember: this is a VM, so you should have at least 8 GB available in your hardware. .. note:: @@ -37,7 +37,7 @@ its ready) to create a demo: .. code-block:: shell - kubectl apply -k github.com/IQSS/dataverse-kubernetes/personas/demo-minikube + minikube kubectl -- apply -k github.com/IQSS/dataverse-kubernetes/personas/demo-minikube .. image:: img/minikube-deploy.png @@ -64,7 +64,7 @@ Add the `Ingress` IP address to your `/etc/hosts`: minikube addons enable ingress # wait for about 1 minute... - kubectl get ingress + minikube kubectl -- get ingress Take a note of the IP address (it might take a while till it appears, try again) and add it to ``/etc/hosts``, replacing ``XXX.XXX.XXX.XXX`` with it: @@ -102,6 +102,9 @@ or for other reasons, you can always use the ``kubectl`` builtin reverse proxy: This command has the advantage to work in all cases, remotely or not, as long as you have access to the K8s API server. + Please ensure having *kubectl* v1.14 or later installed or follow the + `kubectl installation docs `_. + Now access your freshly baked Dataverse demo via your browser at http://localhost:8080. .. image:: img/dataverse-localhost-8080.png From 75374e9bad6da9d5ab4b1b934440a26348d82132 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 13:58:58 +0200 Subject: [PATCH 36/47] Refactor some references to the quickstart guides and add some bits about k3d. --- docs/day1/secrets.rst | 9 +++++---- docs/development/index.rst | 9 +++++---- docs/development/prepare.rst | 16 +++++++++------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/day1/secrets.rst b/docs/day1/secrets.rst index f9bdc8fd..9da669d0 100644 --- a/docs/day1/secrets.rst +++ b/docs/day1/secrets.rst @@ -93,11 +93,12 @@ Example: Admin account password ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The password for the superadmin account ``dataverseAdmin`` defaults to **admin1** -when you install (precise: bootstrap) Dataverse on Kubernetes using the -:ref:`demos persona `. +when you install (precise: bootstrap) Dataverse on Kubernetes running the +:doc:`/quickstart/index`. -Create a ``Secret`` first (or use some other way to get the password into the file). -(For a complete ``Secret`` example, have a look at ``/personas/demo/secrets.yaml``) +To use a different initial password, create a ``Secret`` (or use some other way +to get the password into the file). (For a complete ``Secret`` example, have a +look at ``/personas/demo/secrets.yaml``) .. code-block:: yaml diff --git a/docs/development/index.rst b/docs/development/index.rst index a0de9107..de17fb82 100644 --- a/docs/development/index.rst +++ b/docs/development/index.rst @@ -3,9 +3,9 @@ This section is primarily targeted at people developing the Dataverse application on a Kubernetes platform, run CI jobs or similar. -================= -Development usage -================= +=========================== +Dataverse Development Usage +=========================== Images on Docker Hub are meant for production usage or quick demos. When developing Dataverse, testing a new feature not yet shipped in a release or @@ -60,9 +60,10 @@ will access your cluster. Your options: 1. When using ``skaffold dev`` (see below!), you can add ``--port-forward``. See also `port forward docs `_. This is currently not possible with ``run`` mode. -2. When using Minikube, see :ref:`get-started/demo/minikube:Make Dataverse reachable via browser` +2. When using Minikube, see :ref:`quickstart/minikube:Make Dataverse reachable via browser` 3. When using KinD, easiest way forward is ``kubectl port-forward``. ``Ingress`` is also possible, see `upstream doc `_. +4. When using k3d, easiest way to go is by `exposing the ingress `_ Example workflow for local development ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/development/prepare.rst b/docs/development/prepare.rst index e6a89843..6b242492 100644 --- a/docs/development/prepare.rst +++ b/docs/development/prepare.rst @@ -7,19 +7,17 @@ Install Toolchain For efficient workflows, tools make life easier. Please install: -1. `skaffold`_, v1.7.0 +1. `skaffold`_ 2. `kustomize`_, v2.0.3 (same as in ``kubectl``, necessary as long as `this issue `_ hasn't been resolved) +3. `kubectl`_ When you opt for using a local cluster (see below), add: 1. `minikube`_ or -2. `kind`_, v0.7.0 plus `Docker `_ - -.. important:: - - The tools mentioned in :doc:`/get-started/index` are obligatory. +2. `kind`_ plus `Docker`_ +3. `k3d`_, using `k3s`_ plus `Docker`_ .. tip:: @@ -58,7 +56,7 @@ Skaffold docs, search via Google, etc. Again: *PRs welcome.* Minikube '''''''' -Please follow :ref:`get-started/demo/minikube:Start with setup of *minikube* VM` +Please follow :ref:`quickstart/minikube:Start with setup of *minikube* VM` to create your cluster. No need to deploy yet, we are just preparing for now. **K**\ ubernetes **IN** **D**\ ocker ("KinD") @@ -179,5 +177,9 @@ Example: Switch to feature branch in (your) fork .. _skaffold: https://skaffold.dev/docs/getting-started/#installing-skaffold .. _kustomize: https://github.com/kubernetes-sigs/kustomize/blob/master/docs/INSTALL.md +.. _kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl .. _kind: https://kind.sigs.k8s.io/docs/user/quick-start .. _minikube: https://kubernetes.io/docs/setup/learning-environment/minikube +.. _k3s: https://k3s.io +.. _k3d: https://k3d.io +.. _Docker: https://docs.docker.com/install From 76fec65f9780a6797aee417cf3f9a59e003d694b Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 14:00:12 +0200 Subject: [PATCH 37/47] Make integrations docs start page a bit easier to comprehend --- docs/day3/index.rst | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/day3/index.rst b/docs/day3/index.rst index 6a53df9b..f4c5ff5d 100644 --- a/docs/day3/index.rst +++ b/docs/day3/index.rst @@ -2,9 +2,19 @@ Day 3 - Integrations ==================== -This section is about getting fancy. Day 1 and day 2 operations are mostly -about covering the pure basics, while the true power of Dataverse unleashes -with its fabulous integrations of and in other tools. +This section is about getting fancy. :doc:`Day 1 ` and :doc:`day 2 +` operations are mostly about covering the pure basics, while the +true power of Dataverse unleashes with its fabulous integrations of and in other +tools. Previewers, data analysis, data capturing and many more await you. + +.. hint:: + + Currently, none of these are supported or maintained by this project, although + this is a mid-term goal. If you feel a need, raise an issue. You are most + welcome to contribute. + +Apart from external tools, the following provides a list of integrations +supported by this project: .. toctree:: :maxdepth: 2 From b5108d40973924ae415b60918b5fbd4546cebfe5 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 17:53:26 +0200 Subject: [PATCH 38/47] Mayor refactoring of day 1 -deployment- docs page with checklist. --- docs/day1/img/skeleton-tree.png | Bin 0 -> 29457 bytes docs/day1/index.rst | 153 +++++++++++++++++++++++++++++++- 2 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 docs/day1/img/skeleton-tree.png diff --git a/docs/day1/img/skeleton-tree.png b/docs/day1/img/skeleton-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..ae27b545c18fe962d7441f66bd0aafbef37f4568 GIT binary patch literal 29457 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 literal 0 HcmV?d00001 diff --git a/docs/day1/index.rst b/docs/day1/index.rst index fc8afb11..cf4f8188 100644 --- a/docs/day1/index.rst +++ b/docs/day1/index.rst @@ -7,9 +7,158 @@ Day 1 - Deployment :caption: Contents: :hidden: - ./init-deploy - ./job-bootstrap ./config ./secrets ./resources ./storage + ./init-deploy + ./job-bootstrap + +Once you start building your own installation beyond ephemeral demo or +development purposes, you should take some time to prepare and successfully +roll out your deployment. + +--------------------------- +Guided Deployment Checklist +--------------------------- + +We provide you with this little checklist of topics and aspects to consider +while preparing your setup. + +1. Pick your poison +------------------- + +If you never touched a commandline, never thought about why using cloud +infrastructure might be a good idea: maybe you should stick with the old, +but paved and solid ways of installing complex applications like Dataverse. + +Keen to learn new technology? Be part of the future? Want to streamline +CI/CD and your application? *Continue*. + + + +2. Install necessary tools +-------------------------- + +You will at least need: + +- | `kubectl`_, at least version 1.14 + | This will be your main tool for all operations in your installation. +- | `git`_ (or another VCS) + | Your tool of choice to do revision control for your deployment objects. + Using such tools is *lege artis*. + +Depending on your use-case and targeted environment that might be just it. +If something else is necessary, it'll be documented in its respective documentation part. + +.. hint:: + Please be aware that this project relies on the use of `Kustomize `_ + and does **not** provide a `Helm Chart `_ (very different + templated approach) **nor** an `Operator `_ (to be done + in the future, see :issue:`182`). Pull requests welcome, please get in touch. + + +3. Grasp some knowledge +----------------------- + +If you never used Kubernetes before, but want to deploy to production, you +definitely should be reading some docs first. Some starting points: + +- https://kubernetes.io/docs/tutorials/kubernetes-basics/ +- https://ramitsurana.github.io/awesome-kubernetes +- https://kubernetes-on-aws.readthedocs.io/en/latest/admin-guide/kubernetes-in-production.html + + + +4. Grab a cluster +----------------- + +You'll need a running and fully configured Kubernetes cluster. + +- | Local options: + | These aren't necessarily meant for production, but might serve you well for + | testing and maybe staging environments. + + - `k3s `_ + - `minikube `_ + - `microk8s `_ + - `kind `_ + +- Deploy your own (production) cluster. Many tools to choose from. Examples: + + - `k3s `_ (+1 for small installations) + - `kops `_ + - `kubespray `_ + - `Rancher `_ + - `VMWare vSphere 7+ `_ + +- Use a managed solution to avoid maintenance burden for the infrastructure. + + Many universities and research institutes already offer managed Kubernetes + clusters for scientific use. + + Some examples by commercial companies: + + - Google: `GKE `_ + - Microsoft: `Azure AKS `_ + - Amazon: `AWS EKS `_ + - RedHat: `OpenShift `_ + + + + + +5. Choose persistent identifiers +-------------------------------- + +When you want to register datasets and/or files in your deployment to +DataCite, EZID or similar, you will need active accounts. Be sure to have +access credentials around. As an alternative, you might want to use the FAKE provider. + +.. seealso:: + + For more information on Dataverses supported providers: + + - `Installation Guide: Persistent Identifiers and Publishing Datasets `_ + - `Installation Guide: Configuration Option :DoiProvider `_ + + + +6. Build bases and environment overlays +--------------------------------------- + +Create an empty repository for your Kubernetes files and add a base layout. +A skeleton is available for you convenience to have a copy-paste starter +in ``personas/prod-skel``: + +.. image:: img/skeleton-tree.png + +You should make a copy of env1 for both your production and testing environment. +Depending on your installation, it might make sense to create your own base. + +.. tip:: + The skeleton already provides and example how to add Minio as S3 object store + and add a custom SSL termination endpoint, but lacks an ``Ingress`` object. + All of this needs to be adapted in the next step, depending on your cluster + and necessities. + +7. Configure and deploy +----------------------- + +You now need to change all :doc:`config`, :doc:`limits `, +:doc:`storage classes `, etc. depending on your particular deployment. + +Make sure to create all the :doc:`secrets` and match names between them. + +Once you're done, DEPLOY! :-) + +.. code-block:: shell + + kubectl apply -k envs/env1 + +When deployment is ready, you have to run the one-time :doc:`job-bootstrap`. + + + +.. _kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl +.. _git: https://git-scm.com/downloads From 6c3b44a234fe6bd86f3b056ddb288cea771f0e41 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 17:53:46 +0200 Subject: [PATCH 39/47] Adding a production skeleton as a persona --- .../bases/minio-standalone/deployment.yaml | 91 +++++++++++++++++++ .../bases/minio-standalone/kustomization.yaml | 7 ++ .../prod-skel/bases/minio-standalone/pvc.yaml | 13 +++ .../prod-skel/bases/minio-standalone/svc.yaml | 16 ++++ personas/prod-skel/envs/env1/config.yaml | 44 +++++++++ .../prod-skel/envs/env1/db/kustomization.yaml | 10 ++ .../prod-skel/envs/env1/db/patch-limits.yaml | 17 ++++ .../prod-skel/envs/env1/db/patch-pvc.yaml | 10 ++ .../envs/env1/index/kustomization.yaml | 14 +++ .../envs/env1/index/patch-pull-always.yaml | 14 +++ .../prod-skel/envs/env1/index/patch-pvc.yaml | 10 ++ .../prod-skel/envs/env1/kustomization.yaml | 14 +++ personas/prod-skel/envs/env1/namespace.yaml | 6 ++ .../envs/env1/store/kustomization.yaml | 10 ++ .../prod-skel/envs/env1/store/patch-pvc.yaml | 10 ++ .../envs/env1/webapp/kustomization.yaml | 20 ++++ .../envs/env1/webapp/patch-limits.yaml | 15 +++ .../envs/env1/webapp/patch-pod-s3-secret.yaml | 18 ++++ .../envs/env1/webapp/patch-pull-always.yaml | 11 +++ .../prod-skel/envs/env1/webapp/patch-pvc.yaml | 20 ++++ .../envs/env1/webapp/sidecars/ssl/config.yaml | 73 +++++++++++++++ .../envs/env1/webapp/sidecars/ssl/patch.yaml | 35 +++++++ 22 files changed, 478 insertions(+) create mode 100644 personas/prod-skel/bases/minio-standalone/deployment.yaml create mode 100644 personas/prod-skel/bases/minio-standalone/kustomization.yaml create mode 100644 personas/prod-skel/bases/minio-standalone/pvc.yaml create mode 100644 personas/prod-skel/bases/minio-standalone/svc.yaml create mode 100644 personas/prod-skel/envs/env1/config.yaml create mode 100644 personas/prod-skel/envs/env1/db/kustomization.yaml create mode 100644 personas/prod-skel/envs/env1/db/patch-limits.yaml create mode 100644 personas/prod-skel/envs/env1/db/patch-pvc.yaml create mode 100644 personas/prod-skel/envs/env1/index/kustomization.yaml create mode 100644 personas/prod-skel/envs/env1/index/patch-pull-always.yaml create mode 100644 personas/prod-skel/envs/env1/index/patch-pvc.yaml create mode 100644 personas/prod-skel/envs/env1/kustomization.yaml create mode 100644 personas/prod-skel/envs/env1/namespace.yaml create mode 100644 personas/prod-skel/envs/env1/store/kustomization.yaml create mode 100644 personas/prod-skel/envs/env1/store/patch-pvc.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/kustomization.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/patch-limits.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/patch-pod-s3-secret.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/patch-pull-always.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/patch-pvc.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/sidecars/ssl/config.yaml create mode 100644 personas/prod-skel/envs/env1/webapp/sidecars/ssl/patch.yaml diff --git a/personas/prod-skel/bases/minio-standalone/deployment.yaml b/personas/prod-skel/bases/minio-standalone/deployment.yaml new file mode 100644 index 00000000..9bbe4d34 --- /dev/null +++ b/personas/prod-skel/bases/minio-standalone/deployment.yaml @@ -0,0 +1,91 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: minio + labels: + app.kubernetes.io/name: minio + app.kubernetes.io/version: "latest" + app.kubernetes.io/component: storage + app.kubernetes.io/part-of: dataverse + app.kubernetes.io/managed-by: kubectl +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: minio + app.kubernetes.io/part-of: dataverse + revisionHistoryLimit: 1 + strategy: + # Choosen as upstream example uses this. Might be a thing of locks... + type: Recreate + template: + metadata: + labels: + app.kubernetes.io/name: minio + app.kubernetes.io/part-of: dataverse + annotations: {} + spec: + containers: + - name: minio + image: minio/minio + args: ["server", "/data"] + resources: + requests: + memory: "2Gi" + cpu: "0.5" + limits: + memory: "4Gi" + cpu: "2" + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + env: + # MinIO access key and secret key + - name: MINIO_ACCESS_KEY_FILE + value: minio/access-key + - name: MINIO_SECRET_KEY_FILE + value: minio/secret-key + volumeMounts: + - name: data + mountPath: /data + - name: minio-secrets + mountPath: "/run/secrets/minio" + readOnly: true + ports: + - containerPort: 9000 + name: service + readinessProbe: + httpGet: + path: /minio/health/ready + port: service + initialDelaySeconds: 30 + periodSeconds: 30 + livenessProbe: + httpGet: + path: /minio/health/live + port: service + initialDelaySeconds: 30 + periodSeconds: 30 + securityContext: + fsGroup: 1000 + initContainers: + - name: perm-and-bucket + image: giantswarm/tiny-tools + securityContext: + runAsUser: 0 + command: + - sh + - -c + - | + mkdir -p /data/dataverse /data/mdclogs; + chown -c 1000:1000 /data /data/dataverse /data/mdclogs + volumeMounts: + - name: data + mountPath: /data + volumes: + - name: data + persistentVolumeClaim: + claimName: minio + - name: minio-secrets + secret: + secretName: dataverse-s3 diff --git a/personas/prod-skel/bases/minio-standalone/kustomization.yaml b/personas/prod-skel/bases/minio-standalone/kustomization.yaml new file mode 100644 index 00000000..db8781da --- /dev/null +++ b/personas/prod-skel/bases/minio-standalone/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - deployment.yaml + - svc.yaml + - pvc.yaml diff --git a/personas/prod-skel/bases/minio-standalone/pvc.yaml b/personas/prod-skel/bases/minio-standalone/pvc.yaml new file mode 100644 index 00000000..fd2a2850 --- /dev/null +++ b/personas/prod-skel/bases/minio-standalone/pvc.yaml @@ -0,0 +1,13 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: minio + labels: + app: minio +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 80Gi diff --git a/personas/prod-skel/bases/minio-standalone/svc.yaml b/personas/prod-skel/bases/minio-standalone/svc.yaml new file mode 100644 index 00000000..10e7152d --- /dev/null +++ b/personas/prod-skel/bases/minio-standalone/svc.yaml @@ -0,0 +1,16 @@ +--- +kind: Service +apiVersion: v1 +metadata: + name: minio + labels: + app: minio +spec: + ports: + - port: 9000 + name: minio + targetPort: 9000 + protocol: TCP + selector: + app.kubernetes.io/name: minio + app.kubernetes.io/part-of: dataverse diff --git a/personas/prod-skel/envs/env1/config.yaml b/personas/prod-skel/envs/env1/config.yaml new file mode 100644 index 00000000..fd2a81d6 --- /dev/null +++ b/personas/prod-skel/envs/env1/config.yaml @@ -0,0 +1,44 @@ +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: dataverse + labels: + app: dataverse +data: + ### GENERAL SETTINGS + dataverse_fqdn: data-test.example.org + dataverse_siteUrl: https://data-test.example.org + POSTGRES_DATABASE: dataverse + + ### CONTACT SETTINGS + CONTACT_MAIL: rdm@example.org + MAIL_FROMADDRESS: rdm@example.org + db_SystemEmail: Research Data Management Unit Example.org + + ### DOI SETTINGS + doi_baseurlstring: https://mds.test.datacite.org + doi_username: EXAMPLE.ORG + db_DoiProvider: DataCite + db_Protocol: doi + db_Authority: "10.9999999999" + db_Shoulder: EXAMPLE-ORG-TEST/ + + ### FILE STORAGE + dataverse_files_directory: /data + dataverse_files_storage__driver__id: "s3" + dataverse_files_s3__custom__endpoint__url: http://minio:9000 + dataverse_files_s3__bucket__name: dataverse + # required for Minio! + dataverse_files_s3__path__style__access: "true" + + ### INGEST + # deactivate ingest for tabular files + db_TabularIngestSizeLimit: "0" + # allow uploads only < 2GB + db_MaxFileUploadSizeInBytes: "2147483648" + db_FileFixityChecksumAlgorithm: SHA-256 + + ### CUSTOMIZATION + db_StatusMessageHeader: "Test Environment" + db_StatusMessageText: "
This instance is meant for testing, training and experiments. DOIs minted here are not citeable!" diff --git a/personas/prod-skel/envs/env1/db/kustomization.yaml b/personas/prod-skel/envs/env1/db/kustomization.yaml new file mode 100644 index 00000000..97a41f31 --- /dev/null +++ b/personas/prod-skel/envs/env1/db/kustomization.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: + - github.com/IQSS/dataverse-kubernetes/personas/demo/postgresql?ref=v4.20 + +patchesStrategicMerge: + - patch-pvc.yaml + - patch-limits.yaml diff --git a/personas/prod-skel/envs/env1/db/patch-limits.yaml b/personas/prod-skel/envs/env1/db/patch-limits.yaml new file mode 100644 index 00000000..cf0f5fd9 --- /dev/null +++ b/personas/prod-skel/envs/env1/db/patch-limits.yaml @@ -0,0 +1,17 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: postgresql +spec: + template: + spec: + containers: + - name: postgresql + resources: + requests: + memory: "1Gi" + cpu: "0.5" + limits: + memory: "4Gi" + cpu: "2" diff --git a/personas/prod-skel/envs/env1/db/patch-pvc.yaml b/personas/prod-skel/envs/env1/db/patch-pvc.yaml new file mode 100644 index 00000000..d47308d6 --- /dev/null +++ b/personas/prod-skel/envs/env1/db/patch-pvc.yaml @@ -0,0 +1,10 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: postgresql +spec: + resources: + requests: + storage: 30Gi + # storageClassName: pm-local diff --git a/personas/prod-skel/envs/env1/index/kustomization.yaml b/personas/prod-skel/envs/env1/index/kustomization.yaml new file mode 100644 index 00000000..17500a76 --- /dev/null +++ b/personas/prod-skel/envs/env1/index/kustomization.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: + - github.com/IQSS/dataverse-kubernetes/k8s/solr?ref=v4.20 + +images: + - name: iqss/solr-k8s + newTag: "4.20" + +patchesStrategicMerge: + - patch-pvc.yaml + - patch-pull-always.yaml diff --git a/personas/prod-skel/envs/env1/index/patch-pull-always.yaml b/personas/prod-skel/envs/env1/index/patch-pull-always.yaml new file mode 100644 index 00000000..d89991bf --- /dev/null +++ b/personas/prod-skel/envs/env1/index/patch-pull-always.yaml @@ -0,0 +1,14 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: solr +spec: + template: + spec: + containers: + - name: solr + imagePullPolicy: Always + initContainers: + - name: schema-init + imagePullPolicy: Always diff --git a/personas/prod-skel/envs/env1/index/patch-pvc.yaml b/personas/prod-skel/envs/env1/index/patch-pvc.yaml new file mode 100644 index 00000000..e00da555 --- /dev/null +++ b/personas/prod-skel/envs/env1/index/patch-pvc.yaml @@ -0,0 +1,10 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: solr +spec: + resources: + requests: + storage: 60Gi + # storageClassName: pm-local diff --git a/personas/prod-skel/envs/env1/kustomization.yaml b/personas/prod-skel/envs/env1/kustomization.yaml new file mode 100644 index 00000000..c35f2ae1 --- /dev/null +++ b/personas/prod-skel/envs/env1/kustomization.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: dv-test + +bases: + - db + - index + - webapp + +resources: + - namespace.yaml + - config.yaml diff --git a/personas/prod-skel/envs/env1/namespace.yaml b/personas/prod-skel/envs/env1/namespace.yaml new file mode 100644 index 00000000..1489f560 --- /dev/null +++ b/personas/prod-skel/envs/env1/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dv-test + labels: + name: dv-test diff --git a/personas/prod-skel/envs/env1/store/kustomization.yaml b/personas/prod-skel/envs/env1/store/kustomization.yaml new file mode 100644 index 00000000..035ad8aa --- /dev/null +++ b/personas/prod-skel/envs/env1/store/kustomization.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: + - ../../../bases/minio-standalone + + +patchesStrategicMerge: + - patch-pvc.yaml diff --git a/personas/prod-skel/envs/env1/store/patch-pvc.yaml b/personas/prod-skel/envs/env1/store/patch-pvc.yaml new file mode 100644 index 00000000..03931350 --- /dev/null +++ b/personas/prod-skel/envs/env1/store/patch-pvc.yaml @@ -0,0 +1,10 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: minio +spec: + resources: + requests: + storage: 5000Gi + # storageClassName: pm-local diff --git a/personas/prod-skel/envs/env1/webapp/kustomization.yaml b/personas/prod-skel/envs/env1/webapp/kustomization.yaml new file mode 100644 index 00000000..88d21560 --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/kustomization.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: + - github.com/IQSS/dataverse-kubernetes/k8s/dataverse?ref=v4.20 + +images: + - name: iqss/dataverse-k8s + newTag: "v4.20" + +patchesStrategicMerge: + - patch-pvc.yaml + - patch-svc.yaml + - patch-pod-s3-secret.yaml + - patch-pull-always.yaml + - sidecars/ssl/patch.yaml + +resources: + - sidecars/ssl/config.yaml diff --git a/personas/prod-skel/envs/env1/webapp/patch-limits.yaml b/personas/prod-skel/envs/env1/webapp/patch-limits.yaml new file mode 100644 index 00000000..b6d15647 --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/patch-limits.yaml @@ -0,0 +1,15 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: dataverse +spec: + template: + spec: + containers: + - name: dataverse + resources: + requests: + memory: "4Gi" + limits: + memory: "8Gi" diff --git a/personas/prod-skel/envs/env1/webapp/patch-pod-s3-secret.yaml b/personas/prod-skel/envs/env1/webapp/patch-pod-s3-secret.yaml new file mode 100644 index 00000000..2bd3006a --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/patch-pod-s3-secret.yaml @@ -0,0 +1,18 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: dataverse +spec: + template: + spec: + volumes: + - name: s3-secret + secret: + secretName: dataverse-s3 + containers: + - name: dataverse + volumeMounts: + - name: s3-secret + mountPath: "/secrets/s3" + readOnly: true diff --git a/personas/prod-skel/envs/env1/webapp/patch-pull-always.yaml b/personas/prod-skel/envs/env1/webapp/patch-pull-always.yaml new file mode 100644 index 00000000..c85d4bf7 --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/patch-pull-always.yaml @@ -0,0 +1,11 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: dataverse +spec: + template: + spec: + containers: + - name: dataverse + imagePullPolicy: Always diff --git a/personas/prod-skel/envs/env1/webapp/patch-pvc.yaml b/personas/prod-skel/envs/env1/webapp/patch-pvc.yaml new file mode 100644 index 00000000..376ca2cd --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/patch-pvc.yaml @@ -0,0 +1,20 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: dataverse-files +spec: + resources: + requests: + storage: 500Gi + # storageClassName: pm-local +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: dataverse-docroot +spec: + resources: + requests: + storage: 20Gi + # storageClassName: pm-local diff --git a/personas/prod-skel/envs/env1/webapp/sidecars/ssl/config.yaml b/personas/prod-skel/envs/env1/webapp/sidecars/ssl/config.yaml new file mode 100644 index 00000000..8af53bfd --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/sidecars/ssl/config.yaml @@ -0,0 +1,73 @@ +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: ssl-sidecar + labels: + app: dataverse +data: + default.conf: | + # Adapted from these sources: + # https://github.com/pbrumblay/tls-sidecar/blob/master/default.conf + # https://github.com/kubernetes/kubernetes/blob/master/examples/https-nginx/default.conf + # https://www.nginx.com/resources/admin-guide/nginx-tcp-ssl-termination/ + # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ + # https://ssl-config.mozilla.org/#server=nginx&version=1.17.7&config=intermediate&openssl=1.1.1d&hsts=false&ocsp=false&guideline=5.4 + server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + + # allow large body sizes + client_max_body_size 120g; + + # increase client body buffer for performance. + client_body_buffer_size 128k; + + # map these into the nginx container using a volume secret + ssl_certificate /etc/nginx/ssl/tls.crt; + ssl_certificate_key /etc/nginx/ssl/tls.key; + + # intermediate configuration + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; + ssl_prefer_server_ciphers off; + + ssl_session_timeout 1d; + ssl_session_cache shared:MozSSL:10m; # about 40000 sessions + ssl_session_tickets off; + + access_log /dev/stdout; + error_log /dev/stdout info; + + merge_slashes off; + # replace merge_slashes' behavior with "redirect_slashes" + location ~* "//" { + rewrite ^(.*)//(.*)$ $1/$2; + rewrite ^ $uri permanent; + } + + location / { + # proxy to upstream application + proxy_pass http://127.0.0.1:8080; + + # don't use http 1.0 so keepalive enabled by default + proxy_http_version 1.1; + + # prevent client from closing keepalive + proxy_set_header Connection ""; + + # don't need timeouts for process to process communication + # (why complicate things with this MITM proxy? let client timeout) + proxy_send_timeout 86400s; + proxy_read_timeout 86400s; + + # don't write client body to docker file system + proxy_request_buffering off; + } + + location ~ ^/(logos|branding)/ { + root /docroot; + rewrite "^(.*);jsessionid=(.*)$" $1 last; + try_files $uri =404; + } + } diff --git a/personas/prod-skel/envs/env1/webapp/sidecars/ssl/patch.yaml b/personas/prod-skel/envs/env1/webapp/sidecars/ssl/patch.yaml new file mode 100644 index 00000000..21c7735f --- /dev/null +++ b/personas/prod-skel/envs/env1/webapp/sidecars/ssl/patch.yaml @@ -0,0 +1,35 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: dataverse +spec: + template: + spec: + containers: + - name: ssl + image: nginx:1.17-alpine + resources: + requests: + memory: "256Mi" + cpu: "0.25" + limits: + memory: "1024Mi" + cpu: "1" + ports: + - containerPort: 443 + name: https + volumeMounts: + - name: certificates + mountPath: "/etc/nginx/ssl" + - name: config + mountPath: "/etc/nginx/conf.d" + - name: docroot + mountPath: "/docroot" + volumes: + - name: certificates + secret: + secretName: dataverse-certificate + - name: config + configMap: + name: ssl-sidecar From ab2cc3816faad8a242530e4a5d07fd10724ff450 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Wed, 2 Sep 2020 18:03:38 +0200 Subject: [PATCH 40/47] README: use image without absolute GH link --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index bfd4587b..d23e0af1 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,7 @@ Deploying, Running and Using Dataverse on Kubernetes ==================================================== -.. image:: https://raw.githubusercontent.com/IQSS/dataverse-kubernetes/master/docs/img/title-composition.png +.. image:: docs/img/title-composition.png |Dataverse badge| |Validation badge| From 4e0cf5b243b385ea398aaf2b9ed52f4548ac6dfe Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 3 Sep 2020 15:55:16 +0200 Subject: [PATCH 41/47] Add a cloud provider docs page, collecting hints for patching the K8s objects. --- docs/day1/index.rst | 4 +++- docs/day1/provider-hints.rst | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 docs/day1/provider-hints.rst diff --git a/docs/day1/index.rst b/docs/day1/index.rst index cf4f8188..e00470b3 100644 --- a/docs/day1/index.rst +++ b/docs/day1/index.rst @@ -11,6 +11,7 @@ Day 1 - Deployment ./secrets ./resources ./storage + ./provider-hints ./init-deploy ./job-bootstrap @@ -104,7 +105,8 @@ You'll need a running and fully configured Kubernetes cluster. - Amazon: `AWS EKS `_ - RedHat: `OpenShift `_ - + Please note there is an extensible collection of hints for some of these + cloud providers at the :doc:`provider-hints` page. diff --git a/docs/day1/provider-hints.rst b/docs/day1/provider-hints.rst new file mode 100644 index 00000000..3f320b26 --- /dev/null +++ b/docs/day1/provider-hints.rst @@ -0,0 +1,27 @@ +-------------------- +Cloud Provider Hints +-------------------- + +If you want to add some notes about a cloud provider you know, please create +a pull request. Feel free to include files in the ``examples`` directory. + +Microsoft Azure +--------------- + +You might need to patch your ``PersistentVolumeClaim``\ s according to the +`Azure AKS storage docs `_. +This depends on your requirements and should be tested. An example is given below. + +.. code-block:: yaml + :caption: patch-azure-pvc.yaml + + --- + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: XXX + spec: + storageClassName: managed-premium + +Remember that for ``ReadWriteMany`` volumes you have to use a different type of +them, documented as `Azure Files `_. From a963ddc07c4d03aa84f009c241fa0b028896d23c Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 3 Sep 2020 16:10:57 +0200 Subject: [PATCH 42/47] Refactor the bootstrapping and deployment details page. --- ...it-deploy.rst => deploy-behind-scenes.rst} | 23 ++++++------------- docs/day1/index.rst | 12 +++++++--- docs/day1/job-bootstrap.rst | 6 +++++ 3 files changed, 22 insertions(+), 19 deletions(-) rename docs/day1/{init-deploy.rst => deploy-behind-scenes.rst} (63%) diff --git a/docs/day1/init-deploy.rst b/docs/day1/deploy-behind-scenes.rst similarity index 63% rename from docs/day1/init-deploy.rst rename to docs/day1/deploy-behind-scenes.rst index f0e6eacb..8f343ff3 100644 --- a/docs/day1/init-deploy.rst +++ b/docs/day1/deploy-behind-scenes.rst @@ -1,24 +1,15 @@ -================== -Initial Deployment -================== +================= +Behind the Scenes +================= -Please familiarize yourself with the `architecture of Dataverse `_ -if not already done: it helps a lot knowing how things are connected in Dataverse -to also understand using it as a Kubernetes application. - -The below UML sequence diagram shows all necessary steps by "you" (the user activity on the left) -or (preferably) your deployment framework (like Kustomize.io, Helm or similar) -on your behalf for a new deployment of Dataverse. It also explains what happens -in the background on an overview level. +The below UML sequence diagram shows all necessary steps by "you" +(the user activity on the left) or (preferably) your deployment framework +(like Kustomize.io, Helm or similar) on your behalf for a new deployment of +Dataverse. It explains what happens in the background on an overview level. When you are done with the initial deployment, you have to :doc:`bootstrap
` (and :doc:`configure `, which is done during bootstrapping, too). -Maybe you should just read :doc:`/get-started/index` and follow that before going into details. - - .. note:: Choose stable Glassfish 4.1 based images or experimental Payara 5 - based with corresponding image tag. See :doc:`/images/dataverse-k8s` for available tags. - .. uml:: @startuml diff --git a/docs/day1/index.rst b/docs/day1/index.rst index e00470b3..0ae8525c 100644 --- a/docs/day1/index.rst +++ b/docs/day1/index.rst @@ -12,8 +12,8 @@ Day 1 - Deployment ./resources ./storage ./provider-hints - ./init-deploy ./job-bootstrap + ./deploy-behind-scenes Once you start building your own installation beyond ephemeral demo or development purposes, you should take some time to prepare and successfully @@ -69,6 +69,10 @@ definitely should be reading some docs first. Some starting points: - https://ramitsurana.github.io/awesome-kubernetes - https://kubernetes-on-aws.readthedocs.io/en/latest/admin-guide/kubernetes-in-production.html +Please familiarize yourself with the `architecture of Dataverse `_ +if not already done: it helps a lot knowing how things are connected in a complex +application like Dataverse to also understand hosting on Kubernetes. + 4. Grab a cluster @@ -153,14 +157,16 @@ You now need to change all :doc:`config`, :doc:`limits `, Make sure to create all the :doc:`secrets` and match names between them. Once you're done, DEPLOY! :-) +When deployment is ready, you have to run the one-time :doc:`job-bootstrap`. .. code-block:: shell kubectl apply -k envs/env1 - -When deployment is ready, you have to run the one-time :doc:`job-bootstrap`. + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/k8s/dataverse/jobs/bootstrap.yaml +More in detail docs about what happens during the deployment can be found at +:doc:`deploy-behind-scenes`. .. _kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl .. _git: https://git-scm.com/downloads diff --git a/docs/day1/job-bootstrap.rst b/docs/day1/job-bootstrap.rst index a0fe0e2d..26fe3c34 100644 --- a/docs/day1/job-bootstrap.rst +++ b/docs/day1/job-bootstrap.rst @@ -15,6 +15,12 @@ When the very basic configuration has been done, the configuration given in the ``ConfigMap`` will be applied, like you would :ref:`run a configure Kubernetes job `. +To create a bootstrapping job, use ``kubectl``: + +.. code-block:: shell + + kubectl create -f https://gitcdn.link/repo/IQSS/dataverse-kubernetes/release/k8s/dataverse/jobs/bootstrap.yaml + .. uml:: @startuml From 34ea7a83e2407338a6cf8a429fe4e172e5dac561 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 3 Sep 2020 16:14:26 +0200 Subject: [PATCH 43/47] Fix wrong link in bootstrap doc page --- docs/day1/job-bootstrap.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/day1/job-bootstrap.rst b/docs/day1/job-bootstrap.rst index 26fe3c34..38254db4 100644 --- a/docs/day1/job-bootstrap.rst +++ b/docs/day1/job-bootstrap.rst @@ -3,8 +3,9 @@ Bootstrap Job ============= After deploying every components of Dataverse on Kubernetes for the first time -(see :doc:`./init-deploy`), you will need to bootstrap your installation. -That will create a superadmin user, root dataverse and block important API endpoints. +(see the :ref:`deployment step` or more details at +:doc:`deploy-behind-scenes`), you will need to bootstrap your installation. That +will create a superadmin user, root dataverse and block important API endpoints. It will also set the option ``:SolrHostColonPort``, configuring where Dataverse can find the Solr Search index. It will default to ``solr:8983``, but can be From 1b070b0bc45440341ebd67b3aa3fde2bb8225ddb Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 3 Sep 2020 16:25:38 +0200 Subject: [PATCH 44/47] Fix typo and color on start page of docs. #160 --- docs/img/building-blocks.svg | 664 ++++++++++++++++++----------------- docs/index.rst | 4 +- 2 files changed, 335 insertions(+), 333 deletions(-) diff --git a/docs/img/building-blocks.svg b/docs/img/building-blocks.svg index aa034e5f..8e8802d6 100644 --- a/docs/img/building-blocks.svg +++ b/docs/img/building-blocks.svg @@ -8,41 +8,41 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:export-ydpi="200" - inkscape:export-xdpi="200" - inkscape:export-filename="/home/obertuch/Dokumente/slides-dcm2020/img/building-blocks.png" - inkscape:version="1.0 (4035a4fb49, 2020-05-01)" - sodipodi:docname="building-blocks.svg" - id="svg8" - version="1.1" - viewBox="0 0 95.47084 45.38847" + width="95.47084mm" height="45.38847mm" - width="95.47084mm"> + viewBox="0 0 95.47084 45.38847" + version="1.1" + id="svg8" + sodipodi:docname="building-blocks.svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + inkscape:export-filename="/home/obertuch/Dokumente/slides-dcm2020/img/building-blocks.png" + inkscape:export-xdpi="200" + inkscape:export-ydpi="200"> + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="210 : -103.11154 : 1" + inkscape:persp3d-origin="105 : -152.61154 : 1" + id="perspective3511" /> + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.959798" + inkscape:cx="128.10059" + inkscape:cy="119.64782" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + inkscape:snap-midpoints="false" /> @@ -56,496 +56,498 @@ + inkscape:groupmode="layer" + id="layer1"> + height="9.3354168" + width="31.73542" + id="rect2740-3-6" + style="fill:#e0fbfc;fill-opacity:1;stroke:#38435a;stroke-width:0.264583;stroke-opacity:1" /> More toolingMore tooling(Integrations, Auth, ...) + y="127.39716" + x="98.781174" + sodipodi:role="line">(Integrations, Auth, ...) + transform="translate(-7.8677063)" + id="g993"> + width="23.735416" + height="9.3354168" + x="40.474586" + y="110.93587" /> Images + x="50.079987" + y="117.16991" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:WeissenhofRegular;-inkscape-font-specification:'WeissenhofRegular, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Images + transform="translate(-2.0552214)"> + width="7.330543" + height="5" + x="43.799751" + y="113.10358" /> + id="path2836" /> + style="fill:none;stroke:#c65b28;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;stroke:#c65b28;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;stroke:#c65b28;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;stroke:#c65b28;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + cx="44.108898" + cy="113.37046" + r="0.25985861" /> + cx="50.86108" + id="path2913-5" + style="fill:none;stroke:#c65b28;stroke-width:0.25;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + width="31.73542" + height="9.3354168" + x="64.3423" + y="120.27129" /> + transform="matrix(0.12330662,0,0,0.12330662,91.675324,115.75743)" + id="g3064"> + transform="translate(-224.2448,-53.691613)" + id="g877"> + transform="matrix(0.07958225,0,0,0.07958225,35.694385,102.1041)"> + id="Layer_1"> + d="M 245.4,472.9" + class="st1" + inkscape:connector-curvature="0" /> + class="st2" + inkscape:connector-curvature="0" /> + style="stroke-width:1.30707" + id="Layer_2"> + d="m 142.1,258.7 c 0,0 -0.1,0 -0.1,0 v 0 L 120,159.4 C 148,146 167.4,117.4 167.4,84.3 167.4,38.3 130.1,1.1 84.2,1.1 38.3,1.1 1,38.3 1,84.2 c 0,45.9 37.3,83.2 83.2,83.2 1,0 1.9,0 2.9,-0.1 l 21.3,96.1 C 58.4,278.1 22,324.2 22,378.8 22,445.2 75.8,499 142.1,499 c 66.3,0 120.2,-53.8 120.2,-120.2 0,-66.4 -53.8,-120.1 -120.2,-120.1 z M 84.2,142 c -31.9,0 -57.8,-25.9 -57.8,-57.8 0,-31.9 25.9,-57.8 57.8,-57.8 31.9,0 57.8,25.9 57.8,57.8 0,31.9 -25.9,57.8 -57.8,57.8 z m 57.9,323.1 c -47.7,0 -86.3,-38.6 -86.3,-86.3 0,-47.7 38.6,-86.3 86.3,-86.3 47.7,0 86.3,38.6 86.3,86.3 0,47.7 -38.6,86.3 -86.3,86.3 z" + class="st3" + inkscape:connector-curvature="0" /> + id="path540" + inkscape:connector-curvature="0" /> DVCLI + x="80.803192" + id="tspan846" + sodipodi:role="line">DVCLI DATAVERSE FROM CMDLINE + x="56.16193" + id="tspan859" + sodipodi:role="line">DATAVERSE FROM CMDLINE + height="9.3354168" + width="31.735418" + id="rect2740" + style="fill:none;fill-opacity:1;stroke:#38435a;stroke-width:0.264583;stroke-opacity:1" /> + height="7.2252188" + width="21.31333" + inkscape:svg-dpi="96" + preserveAspectRatio="none" + x="37.817928" + y="121.32639" /> + transform="translate(-15.867706)" + id="g1078"> + height="9.3354168" + width="31.73542" + id="rect2740-1-6" + style="fill:#98c1d9;fill-opacity:1;stroke:#38435a;stroke-width:0.264583;stroke-opacity:1" /> + id="g960" + transform="translate(0.9515978,-0.03058929)"> Cloud &Cloud &Container Guide + x="80.665833" + y="118.38585" + style="stroke-width:0.264583">Container Guide + id="path927" /> + height="9.3354168" + width="31.73542" + id="rect2740-3-6-6" + style="fill:#99c24d;fill-opacity:1;stroke:#38435a;stroke-width:0.264583;stroke-opacity:1" /> K8s Objects + y="107.67078" + x="40.856174" + sodipodi:role="line">K8s Objects + xlink:href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjwh LS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoK PHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHht bG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0 cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5l dC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3Nj YXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNzIyLjg0NTciCiAgIGhlaWdo dD0iNzAxLjk2NjM3IgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2 ZXJzaW9uPSIwLjQ4LjQgcjk5MzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImxvZ28uc3ZnIgogICBp bmtzY2FwZTpleHBvcnQtZmlsZW5hbWU9Ii9ob21lL3Rob2NraW4vc3JjL2t1YmVybmV0ZXMvbmV3 LnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ2MC45NTAwMSIKICAgaW5rc2NhcGU6ZXhw b3J0LXlkcGk9IjQ2MC45NTAwMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPHNvZGlw b2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAg ICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5r c2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAg IGlua3NjYXBlOnpvb209IjE2LjE5MDUwOSIKICAgICBpbmtzY2FwZTpjeD0iMjc3LjU2ODUxIgog ICAgIGlua3NjYXBlOmN5PSIxNTcuNTQ0OTQiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9 InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczMDUyIgogICAgIHNob3dncmlkPSJm YWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE1MTkiCiAgICAgaW5rc2NhcGU6d2lu ZG93LWhlaWdodD0iODIyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSI1MSIKICAgICBpbmtzY2Fw ZTp3aW5kb3cteT0iMjUiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBp bmtzY2FwZTpzbmFwLWdsb2JhbD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAg IGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0 LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgog ICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAg ICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQog ICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxs SW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRm OlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAg ICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5z Zm9ybT0idHJhbnNsYXRlKC02LjMyNjA5NDIsLTE3NC43NTI0KSI+CiAgICA8ZwogICAgICAgaWQ9 ImczMDUyIj4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9ImZpbGw6IzMyNmNlNTtmaWxsLW9w YWNpdHk6MTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MDtzdHJva2UtbWl0ZXJsaW1pdDo0 O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICBkPSJtIDM2 NS4zMTI1LDE4NC44MTI1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMTcuOTA2MjUsNC41 MzEyNSBsIC0yNDQuMzQzNzUsMTE2Ljc1IGEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAgMCAtMjUu MjgxMjUsMzEuNDM3NSBMIDE3LjUsNTk5Ljc4MTI1IEEgNDYuNzI0NjIxLDQ2LjM0MjI0NiAwIDAg MCAyMy44NDM3NSw2MzUuMzEyNSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDI2LjUsNjM5IGwg MTY5LjEyNSwyMTAuMjgxMjUgYSA0Ni43MjQ2MjEsNDYuMzQyMjQ2IDAgMCAwIDM2LjUzMTI1LDE3 LjQzNzUgTCA1MDMuMzc1LDg2Ni42NTYyNSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYgMCAwIDAgNTM5 LjkwNjI1LDg0OS4yNSBMIDcwOC45Njg3NSw2MzguOTM3NSBBIDQ2LjcyNDYyMSw0Ni4zNDIyNDYg MCAwIDAgNzE4LDU5OS43MTg3NSBsIC02MC4zNzUsLTI2Mi4yNSBhIDQ2LjcyNDYyMSw0Ni4zNDIy NDYgMCAwIDAgLTI1LjI4MTI1LC0zMS40Mzc1IGwgLTI0NC4zNzUsLTExNi42ODc1IEEgNDYuNzI0 NjIxLDQ2LjM0MjI0NiAwIDAgMCAzNjUuMzEyNSwxODQuODEyNSB6IgogICAgICAgICBpZD0icGF0 aDMwNTUiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAg IGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0ibmV3LnBuZyIKICAgICAgICAgaW5rc2NhcGU6ZXhw b3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIg Lz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIK ICAgICAgICAgaWQ9InBhdGgzMDU5IgogICAgICAgICBkPSJtIDM2Ny43MzM2NiwyNzQuMDU5NjIg YyAtOC4wNzY5Niw4LjJlLTQgLTE0LjYyNTk2LDcuMjc1OTEgLTE0LjYyNSwxNi4yNSAxZS01LDAu MTM3NzMgMC4wMjgyLDAuMjY5MzQgMC4wMzEyLDAuNDA2MjUgLTAuMDExOSwxLjIxOTM2IC0wLjA3 MDgsMi42ODgzNiAtMC4wMzEyLDMuNzUgMC4xOTI2Miw1LjE3NiAxLjMyMDksOS4xMzc0OSAyLDEz LjkwNjI1IDEuMjMwMjgsMTAuMjA2NjYgMi4yNjExNywxOC42NjczNiAxLjYyNSwyNi41MzEyNSAt MC42MTg2OSwyLjk2NTQgLTIuODAyODgsNS42Nzc0MSAtNC43NSw3LjU2MjUgbCAtMC4zNDM3NSw2 LjE4NzUgYyAtOC43NzY4MiwwLjcyNzE3IC0xNy42MTIzNSwyLjA1ODc0IC0yNi40Mzc1LDQuMDYy NSAtMzcuOTc0NjEsOC42MjIxOCAtNzAuNjcwMDgsMjguMTgzMDcgLTk1LjU2MjUsNTQuNTkzNzUg LTEuNjE1MjIsLTEuMTAxOTMgLTQuNDQxMDMsLTMuMTI5MTQgLTUuMjgxMywtMy43NSAtMi42MTEx NywwLjM1MjYyIC01LjI1MDIxLDEuMTU4MjkgLTguNjg3NSwtMC44NDM3NSAtNi41NDQ5MSwtNC40 MDU2MyAtMTIuNTA1ODcsLTEwLjQ4NjkzIC0xOS43MTg3NSwtMTcuODEyNSAtMy4zMDQ5OCwtMy41 MDQxOSAtNS42OTgzMiwtNi44NDEwMSAtOS42MjUsLTEwLjIxODc1IC0wLjg5MTcyLC0wLjc2NzA3 IC0yLjI1MjU4LC0xLjgwNDU1IC0zLjI1LC0yLjU5Mzc1IC0zLjA2OTg4LC0yLjQ0NzU3IC02LjY5 MDcsLTMuNzI0MDIgLTEwLjE4NzUsLTMuODQzNzUgLTQuNDk1ODksLTAuMTUzOTQgLTguODIzOTQs MS42MDM4NSAtMTEuNjU2MjUsNS4xNTYyNSAtNS4wMzUyMSw2LjMxNTM4IC0zLjQyMzEyLDE1Ljk2 ODA1IDMuNTkzNzUsMjEuNTYyNSAwLjA3MTIsMC4wNTY3IDAuMTQ3MDIsMC4xMDA3OCAwLjIxODc1 LDAuMTU2MjUgMC45NjQyMiwwLjc4MTYyIDIuMTQ0OTYsMS43ODMxMyAzLjAzMTI1LDIuNDM3NSA0 LjE2Njg3LDMuMDc2NTUgNy45NzMyLDQuNjUxNDUgMTIuMTI1LDcuMDkzNzUgOC43NDcsNS40MDE4 MSAxNS45OTgzNyw5Ljg4MDg2IDIxLjc1LDE1LjI4MTI1IDIuMjQ2MDIsMi4zOTQxNyAyLjYzODU4 LDYuNjEyOTIgMi45Mzc1LDguNDM3NSBsIDQuNjg3NSw0LjE4NzUgYyAtMjUuMDkzNDIsMzcuNzYz NjggLTM2LjcwNjg2LDg0LjQwOTQ2IC0yOS44NDM3LDEzMS45Mzc1IGwgLTYuMTI1LDEuNzgxMjUg YyAtMS42MTQzLDIuMDg0NjEgLTMuODk1NDEsNS4zNjQ3NCAtNi4yODEzLDYuMzQzNzUgLTcuNTI1 MTMsMi4zNzAyMSAtMTUuOTk0MjQsMy4yNDA1OSAtMjYuMjE4NzUsNC4zMTI1IC00LjgwMDMxLDAu Mzk5MTUgLTguOTQyMTgsMC4xNjA5NSAtMTQuMDMxMjUsMS4xMjUgLTEuMTIwMDgsMC4yMTIxOCAt Mi42ODA3MiwwLjYxODc3IC0zLjkwNjI1LDAuOTA2MjUgLTAuMDQyNiwwLjAwOSAtMC4wODI0LDAu MDIxNiAtMC4xMjUsMC4wMzEyIC0wLjA2NjgsMC4wMTU1IC0wLjE1NDU2LDAuMDQ3OSAtMC4yMTg3 NSwwLjA2MjUgLTguNjIwMTQsMi4wODI3OSAtMTQuMTU3NzQsMTAuMDA2IC0xMi4zNzUsMTcuODEy NSAxLjc4MzE2LDcuODA4MzMgMTAuMjAzMTQsMTIuNTU2NzcgMTguODc1LDEwLjY4NzUgMC4wNjI2 LC0wLjAxNDMgMC4xNTM1LC0wLjAxNjcgMC4yMTg3NSwtMC4wMzEyIDAuMDk3OSwtMC4wMjI0IDAu MTg0MDksLTAuMDY5OSAwLjI4MTI1LC0wLjA5MzcgMS4yMDg4NSwtMC4yNjUzNiAyLjcyMzc3LC0w LjU2MDYgMy43ODEyNSwtMC44NDM3NSA1LjAwMzM0LC0xLjMzOTYzIDguNjI2OTQsLTMuMzA3OTYg MTMuMTI1LC01LjAzMTI1IDkuNjc2OTQsLTMuNDcwNzcgMTcuNjkxNzMsLTYuMzcwMjIgMjUuNSwt Ny41IDMuMjYxMTgsLTAuMjU1NDIgNi42OTcxMSwyLjAxMjE2IDguNDA2MjUsMi45Njg3NSBsIDYu Mzc1LC0xLjA5Mzc1IGMgMTQuNjcwMTgsNDUuNDgyODIgNDUuNDE0MTYsODIuMjQ1MDIgODQuMzQz NzUsMTA1LjMxMjUgbCAtMi42NTYyNSw2LjM3NSBjIDAuOTU3NDIsMi40NzU0MiAyLjAxMzQxLDUu ODI0NyAxLjMwMDIyLDguMjY5MzIgLTIuODM4NjgsNy4zNjEyIC03LjcwMDk3LDE1LjEzMDk3IC0x My4yMzc3MiwyMy43OTMxOCAtMi42ODA4NSw0LjAwMTkyIC01LjQyNDUzLDcuMTA3NjEgLTcuODQz NzUsMTEuNjg3NSAtMC41Nzg5LDEuMDk1ODkgLTEuMzE2MTgsMi43NzkzMiAtMS44NzUsMy45Mzc1 IC0zLjc1ODg0LDguMDQyMzYgLTEuMDAxNjQsMTcuMzA1MiA2LjIxODc1LDIwLjc4MTI1IDcuMjY1 NzUsMy40OTc4OCAxNi4yODQ0NywtMC4xOTEzNCAyMC4xODc1LC04LjI1IDAuMDA2LC0wLjAxMTQg MC4wMjU3LC0wLjAxOTggMC4wMzEyLC0wLjAzMTIgMC4wMDQsLTAuMDA5IC0wLjAwNCwtMC4wMjI1 IDAsLTAuMDMxMiAwLjU1NTkzLC0xLjE0MjU1IDEuMzQzNTMsLTIuNjQ0MzcgMS44MTI1LC0zLjcx ODc1IDIuMDcyMTMsLTQuNzQ3MDIgMi43NjE2MSwtOC44MTUwNiA0LjIxODc1LC0xMy40MDYyNSAz Ljg2OTYyLC05LjcyMDE0IDUuOTk1NjcsLTE5LjkxOTAzIDExLjMyMjU4LC0yNi4yNzQxMSAxLjQ1 ODY4LC0xLjc0MDIzIDMuODM2ODEsLTIuNDA5NSA2LjMwMjQyLC0zLjA2OTY0IGwgMy4zMTI1LC02 IGMgMzMuOTM4MjQsMTMuMDI2OCA3MS45MjY2NiwxNi41MjI0NiAxMDkuODc1LDcuOTA2MjUgOC42 NTY5NywtMS45NjU1NyAxNy4wMTQ0NCwtNC41MDk0NSAyNS4wOTM3NSwtNy41NjI1IDAuOTMwOTgs MS42NTEzMyAyLjY2MTEzLDQuODI1NyAzLjEyNSw1LjYyNSAyLjUwNTU5LDAuODE1MTggNS4yNDA0 NCwxLjIzNjE0IDcuNDY4NzUsNC41MzEyNSAzLjk4NTM5LDYuODA4OTggNi43MTA5LDE0Ljg2NDE2 IDEwLjAzMTI1LDI0LjU5Mzc1IDEuNDU3MzgsNC41OTExMSAyLjE3NzYyLDguNjU5MzMgNC4yNSwx My40MDYyNSAwLjQ3MjM0LDEuMDgxOTUgMS4yNTYsMi42MDQ4NiAxLjgxMjUsMy43NSAzLjg5NDgy LDguMDg0ODQgMTIuOTQyMTIsMTEuNzg2NjcgMjAuMjE4NzUsOC4yODEyNSA3LjIxOTUsLTMuNDc3 OSA5Ljk3OTc0LC0xMi43Mzk5IDYuMjE4NzUsLTIwLjc4MTI1IC0wLjU1ODg5LC0xLjE1ODE0IC0x LjMyNzMsLTIuODQxNjQgLTEuOTA2MjUsLTMuOTM3NSAtMi40MTk0NiwtNC41Nzk3NiAtNS4xNjI3 LC03LjY1NDQ4IC03Ljg0Mzc1LC0xMS42NTYyNSAtNS41MzcyMSwtOC42NjE5MiAtMTAuMTI5Njgs LTE1Ljg1NzcgLTEyLjk2ODc1LC0yMy4yMTg3NSAtMS4xODcxMSwtMy43OTY1NyAwLjIwMDI4LC02 LjE1Nzc0IDEuMTI1LC04LjYyNSAtMC41NTM3OCwtMC42MzQ3NyAtMS43Mzg4MSwtNC4yMjAwOSAt Mi40Mzc1LC01LjkwNjI1IDQwLjQ1NzQsLTIzLjg4ODE2IDcwLjI5ODU2LC02Mi4wMjEyOSA4NC4z MTI1LC0xMDYuMDYyNSAxLjg5MjQsMC4yOTc0MiA1LjE4MTU0LDAuODc5MzYgNi4yNSwxLjA5Mzc1 IDIuMTk5NTQsLTEuNDUwNyA0LjIyMTk0LC0zLjM0MzUyIDguMTg3NSwtMy4wMzEyNSA3LjgwODMy LDEuMTI5MzcgMTUuODIyODgsNC4wMjk3MyAyNS41LDcuNSA0LjQ5ODE1LDEuNzIzMDYgOC4xMjE2 LDMuNzIzMTMgMTMuMTI1LDUuMDYyNSAxLjA1NzQ5LDAuMjgzMDkgMi41NzIzOCwwLjU0NzIgMy43 ODEyNSwwLjgxMjUgMC4wOTcyLDAuMDIzOCAwLjE4MzMsMC4wNzE0IDAuMjgxMjUsMC4wOTM3IDAu MDY1MywwLjAxNDYgMC4xNTYxNSwwLjAxNjkgMC4yMTg3NSwwLjAzMTIgOC42NzIzNiwxLjg2Njk1 IDE3LjA5Mzg0LC0yLjg3ODcxIDE4Ljg3NSwtMTAuNjg3NSAxLjc4MDc0LC03LjgwNjk2IC0zLjc1 NDMsLTE1LjczMjAxIC0xMi4zNzUsLTE3LjgxMjUgLTEuMjUzOTMsLTAuMjg1MTMgLTMuMDMyMjUs LTAuNzY5MzggLTQuMjUsLTEgLTUuMDg5MTIsLTAuOTYzNzggLTkuMjMwOTIsLTAuNzI2MSAtMTQu MDMxMjUsLTEuMTI1IC0xMC4yMjQ1NiwtMS4wNzEzOCAtMTguNjkzNSwtMS45NDI2OSAtMjYuMjE4 NzUsLTQuMzEyNSAtMy4wNjgyNiwtMS4xOTAyOCAtNS4yNTEwMywtNC44NDEyNCAtNi4zMTI1NSwt Ni4zNDM3NSBsIC01LjkwNjI1LC0xLjcxODc1IGMgMy4wNjIyNiwtMjIuMTU0NDIgMi4yMzY1NSwt NDUuMjExMzQgLTMuMDYyNSwtNjguMjgxMjUgLTUuMzQ4MzksLTIzLjI4NDcxIC0xNC44MDAzNywt NDQuNTgwODQgLTI3LjQwNjI1LC02My4zNDM3NSAxLjUxNTA1LC0xLjM3NzI5IDQuMzc2MTksLTMu OTEwOTEgNS4xODc1LC00LjY1NjI1IDAuMjM3MTYsLTIuNjI0MTcgMC4wMzM0LC01LjM3NTUzIDIu NzUsLTguMjgxMjUgNS43NTEzNCwtNS40MDA2OSAxMy4wMDMyOSwtOS44Nzg5OCAyMS43NSwtMTUu MjgxMjUgNC4xNTE2NywtMi40NDI1MiA3Ljk4OTU0LC00LjAxNjk4IDEyLjE1NjI1LC03LjA5Mzc1 IDAuOTQyMjUsLTAuNjk1NzYgMi4yMjg5LC0xLjc5NzU5IDMuMjE4NzUsLTIuNTkzNzUgNy4wMTUz OCwtNS41OTYzMyA4LjYzMDU4LC0xNS4yNDg0MiAzLjU5Mzc1LC0yMS41NjI1IC01LjAzNjgzLC02 LjMxNDA4IC0xNC43OTcxMiwtNi45MDg4MyAtMjEuODEyNSwtMS4zMTI1IC0wLjk5ODU2LDAuNzkw ODUgLTIuMzUzNTMsMS44MjI1MiAtMy4yNSwyLjU5Mzc1IC0zLjkyNjUsMy4zNzc5NiAtNi4zNTE0 NSw2LjcxNDM5IC05LjY1NjI1LDEwLjIxODc1IC03LjIxMjQ5LDcuMzI1OTUgLTEzLjE3NDA3LDEz LjQzNzc3IC0xOS43MTg3NSwxNy44NDM3NSAtMi44MzYwMSwxLjY1MTA2IC02Ljk4OTk2LDEuMDc5 NzggLTguODc1MDUsMC45Njg3NSBsIC01LjU2MjUsMy45Njg3NSBjIC0zMS43MTg4LC0zMy4yNjA1 NyAtNzQuOTA0NjYsLTU0LjUyNTQ2IC0xMjEuNDA2MDUsLTU4LjY1NjMgLTAuMTMwMDYsLTEuOTQ4 NzIgLTAuMzAwNDUsLTUuNDcxMTcgLTAuMzQzNzUsLTYuNTMxMjUgLTEuOTAzNzEsLTEuODIxNjUg LTQuMjAzNDIsLTMuMzc2ODYgLTQuNzgxMjUsLTcuMzEyNSAtMC42MzYxNywtNy44NjM4OSAwLjQy NTk3LC0xNi4zMjQ1OSAxLjY1NjI1LC0yNi41MzEyNSAwLjY3OTEsLTQuNzY4NzYgMS44MDczOCwt OC43MzAyNSAyLC0xMy45MDYyNSAwLjA0MzgsLTEuMTc2NjMgLTAuMDI2NSwtMi44ODQwMSAtMC4w MzEyLC00LjE1NjI1IC05LjZlLTQsLTguOTc0MDkgLTYuNTQ4MDQsLTE2LjI1MDgyIC0xNC42MjUs LTE2LjI1IHogbSAtMTguMzEyNSwxMTMuNDM3NSAtNC4zNDM3NSw3Ni43MTg3NSAtMC4zMTI1LDAu MTU2MjUgYyAtMC4yOTEzNCw2Ljg2MzM1IC01LjkzOTk2LDEyLjM0Mzc1IC0xMi44NzUsMTIuMzQz NzUgLTIuODQwODEsMCAtNS40NjI5NCwtMC45MTIyOSAtNy41OTM3NSwtMi40Njg3NSBsIC0wLjEy NSwwLjA2MjUgLTYyLjkwNjI1LC00NC41OTM3NSBjIDE5LjMzMzY1LC0xOS4wMTExNSA0NC4wNjI5 MSwtMzMuMDYwMzkgNzIuNTYyNSwtMzkuNTMxMjUgNS4yMDU5OSwtMS4xODIwMyAxMC40MDk2Niwt Mi4wNTkxIDE1LjU5Mzc1LC0yLjY4NzUgeiBtIDM2LjY1NjI1LDAgYyAzMy4yNzM0Nyw0LjA5MjMy IDY0LjA0NTAxLDE5LjE1ODgyIDg3LjYyNSw0Mi4yNSBsIC02Mi41LDQ0LjMxMjUgLTAuMjE4NzUs LTAuMDkzNyBjIC01LjU0NzQ1LDQuMDUxNjkgLTEzLjM2MzQzLDMuMDQ2MzkgLTE3LjY4NzUsLTIu Mzc1IC0xLjc3MTMyLC0yLjIyMDk2IC0yLjcwMDcyLC00LjgzMjM5IC0yLjgxMjUsLTcuNDY4NzUg bCAtMC4wNjI1LC0wLjAzMTIgeiBtIC0xNDcuNjI1LDcwLjg3NSA1Ny40Mzc1LDUxLjM3NSAtMC4w NjI1LDAuMzEyNSBjIDUuMTg0MzcsNC41MDY5NyA1Ljk0ODg4LDEyLjMyNzk0IDEuNjI1LDE3Ljc1 IC0xLjc3MTIsMi4yMjEwNSAtNC4xNDIwOCwzLjcxMDc0IC02LjY4NzUsNC40MDYyNSBsIC0wLjA2 MjUsMC4yNSAtNzMuNjI1LDIxLjI1IGMgLTMuNzQ3MjgsLTM0LjI2NTE3IDQuMzI4NTUsLTY3LjU3 MzY0IDIxLjM3NSwtOTUuMzQzNzUgeiBtIDI1OC4xNTYyNSwwLjAzMTIgYyA4LjUzNDEsMTMuODMy NTYgMTQuOTk2NTUsMjkuMjgyMTQgMTguODQzNzUsNDYuMDMxMjUgMy44MDEwNiwxNi41NDgyOCA0 Ljc1NDk5LDMzLjA2Njk3IDMuMTg3NSw0OS4wMzEyNSBsIC03NCwtMjEuMzEyNSAtMC4wNjI1LC0w LjMxMjUgYyAtNi42MjY1LC0xLjgxMTA0IC0xMC42OTg5MywtOC41NTE2MiAtOS4xNTYyNSwtMTUu MzEyNSAwLjYzMjAzLC0yLjc2OTYyIDIuMTAyMjIsLTUuMTEyNjQgNC4wOTM3NSwtNi44NDM3NSBs IC0wLjAzMTIsLTAuMTU2MjUgNTcuMTI1LC01MS4xMjUgeiBtIC0xNDAuNjU2MjUsNTUuMzEyNSAy My41MzEyNSwwIDE0LjYyNSwxOC4yODEyNSAtNS4yNSwyMi44MTI1IC0yMS4xMjUsMTAuMTU2MjUg LTIxLjE4NzUsLTEwLjE4NzUgLTUuMjUsLTIyLjgxMjUgeiBtIDc1LjQzNzUsNjIuNTYyNSBjIDAu OTk5OTcsLTAuMDUwNSAxLjk5NTU4LDAuMDM5NiAyLjk2ODc1LDAuMjE4NzUgbCAwLjEyNSwtMC4x NTYyNSA3Ni4xNTYyNSwxMi44NzUgYyAtMTEuMTQ1NSwzMS4zMTMxIC0zMi40NzI4MSw1OC40NDAx OCAtNjAuOTY4NzUsNzYuNTkzNzUgbCAtMjkuNTYyNSwtNzEuNDA2MjUgMC4wOTM3LC0wLjEyNSBj IC0yLjcxNTYxLC02LjMwOTk5IDAuMDAyLC0xMy43MDk1NiA2LjI1LC0xNi43MTg3NSAxLjU5OTY1 LC0wLjc3MDQxIDMuMjcwODksLTEuMTk3MDEgNC45Mzc1LC0xLjI4MTI1IHogbSAtMTI3LjkwNjI1 LDAuMzEyNSBjIDUuODExNzQsMC4wODE1IDExLjAyNDYyLDQuMTE1MjUgMTIuMzc1LDEwLjAzMTI1 IDAuNjMyMTksMi43Njk1OCAwLjMyNDUsNS41MTM3NSAtMC43MTg3NSw3LjkzNzUgbCAwLjIxODc1 LDAuMjgxMjUgLTI5LjI1LDcwLjY4NzUgYyAtMjcuMzQ3MTYsLTE3LjU0ODYgLTQ5LjEyOTI3LC00 My44MjQwMyAtNjAuNzgxMjUsLTc2LjA2MjQ1IGwgNzUuNSwtMTIuODEyNSAwLjEyNSwwLjE1NjI1 IGMgMC44NDQ1MSwtMC4xNTU0MSAxLjcwMSwtMC4yMzA0IDIuNTMxMjUsLTAuMjE4NzUgeiBtIDYz Ljc4MTI1LDMwLjk2ODggYyAyLjAyNDQ1LC0wLjA3NDQgNC4wNzg2NSwwLjM0MDk4IDYuMDMxMjUs MS4yODEyNSAyLjU1OTUxLDEuMjMyNTMgNC41MzY3MywzLjE3MzE5IDUuNzgxMjUsNS41IGwgMC4y ODEyNSwwIDM3LjIxODc1LDY3LjI1IGMgLTQuODMwMjksMS42MTkyMyAtOS43OTYwOSwzLjAwMzA4 IC0xNC44NzUsNC4xNTYyNSAtMjguNDY0NTMsNi40NjI5IC01Ni44Mzg2Miw0LjUwNDY3IC04Mi41 MzEyNSwtNC4yNSBsIDM3LjEyNSwtNjcuMTI1IDAuMDYyNSwwIGMgMi4yMjc2NywtNC4xNjQ0MSA2 LjQ1MjQ3LC02LjY0ODg3IDEwLjkwNjI1LC02LjgxMjUgeiIKICAgICAgICAgc3R5bGU9ImZvbnQt c2l6ZTptZWRpdW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdl aWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246 c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bGluZS1oZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFj aW5nOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7ZGlyZWN0 aW9uOmx0cjtibG9jay1wcm9ncmVzc2lvbjp0Yjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNo b3I6c3RhcnQ7YmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y29sb3I6IzAwMDAwMDtmaWxsOiNmZmZm ZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjAuMjU7c3Ryb2tl LW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTttYXJr ZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJs ZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OlNhbnM7LWlua3NjYXBl LWZvbnQtc3BlY2lmaWNhdGlvbjpTYW5zIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNj Y2NjY2Njc2NjY2NzY3NzY2NzY2NjY2NjY2NzY2Njc2NjY2NjY2NjY2NjY2Njc2NjY3Njc2Njc2Nj Y2NzY3Njc2NjY2NjY2Njc2NjY3Njc2NjY2NzY2NjY3Njc2NzY2NjY2NjY2NjY2NjY2Njc2NjY3Nj Y2NjY2NjY2NjY2NzY2NjY2NzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NzY2Njc2NjY2NjY2NjY3Nj Y2NzY2NjYyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIuL3BhdGgzMDU5LnBu ZyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjI1MC41NSIKICAgICAgICAgaW5rc2Nh cGU6ZXhwb3J0LXlkcGk9IjI1MC41NSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo= " + height="4.8555708" + width="5" + inkscape:svg-dpi="96" + preserveAspectRatio="none" + x="34.607693" + y="103.78551" /> + style="fill:#e0fbfc;fill-opacity:1;stroke:#38435a;stroke-width:0.264583;stroke-opacity:1" + id="rect2740-3-6-6-5" /> + xlink:href="data:image/png;base64,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 " + preserveAspectRatio="none" + height="2.7370162" + width="2.7370162" + x="43.084366" + y="88.747742" /> Operator + x="33.365101" + y="99.687447" + style="font-size:2.82222px;stroke-width:0.264583">Operator (tbd) - + x="44.730225" + sodipodi:role="line" + id="tspan1241-1">(tbd) - + x="51.708694" + y="98.905067" /> + + + width="1.235417" + height="1.235417" + x="48.775391" + y="100.36504" /> + d="m 37.495235,90.860749 v -5.203078 h 1.039437 v 5.250324 l -1.039437,-1.039434 1.07487,-1.07487 -1.07487,-1.074869 1.004002,-1.003999 -0.998094,-1.063059" + style="fill:none;stroke:#38435a;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;stroke:#38435a;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + style="fill:none;stroke:#38435a;stroke-width:0.264583;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.264583, 0.529166;stroke-dashoffset:0;stroke-opacity:1" /> + style="fill:#e0fbfc;fill-opacity:1;stroke:#38435a;stroke-width:0.264583;stroke-opacity:1" + id="rect2740-1-60" /> ComposeComposeSupport + x="65.339005" + y="108.75172" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222px;font-family:WeissenhofRegular;-inkscape-font-specification:'WeissenhofRegular, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Support + xlink:href="data:image/png;base64,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 jSXv/h223/l1jj54JwqSo0OHkZ73klaBSqXCk08+eVkqlbrs1ltvHb3xxhsfXL9+/V/9wR/8weOv 9FQVRTGAdoRPGIbouk6tVuPRRx9l5arVLFyyLG5Yi4mJeUmklChCobOru10lXK1WoyU2TWtPWhcu XEi9VsM0zFdka3je0RGqxqoL1nFwYBfDw8NYloWiKG3/LkT2hkOHDp331a9+9RzgwCk6eEzMKyYW vK8zbr311oVz5sz5wL/+679e8cd//MdrxsbGejs7O9u3/xVFoVgskkwmUQTUikXsBTncEM656gYu uPHDzDn/TZjpLGZKRwYQ+OA+36pwmgiD6I9QINXbz0Uf/QMWXXkDtcHdqN/7OoFTpTh8lOLYGN7z nvv8hbdKpUKlUpmzb9++W375y19e95u/+Zv3b9iw4e7h4eGffPWrX53kJNm0aVPGdV175jFM00TX dfL5PJPFyeaymohLJ2JiYk4IoSiUSyUmJ0ssWLAA3/epVqsEQVREEYYhU5Upst1z0Q2TIPBP3cHD kPmLlpLK5DAKBRzHIZVKRfsIioKqqkgpGR4ePrenpydz6g4cE/PKiQXv64Cf/OQn5qZNm97w1FNP vfe73/3ueyYmJroh8l51dHRg2zaNRoNUKoWmqdSKY3h1hfkrzyd35W/SccGb6L3oTaTmLMBMqQQu yBC8+qv9lU0jQwgaoFsmvResIzhvHbnz34gzPsSOe/4Be8cTJHN56sOHGBsdZarZUHQ8DMNgfHw8 88Mf/vCm+++//6Y1a9Y8dPvtt9+ZSCS+f9tttw2d6Dnl83l9aGjIaMWRTU5OYpomQRBQqVQIAx8r YdPd00vgv/JbjjExMWc/YRiy+sK1dHV1Ua1WEULgui6u67azeEdHxxgfLzIxPkL3nD68lxlN9nyC MCCVzrL8/IuolCcpFKK9tFahTuufpVLJsm17zik5aEzMKSIWvGcZM/MPP/e5z63csmXLO9/97nd/ xDCM5TM9uaqqoqoqhq5TKk4QVmo4QOe8eZzz7k8yd/2V5BeuZM6K81C15iT1dNgVXiEyBN8BBOTP WYicv5DsovOQXo3xPTsY//c7WFia4Lkd2wkQDA0Pk8lk2jW/juMcI4Qdx2HTpk1XbNq06Yrly5f/ /uc///lvffrTn/7rpUuXjr3Uudi2fX6hUMhalkUQBNi2ja7rtP5eKBQwzEQz8mc2vysxMTFnC2Hg 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 E3zK7innF3kAAAAASUVORK5CYII= " + preserveAspectRatio="none" + height="6.5992327" + width="6.7045903" + x="79.967842" + y="101.07545" /> (tbd) + x="81.254951" + y="108.97627" + style="font-size:1.41111px;stroke-width:0.264583">(tbd) + transform="translate(47.603134)" + id="g993-9"> + width="23.735416" + height="9.3354168" + x="40.474586" + y="110.93587" /> + fill="currentColor" + style="fill:#c65b28;fill-opacity:1;stroke:none;stroke-width:0.264582;stroke-opacity:1" /> CommunityCommunityProject + x="96.037575" + sodipodi:role="line" + id="tspan1575">Project + + - + x="89.677734" + y="109.60045" /> - + + x="113.67772" + y="118.93587" /> - + style="fill:#e0fbfc;fill-opacity:1;stroke:#38435a;stroke-width:0.264582;stroke-opacity:1" /> diff --git a/docs/index.rst b/docs/index.rst index da148f07..6a5323a7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -52,8 +52,8 @@ Context: what is Dataverse? -Media: where a the stories? -^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Media: where are the stories? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This project was presented at a few Dataverse related events: From 7984b62e7a99d73f2b991615c61a0bf58e034593 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 3 Sep 2020 21:06:17 +0200 Subject: [PATCH 45/47] Add some docs about the PoC state docker-compose quickstart persona. --- docker-compose.yaml | 2 +- docs/quickstart/docker-compose.rst | 32 ++++++++++++++++++++++++++++++ docs/quickstart/index.rst | 2 ++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 docs/quickstart/docker-compose.rst diff --git a/docker-compose.yaml b/docker-compose.yaml index eefc5acd..a3a3b667 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -28,5 +28,5 @@ services: volumes: - type: bind source: ./personas/docker-compose/secrets - target: /opt/dataverse/secrets + target: /secrets read_only: true diff --git a/docs/quickstart/docker-compose.rst b/docs/quickstart/docker-compose.rst new file mode 100644 index 00000000..beb7521e --- /dev/null +++ b/docs/quickstart/docker-compose.rst @@ -0,0 +1,32 @@ +============================== +Using *docker-compose* persona +============================== + +.. hint:: + This is in a proof of concept stage. Enhance if you feel this is + useful to you. + +This persona is about setting up a demo environment very quickly with +installing `Docker`_ and `docker-compose`_ only. + +Simply clone the project to any directory and execute + +.. code-block:: shell + + docker-compose up + +This will build all images necessary and deploy the application. +Once deployment is done (you'll see in the logs when auto deploy worked), +you'll need to bootstrap the database: + +.. code-block:: shell + + docker-compose run --no-deps --rm dataverse scripts/bootstrap-job.sh + +Then you can access Dataverse at http://localhost:8080 and login +with the default ``dataverseAdmin:admin1``. Enjoy! + + + +.. _Docker: https://docs.docker.com/install +.. _docker-compose: https://docs.docker.com/compose/install diff --git a/docs/quickstart/index.rst b/docs/quickstart/index.rst index a647d756..60f2e0bd 100644 --- a/docs/quickstart/index.rst +++ b/docs/quickstart/index.rst @@ -8,6 +8,7 @@ Quickstart / Demo k3s minikube + docker-compose .. _demos: @@ -16,6 +17,7 @@ Currently pre-packaged to be run on your local machine: - Using ``minikube``, see :doc:`minikube` - Using ``k3s``, see :doc:`k3s` +- Using ``docker-compose``, see :doc:`docker-compose` :ref:`day3/objectstore:Minio Example Demo` bases on these, but includes integrating an S3 compatible object store, too. From 4e870b5681918cae95ccb6f004f12c591130a278 Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Thu, 3 Sep 2020 21:20:19 +0200 Subject: [PATCH 46/47] Switch from master to release branch. #198 --- README.rst | 4 ++-- docker/dataverse-k8s/Jenkinsfile | 4 ++-- docker/solr-k8s/Jenkinsfile | 4 ++-- docs/development/prepare.rst | 2 +- docs/images/dataverse-k8s.md | 8 ++++---- docs/images/index.rst | 2 +- docs/images/solr-k8s.md | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index d23e0af1..2bc1d031 100644 --- a/README.rst +++ b/README.rst @@ -31,8 +31,8 @@ branch. In this branch unexpected or breaking changes may happen. .. |Dataverse badge| image:: https://img.shields.io/badge/Dataverse-v4.20-important.svg :target: https://dataverse.org -.. |Validation badge| image:: https://jenkins.dataverse.org/job/dataverse-k8s/job/Kubeval%20Linting/job/master/badge/icon?subject=kubeval&status=valid&color=purple - :target: https://jenkins.dataverse.org/blue/organizations/jenkins/dataverse-k8s%2FKubeval%20Linting/activity?branch=master +.. |Validation badge| image:: https://jenkins.dataverse.org/job/dataverse-k8s/job/Kubeval%20Linting/job/release/badge/icon?subject=kubeval&status=valid&color=purple + :target: https://jenkins.dataverse.org/blue/organizations/jenkins/dataverse-k8s%2FKubeval%20Linting/activity?branch=release .. |DockerHub dataverse-k8s badge| image:: https://img.shields.io/static/v1.svg?label=image&message=dataverse-k8s&logo=docker :target: https://hub.docker.com/r/iqss/dataverse-k8s .. |DockerHub solr-k8s badge| image:: https://img.shields.io/static/v1.svg?label=image&message=solr-k8s&logo=docker diff --git a/docker/dataverse-k8s/Jenkinsfile b/docker/dataverse-k8s/Jenkinsfile index 49db2291..0ba978bc 100644 --- a/docker/dataverse-k8s/Jenkinsfile +++ b/docker/dataverse-k8s/Jenkinsfile @@ -74,7 +74,7 @@ pipeline { } stage('latest') { when { - branch 'master' + branch 'release' } environment { // credentials() will magically add DOCKER_HUB_USR and DOCKER_HUB_PSW @@ -83,7 +83,7 @@ pipeline { } steps { script { - // Push master image to latest tag + // Push release image to latest tag docker.withRegistry("${env.DOCKER_REGISTRY}", "${env.DOCKER_HUB_CRED}") { gf_docker_image.push("latest") pyr_docker_image.push("payara") diff --git a/docker/solr-k8s/Jenkinsfile b/docker/solr-k8s/Jenkinsfile index 97d13365..6baf9e2e 100644 --- a/docker/solr-k8s/Jenkinsfile +++ b/docker/solr-k8s/Jenkinsfile @@ -68,7 +68,7 @@ pipeline { } stage('latest') { when { - branch 'master' + branch 'release' } environment { // credentials() will magically add DOCKER_HUB_USR and DOCKER_HUB_PSW @@ -77,7 +77,7 @@ pipeline { } steps { script { - // Push master image to latest tag + // Push release image to latest tag docker.withRegistry("${env.DOCKER_REGISTRY}", "${env.DOCKER_HUB_CRED}") { docker_image.push("latest") } diff --git a/docs/development/prepare.rst b/docs/development/prepare.rst index 6b242492..cb364c9b 100644 --- a/docs/development/prepare.rst +++ b/docs/development/prepare.rst @@ -107,7 +107,7 @@ Clone source files For building images from any branch or commit of Dataverse, you need to have it in your (Docker) build context. Easily achieved by running the following -after cloning the project (``master`` branch): +after cloning the project (``release`` branch): .. code-block:: shell diff --git a/docs/images/dataverse-k8s.md b/docs/images/dataverse-k8s.md index 05a0de04..c53faf4e 100644 --- a/docs/images/dataverse-k8s.md +++ b/docs/images/dataverse-k8s.md @@ -4,7 +4,7 @@ [![Hub](https://img.shields.io/static/v1.svg?label=image&message=dataverse-k8s&logo=docker)](https://hub.docker.com/r/iqss/dataverse-k8s) ![Pulls](https://img.shields.io/docker/pulls/iqss/dataverse-k8s) [![RTD](https://img.shields.io/readthedocs/dataverse-k8s)](https://dataverse-k8s.readthedocs.io) -[![Build](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-dataverse/job/master/badge/icon?subject=master&status=pushed&color=purple)](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-dataverse/job/master) +[![Build](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-dataverse/job/release/badge/icon?subject=release&status=pushed&color=purple)](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-dataverse/job/release) This container image enables you to run [Dataverse](https://dataverse.org), a Java EE based web application for research data management, on a container platform. @@ -15,9 +15,9 @@ like [Docker](https://docker.io) or [podman](https://podman.io). ## Supported tags -- `latest`: master branch based build ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/glassfish/Dockerfile)) -- `payara`: master branch based build, payara flavor ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/payara/Dockerfile)) -- `build-cache`: a maven cache image to speedup dev builds, refreshed every night based on latest upstream `develop`. ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/build-cache/Dockerfile), [`Jenkinsfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/build-cache/Jenkinsfile)) +- `latest`: release branch based build ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/release/docker/dataverse-k8s/glassfish/Dockerfile)) +- `payara`: release branch based build, payara flavor ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/release/docker/dataverse-k8s/payara/Dockerfile)) +- `build-cache`: a maven cache image to speedup dev builds, refreshed every night based on latest upstream `develop`. ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/release/docker/dataverse-k8s/build-cache/Dockerfile), [`Jenkinsfile`](https://github.com/IQSS/dataverse-kubernetes/blob/release/docker/dataverse-k8s/build-cache/Jenkinsfile)) - `4.20`, ..., `4.15.1`, ..., `4.11`: stable (tagged) releases - Using [upstream release schema](https://github.com/IQSS/dataverse/releases/) down to `4.11`. - See also [list on Docker Hub](https://hub.docker.com/r/iqss/dataverse-k8s/tags?page=1&ordering=last_updated&name=4.) diff --git a/docs/images/index.rst b/docs/images/index.rst index 48ef044d..69274e5c 100644 --- a/docs/images/index.rst +++ b/docs/images/index.rst @@ -6,7 +6,7 @@ This project provides ``Dockerfile`` s and scripts included in container images to be used for Dataverse deployment and maintenance. 1. You can use images from Docker Hub. Those are built and tested by CI on every - push to ``master`` and tags. + push to ``release`` and tags. 2. Derive from these and push your customized image to a place you like. 3. Build the genuine images yourself and push to a registry of your choice. diff --git a/docs/images/solr-k8s.md b/docs/images/solr-k8s.md index c99d4901..d7d1f416 100644 --- a/docs/images/solr-k8s.md +++ b/docs/images/solr-k8s.md @@ -5,7 +5,7 @@ [![Solr](https://img.shields.io/static/v1.svg?label=upstream&message=7.3.1&logo=docker)](https://hub.docker.com/_/solr) ![Pulls](https://img.shields.io/docker/pulls/iqss/solr-k8s) [![RTD](https://img.shields.io/readthedocs/dataverse-k8s)](https://dataverse-k8s.readthedocs.io) -[![Build](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-solr/job/master/badge/icon?subject=master&status=pushed&color=purple)](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-solr/job/master) +[![Build](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-solr/job/release/badge/icon?subject=release&status=pushed&color=purple)](https://jenkins.dataverse.org/job/dataverse-k8s/job/image-solr/job/release) This container image includes a dependency service to run [Dataverse](https://dataverse.org), a Java EE based web application for research data management, on a container platform. @@ -18,7 +18,7 @@ like [Docker](https://docker.io) or [podman](https://podman.io). ## Supported tags -- `latest`: master branch based build ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/master/docker/dataverse-k8s/glassfish/Dockerfile)) +- `latest`: release branch based build ([`Dockerfile`](https://github.com/IQSS/dataverse-kubernetes/blob/release/docker/dataverse-k8s/glassfish/Dockerfile)) - `4.20`, ..., `4.15.1`, ..., `4.11`: stable (tagged) releases - Using [upstream release schema](https://github.com/IQSS/dataverse/releases/) down to `4.11`. - See also [list on Docker Hub](https://hub.docker.com/r/iqss/dataverse-k8s/tags?page=1&ordering=last_updated&name=4.) From 1ea178aa712b914659d4d05a745cc1307dc9b1fe Mon Sep 17 00:00:00 2001 From: Oliver Bertuch Date: Fri, 11 Sep 2020 11:06:31 +0200 Subject: [PATCH 47/47] Add some docs about applying flyway migrations out of order on a deployment. --- docs/day2/upgrade.rst | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/docs/day2/upgrade.rst b/docs/day2/upgrade.rst index d7ec206b..11c614d8 100644 --- a/docs/day2/upgrade.rst +++ b/docs/day2/upgrade.rst @@ -63,3 +63,53 @@ a similar project named `Imago `_ to sync your This works independently from your ``imagePullPolicy`` by using the ``sha256`` image checksum in background. + + + +Flyway Database Migration Issues +-------------------------------- +When using a custom version of Dataverse (e. g. when you maintain a small +fork and deploy it based on images of this project), you might run into a +situation where deployments fail due to "out of order" migrations. + +When deploying, `Flyway `_ takes care of maintaining +the database tables to be inline with the object-relational mapping. +Backporting or adding a custom change might leave you in a state where +Flyway complains about migrations not being applicable because newer migrations +already happened. The deployment will fail for good. + +To solve this situation, you need to apply the migrations "out of order". +Add the Flyway plugin to ``pom.xml`` (when you maintain a fork, this should +be pretty clear where to do this). + +.. code-block:: xml + + + org.flywaydb + flyway-maven-plugin + ${flyway.version} + + jdbc:postgresql://localhost/dataverse + dataverse + YOUR DATABASE PASSWORD HERE + + + + org.postgresql + postgresql + 42.2.12 + + + + +Now forward your PostgreSQL server to ``localhost`` (keep it running): + +.. code-block:: shell + + kubectl port-forward service/postgresql 5432 + +And then apply the migrations out of order: + +.. code-block:: shell + + mvn -Dflyway.outOfOrder=true flyway:migrate