Installation

Prerequisites

To install Ontotext Metadata Studio, you will need the following tools and files:

  • Obtain a license file for GraphDB 9.11.x Enterprise Edition.
  • Obtain a license file for Ontotext Metadata Studio.
  • Install helm.
  • Install kubectl.

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:

  1. 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
    
  2. 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.

  1. 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/
    
  2. 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:

  1. Create a file called values.overrides.yaml.

  2. 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
    
  3. 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