Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties
hiddentrue
idPROGRESS

Product Version2021 Summer
Report Note
AssigneeAntje

Resources & Remarks


Modification History

NameDateProduct VersionAction
Antje08 FEB 20212.4New page properties macro.
Agnieszka14 JAN 20222022 SpringrLANG



Excerpt

Install and configure services required services in  in order to run yuuvis® Momentum on an environment supporting Kubernetes. Start with Helm charts for testing purpose purposes and replace default third-party software by according to your preferences.


Section
bordertrue


Column

Table of Contents

Table of Contents
exclude(Table of Contents|Read on|yuuvis® Postman Collections|Release Information|yuuvis® Momentum Requirements)


...

Add your credentials for the docker.yuuvis.org registry in the values.yaml files of the helm chartsHelm Charts. Replace all changeme default passwords in the values.yaml of the charts you plan to use.

All yuuvis® Momentum services reach out to the configservice CONFIGSERVICE on startup to retrieve their configuration files, which results in a short delay before that services are fully operable. The yuuvis chart configures the AUTHENTICATION and ORGANIZATION services for OAuth2 with the tenants yuuvistest and testyuuvis.

...

The infrastructure Helm Chart provides third-party software that can be combined with yuuvis® Momentum in order to build a test system. You should replace those components according to your preferences and needs for in your productive system:

Infrastructure ComponentFunction
PostgreSQLdatabase service
Elasticsearchsearch engine
Minioobject storage
Gogs
as of 2021 Autumn: Gitea
self-hosted Git service
RabbitMQmessage broker
Keycloakidentity and access management service
Redisin-memory data structure store

In order to install and use the set of third-party software provided in the infrastructure Helm Chart, follow the installation these steps:

  • Add the required Helm repositories:

    Code Block
    languagebash
    helm repo add minio https://helm.min.io/
    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm repo add gitea-charts https://dl.gitea.io/charts/


  • Update the Infrastructure dependencies:

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


  • Adjust the values.yaml file:

    • Adjust docker registry credentials.
    • Specify the address of your yuuvis® Momentum cluster by setting your CLUSTER_IP or your AUTHENTICATION service's LOAD_BALANCER_IP for the parameter yuuvis.authentication.ip.
    • Optionally change passwords.
    • Optionally change the used storage classes.
  • Install the infrastructure services. Naming the chart during installation is necessary as each service would otherwise receive a default prefix from Kubernetes, making it difficult for the yuuvis® Momentum services to interact with them later. This also enables us to rollback our installation.

    Code Block
    languagebash
    kubectl create namespace infrastructure
    helm install infrastructure ./infrastructure --namespace infrastructure


  • Wait for until the jobs are done.

    Code Block
    languagebash
    kubectl get jobs -n infrastructure

    There are two jobs preparing the git server and the keycloak Keycloak environment that need to be completed.

    Code Block
    languagebash
    NAME                              COMPLETIONS   DURATION   AGE
    gogsrepo-init                     1/1           83s        8m4s
    keycloak-create-selfsigned-cert   1/1           8m4s       8m4s


  • Run the  the following command to see if the infrastructure chart was deployed (STATUS DEPLOYED).

    Code Block
    languagebash
     helm list --namespace infrastructure


...

  • Adjust the values.yaml file:

    • Adjust docker registry credentials.
    • If you are using Keycloak as identity provider, specify its address by setting your CLUSTER_IP or your Keycloak's LOAD_BALANCER_IP for the parameter yuuvis.keycloak.ip.
  • Navigate to the root helm chart Helm Chart directory within the cloned repository.
  • Install the Helm Chart. Again, naming our chart prevents randomization of service identifiers and gives us the ability to rollback all associated services.

    Code Block
    languagebash
    kubectl create namespace yuuvis
    helm install yuuvis ./yuuvis --namespace yuuvis


  • Wait for the pods to be ready:

    Code Block
    languagebash
    kubectl get po -n yuuvis


...

  • Adjust the docker registry credentials.
  • Install the Helm Chart:

    Code Block
    languagebash
    helm install client ./client --namespace yuuvis


  • Wait for the pods to be ready:

    Code Block
    languagebash
    kubectl get po -n yuuvis


  • The installation of the client Helm chart Chart will change the systemHookConfiguration.json. Services referring to this configuration will only read it once at startup. Thus, the corresponding services must be restarted to apply the new configuration. E.g., restart the API Gateway via:

    Code Block
    languagebash
    kubectl rollout restart deployment api -n yuuvis


  • A role The YUUVIS_CREATE_OBJECT role must be created and assigned to users who should are supposed to be able to create objects in the client.

...

  • Install the Helm Chart:

    Code Block
    languagebash
    kubectl get po -n yuuvis
    helm install management ./management --namespace yuuvis


  • The management Helm chart provides Chart provides a tenant-management api API and a tenant management console. Per default, the deployment of the tenant management console services is disabled. To deploy those services, the parameter the yuuvis.management.console.deploy parameter must be set to true in the values.yaml file.

    Code Block
    languageyml
    yuuvis:
      management:
        console:
          deploy: true
    


  • Configure the tenant management console.
    >> MANAGEMENT-CONSOLE-CLIENT Service

'monitoring' Helm Chart

  • Install the prometheus monitoring operator.

    Code Block
    languagebash
    helm install prometheus-operator stable/prometheus-operator --namespace infrastructure --values ./monitoring/values.yaml


  • Verify that the prometheus operator chart has been deployed.

    Code Block
    languagebash
    helm list --namespace infrastructure
    


  • Get the monitoring operator pod status.

    Code Block
    languagebash
    kubectl --namespace infrastructure get pods -l "release=prometheus-operator"


  • Finally, setup the alerting rules and service monitor by running these two commands: 

    Code Block
    languagebash
    kubectl apply -f ./monitoring/templates/prometheus-alerting-rule.yaml -n infrastructure
    kubectl apply -f ./monitoring/templates/servicemonitor


  • Install the monitoring Helm Chart:

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


  • Before deploying the monitoring Helm Chart, adjust the parameters in its values.yaml configuration file.
    >> Service Monitoring

...

  • Update resource files in Git according to the Update Instructions 2021 Winter.
  • All Helm charts Charts except the infrastructure chart can be updated to a new version via:

    Code Block
    languagebash
    helm upgrade <chart name>


  • The third-party infrastructure components have to be updated via individual docker images:
    • Use our current Docker image for Elasticsearch as it includes the required plug-ins.
    • Optionally, use our Keycloak Docker image.
    • Updates for all further third-party components are within the customer's responsibility.

...

'infrastructure' Helm Chart

This chart deletes components required for the monitoring helm chartHelm Chart

  • The rollback of our the installation is possible via:

    Code Block
    languagebash
    helm uninstall infrastructure --namespace infrastructure


  • After uninstalling, run the following two commands:

    Code Block
    languagebash
    kubectl delete clusterrole create-selfsigned-cert 
    kubectl delete clusterrolebinding create-selfsigned-cert


'monitoring' Helm Chart

  • The rollback of our of the installation is possible via:

    Code Block
    languagebash
    helm uninstall monitoring --namespace monitoring
    helm uninstall prometheus-operator --namespace infrastructure


...