Skip to content

OPTIMALSYSTEMS/yuuvis-api-helm-charts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YUUVIS API HELM CHARTS

Yuuvis Api Helm Charts are tool for accelerated development of tailored content and information management solutions. Solutions build using Yuuvis Api Helm Charts are highly scalable, run either cloud native or on premises and exhibit outstanding performance.

Table of Contents

Prerequisites

Please use helm version 3.

Installation

First please add your credentials for the docker.yuuvis.org registry in the values yaml files of the helm charts. For any questions about credentials please contact [email protected].

Replace all changeme default passwords in the values.yaml of the charts you plan to use.

**Important: an helm update with the infrastructure chart is not supported."

Add required Helm repositorys:

helm repo add minio https://charts.min.io/
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add gitea-charts https://dl.gitea.io/charts/
helm repo add codecentric https://codecentric.github.io/helm-charts/

Install the infrastructure Helm chart

Update infrastructure dependencies

cd infrastructure
helm dep up
helm repo add stable https://charts.helm.sh/stable
cd ..

Edit the infrastructure values.yaml

  • Edit the docker registry credentials.
  • Optionally change passwords
  • Optionally change the used storage classes

Since version 0.9.0 of the infrastructure helm chart gitea is used as an example git server.

Since version 0.11.0 of the infrastructure helm chart the minio https://charts.min.io repository is used.

Since version 0.12.0 of the infrastructure helm chart the codecentric keycloakx helm chart is used.

Install infrastructure services

kubectl create namespace infrastructure
helm install infrastructure ./infrastructure --namespace infrastructure

wait till jobs are done

kubectl get jobs -n infrastructure

There are 2 jobs that prepare the git server and the keycloak environment that need to be completed.

NAME                              COMPLETIONS   DURATION   AGE
gitea-init                        1/1           83s        8m4s
keycloak-create-selfsigned-cert   1/1           8m4s       8m4s

Changes with version 0.12

Starting with version 0.12.0 of the infrastructure helm chart the codecentric keycloakx helm chart is used.
Thus the configuration paramters for the keycloak changed.
The yuuvis api version 2022 winter uses keycloak version 19.

Changes with version 0.13

The default configuration of keycloak is changed.
In previous versions two test realms were imported testyuuvis and yuuvistest.
Since version 0.13.0 no realms will be imported by default.
In the yuuvis chart starting with version 0.17.0 an init job can be configured to create a realm.

The versions of the chart dependencies have been updated.

Install the yuuvis Helm chart

Edit the yuuvis values.yaml and docker registry credentials

kubectl create namespace yuuvis
helm install yuuvis ./yuuvis --namespace yuuvis

wait till all pods are ready

kubectl get po -n yuuvis

Install the yuuvis client Helm chart

Edit the client values.yaml and docker registry credentials

With version 0.6.0 of the client helm chart an app systemHookConfiguration.json is used for the sothook. The global systemHookConfiguration.json is no longer used/changed by the init script.

helm install client ./client --namespace yuuvis

wait till all pods are ready

kubectl get po -n yuuvis

Post-install tasks for the client

The client helm chart will change the systemHookConfiguration.json.
Services that use this configuration will only read it once at startup.
For the changes to be noticeable the corresponding services must be restart.
The changes in the systemHookConfiguration.json affect the api gateway.
To restart the api gateway:

kubectl rollout restart deployment api -n yuuvis

Install the yuuvis bpm Helm chart

Edit the bpm values.yaml and docker registry credentials

install bpm services with:

kubectl get po -n yuuvis
helm install bpm ./bpm --namespace yuuvis

Install the yuuvis rendition Helm chart

install rendition services with:

kubectl get po -n yuuvis
helm install rendition ./rendition --namespace yuuvis

Install the yuuvis repositorymanager Helm chart

Edit the repositorymanager values.yaml and docker registry credentials

# Check if yuuvis core services running
kubectl get po -n yuuvis

# For every instance create new namespace e.g. xxxxx
kubectl create namespace xxxxx

# Make sure correct values are set in values.yml (credentials, ports, profile, tenant...)
helm install repositorymanager ./repositorymanager --namespace xxxxx 

It is possible to have more than one instance of repositorymanager. To use that possibility repositorymanager will not be part of yuuvis namespace and for every instance it is needed to be created new namespace.

NOTE: CORS Ingress In Ingress controller because of communication with SAP protocols, please disable CORS e.g. nginx.ingress.kubernetes.io/enable-cors: "false", or if you use cloud provider you should disable there.

NOTE : Update/Upgrade Repository Manager from artifact (docker image tag) 4.3.3 If, in the webapps/cs folder, one of the default folders is missing (e.g., conf, META-INF, and/or WEB-INF), the missing ones will be extracted during the installation/upgrades of the repository manager. Please check whether this step is advised through the RELEASE NOTES; for example: If the KGS version is not compatible with an old version, then delete the WEB-INF folder before upgrading to a new version of the repository manager (old configuration will remain).

