Installation¶
What’s in this document?
Prerequisites¶
To install Ontotext Metadata Studio, you will need the following tools and files:
Kubernetes Cluster¶
Currently, the only supported installation method for Metadata Studio is to install it inside a Kubernetes cluster using the official Helm charts.
Before continuing with the installation, you will need access to a functional Kubernetes cluster. Also, in order to be able to access the web application, an Ingress controller needs to be deployed.
Local cluster¶
There are a number of tools that enable you to create a local Kubernetes cluster. In this guide, the cluster will be created with kind.
To create a new cluster with kind:
First, create a single-node cluster. Note that since the node is running inside a Docker container, the
extraPortMappings
section is required to map the container ports to the host in order to able to access the Ingress controller.cat <<EOF | kind create cluster --config=- kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane kubeadmConfigPatches: - | kind: InitConfiguration nodeRegistration: kubeletExtraArgs: node-labels: "ingress-ready=true" extraPortMappings: - containerPort: 80 hostPort: 80 protocol: TCP - containerPort: 443 hostPort: 443 protocol: TCP EOF
Deploy the Nginx Ingress controller.
kubectl apply --filename https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
Licenses¶
Ontotext Metadata Studio and GraphDB Enterprise Edition require a license to function. These should be provided as secrets in the cluster before installing.
To create the secrets, execute the following commands:
kubectl create secret generic metadata-studio-license \
--from-file metadata-studio.license=/path/to/metadata-studio.license
kubectl create secret generic graphdb-license \
--from-file graphdb.license=/path/to/graphdb-ee.license
Installation with Helm¶
Once you have a running Kubernetes cluster, you can install Metadata Studio using Helm.
To download the Helm chart, you need to add the Ontotext Helm chart repository:
helm repo add ontotext http://maven.ontotext.com/repository/helm-public/
After that, the Helm chart can be installed using the following command:
helm upgrade --install --timeout 10m metadata-studio ontotext/metadata-studio
Once all pods are ready and the jobs are completed, the Metadata Studio web application can be accessed at http://omds.127.0.0.1.nip.io. To change the host on which the application can be accessed, see the Additional configuration section.
Additional Configuration¶
Changing the Ingress host¶
By default, the address on the application will be http://omds.127.0.0.1.nip.io. This is suitable for local previews, but not for production.
To deploy the application on a different domain, certain configuration properties need to be changed:
Create a file called
values.overrides.yaml
.Considering that Metadata Studio needs to be accessible at http://metadata-studio.example.com, place the following content in the file:
ingress: host: metadata-studio.example.com graphdb: deployment: host: metadata-studio.example.com web: configuration: OMDS_OAUTH_REDIRECT_URI: http://metadata-studio.example.com/oauth OMDS_AUTHORIZATION_ENDPOINT: http://metadata-studio.example.com/auth/realms/metadata-studio/protocol/openid-connect/auth OMDS_TOKEN_ENDPOINT: http://metadata-studio.example.com/auth/realms/metadata-studio/protocol/openid-connect/token OMDS_END_SESSION_ENDPOINT: http://metadata-studio.example.com/auth/realms/metadata-studio/protocol/openid-connect/logout keycloak: realm: rootUrl: http://metadata-studio.example.com
Now, Ontotext Metadata Studio can be installed with the following command:
helm upgrade --install --timeout 15m --values /path/to/values.overrides.yaml metadata-studio ontotext/metadata-studio
Configuring Tagging service API key¶
The Ontotext Tagging service requires an API to function. To provide the key, include it in the values.overrides.yaml
file:
service:
configurationSecret:
tag.api.key: my-tag-api-key
Changing the default Metadata Studio logo¶
Metadata Studio provides the option to change its default logo.
To deploy the application with a different logo:
Create a configmap with the following structure (the below K8S configmap name serves as an example):
apiVersion: v1 kind: ConfigMap metadata: name: omds-logo-config binaryData: logo.png: {{ .Files.Get "files/logo.png" | b64enc }} favicon.ico: {{ .Files.Get "files/favicon.ico" | b64enc }}
Provide the files mentioned in the configmap.
Create a file called
values.overrides.yaml
.In it, place the following content:
logo: override: true configmap: omds-logo-config
Now, Metadata Studio can be installed with the following command:
helm upgrade --install --timeout 15m --values /path/to/values.overrides.yaml metadata-studio ontotext/metadata-studio