Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
Resources & Remarks Modification History
|
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
|
...
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 Component | Function |
---|---|
PostgreSQL | database service |
Elasticsearch | search engine |
Minio | object storage |
Gogs as of 2021 Autumn: Gitea | self-hosted Git service |
RabbitMQ | message broker |
Keycloak | identity and access management service |
Redis | in-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 language bash 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 language bash 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'sLOAD_BALANCER_IP
for the parameteryuuvis.
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 language bash kubectl create namespace infrastructure helm install infrastructure ./infrastructure --namespace infrastructure
Wait for until the jobs are done.
Code Block language bash 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 language bash 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 language bash 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'sLOAD_BALANCER_IP
for the parameteryuuvis.
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 language bash kubectl create namespace yuuvis helm install yuuvis ./yuuvis --namespace yuuvis
Wait for the pods to be ready:
Code Block language bash kubectl get po -n yuuvis
...
- Adjust the docker registry credentials.
Install the Helm Chart:
Code Block language bash helm install client ./client --namespace yuuvis
Wait for the pods to be ready:
Code Block language bash 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 language bash 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 language bash 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 theyuuvis.management.console.deploy
parameter must be set totrue
in thevalues.yaml
file.Code Block language yml yuuvis: management: console: deploy: true
- Configure the tenant management console.
>> MANAGEMENT-CONSOLE-CLIENT Service
'monitoring' Helm Chart
Install the prometheus monitoring operator.
Code Block language bash helm install prometheus-operator stable/prometheus-operator --namespace infrastructure --values ./monitoring/values.yaml
Verify that the prometheus operator chart has been deployed.
Code Block language bash helm list --namespace infrastructure
Get the monitoring operator pod status.
Code Block language bash kubectl --namespace infrastructure get pods -l "release=prometheus-operator"
Finally, setup the alerting rules and service monitor by running these two commands:
Code Block language bash kubectl apply -f ./monitoring/templates/prometheus-alerting-rule.yaml -n infrastructure kubectl apply -f ./monitoring/templates/servicemonitor
Install the
monitoring
Helm Chart:Code Block language bash 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 language bash 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 language bash helm uninstall infrastructure --namespace infrastructure
After uninstalling, run the following two commands:
Code Block language bash 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 language bash helm uninstall monitoring --namespace monitoring helm uninstall prometheus-operator --namespace infrastructure
...