Version upgrades

The upgrade of the infrastructure chart is not supported at the moment.

For upgrading the yuuvis or monitoring components get the new Helm charts version, edit the values.yaml of each chart with your modifications and the upgrade the Helm deployments:

Check version of deployed helm chart

helm list -n yuuvis 
helm list -n monitoring
helm upgrade yuuvis ./yuuvis --namespace yuuvis 
helm upgrade client ./client --namespace yuuvis 
helm upgrade bpm ./bpm --namespace yuuvis
helm upgrade monitoring ./monitoring --namespace monitoring 
helm upgrade repositorymanager ./repositorymanager --namespace xxxxx

Check version of upgraded helm chart

helm list -n yuuvis 

2023 autumn

With version 2023 autumn yuuvis api uses Keycloak 22.
Since Keycloak version 19.0.2 a scope parameter is mandatory in the oauth2 client configuration.
See Keycloak documentation user-endpoint-changes - Other Changes.
keycloak openid required
Since Keycloak version 20 login will fail without the scope parameter.

The yuuvis momentum elasticsearch connection configuration is changed with 2023autumn.

More information can be found here:
yuuvis 2023 autumn changes

An optional update helm upgrade job pre-upgrade-job-2023autumn is provided with the yuuvis helm chart.
The job will run during a helm upgrade before after the templates are rendered and before kubernetes resources are changed.
helm upgrade hooks
The update job can be enabled/disabled in the yuuvis values yaml.

yuuvis:
  update:
    autumn2023:
      enable: true

If configured the job will try to load the application-oauth2.yml and add the paramter scope: openid to the configurations if not present.

Optionally the update job will load the application-es.yml and map the parameters to the new format.
This job assumes the existing application-es.yml used in previous helm chart versions.

With 2023 autumn the metricsservice is removed.

2023 spring

With version 2023 spring the management helm chart has been removed.
Before updating to 2023 spring please delete the helm chart with the previous used version.

helm del management  --namespace yuuvis

Since version 2022 winter the tenant-management-api service is required for the client.
Thus the service is moved into the client helm chart.
The metricsservice is depcrecated.
For this release the metricsservice is included in the client helm chart.

2022 winter

With version 2022 winter yuuvis api uses keycloak 19.
It is required to manually adjust the endSessionUri parameter for each tenant in the application-oauth2.yml configuration file.
The previously used parameter redirect_uri must be removed.

Further the db connection format used in the application-dbs.yml changed.

More information can be found here: yuuvis 2022 winter changes

2021 winter and 2022spring

With the yuuvis helm chart version 0.14.0 and the docker tags 4.9.9 (2021winter) and 4.10.1 (2022spring) the functionality of the configuration service is changed.
Starting with these versions the configservice applies all changes to configuration files to its local resources first. At regular intervals of 5 minutes, the remote resources on the git server are synchronized.
Thus since version 0.14.0 of the yuuvis helm chart the configuration service is deployed as an statefulset.
For more informations on the change, please refer to the documentaion at: configservice changes

More information on the configuration of the configservice can be found here: configservice config

2021 autumn

The example git service in the infrastructure helm chart is changed from gogs to gitea.

In the management helm charts the deployments and services are renamed to match the docker image names.

2021 summer

The configuration files will not be changed during an upgrade.
Please follow the instructions provied at:

With the 2021 summer version the webhook type dms.request.update.metadata is deprecated.
The type is still functional in this version, but will be removed in later versions.
Please migrate your config to use the new webhook type dms.request.objects.upsert.storage-before.

deprecated webhook

Installing the Monitoring Helm chart

Installing monitoring chart

helm dep up monitoring
helm install monitoring ./monitoring -n monitoring --create-namespace --debug

Further information on configuration and available dashboards can be found in the monitoring module readme.

Uninstall

 helm uninstall infrastructure  --namespace infrastructure
 helm uninstall prometheus-operator --namespace infrastructure
 helm uninstall yuuvis  --namespace yuuvis
 helm uninstall client  --namespace yuuvis
 helm uninstall bpm  --namespace yuuvis
 helm uninstall repositorymanager  --namespace xxxx
 helm uninstall monitoring  --namespace monitoring
kubectl delete statefulset elasticsearch -n infrastructure
kubectl delete statefulset rabbitmq -n infrastructure
kubectl delete jobs keycloakaddrole-yuuvis  -n infrastructure
kubectl delete jobs keycloak-create-selfsigned-cert -n infrastructure
kubectl delete job gogsrepo-init -n infrastructure
kubectl delete pvc gogs -n infrastructure
kubectl delete pv name(replace with pv from gogs --check value with kubectl get pv -n infrastructure) -n infrastructure

Before deleting the persistent volumes and persistent volume claims, please delete corresponding pods.

License

Copyright 2023 OPTIMAL SYSTEMS GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published