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.
Please use helm version 3.
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."
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/
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
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.
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.
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
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
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 rendition services with:
kubectl get po -n yuuvis
helm install rendition ./rendition --namespace yuuvis
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).
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
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.
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.
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
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
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.
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.
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.
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.
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.