CINXE.COM
Installation — Metadata Studio 3.11.0 documentation
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-11346334-10']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <title>Installation — Metadata Studio 3.11.0 documentation</title> <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/css/bootstrap.min.css" type="text/css" /> <link rel="stylesheet" href="_static/css/bootstrap-ontotext-theme.css" type="text/css" /> <link rel="stylesheet" href="_static/css/custom.css" type="text/css" /> <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> <script src="_static/jquery.js"></script> <script src="_static/underscore.js"></script> <script src="_static/doctools.js"></script> <script src="_static/language_data.js"></script> <script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="Configuration" href="configuration.html" /> <link rel="prev" title="Security" href="security-container.html" /> <meta charset='utf-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'> <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'> <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Favicon --> <link rel="apple-touch-icon" sizes="180x180" href="/omds/3.11/_static/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/omds/3.11/_static/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/omds/3.11/_static/favicon-16x16.png"> <link rel="manifest" type="application/manifest+json" href="/omds/3.11/_static/site.webmanifest"> <script src="/omds/3.11/_static/js/jquery-1.12.4.min.js"></script> <script src="/omds/3.11/_static/js/jquery-fix.js"></script> <script src="/omds/3.11/_static/bootstrap-sphinx.js"></script> <!--bootstrap 4 scripts--> <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script> <script type="text/javascript"> //temporary solution to remove sphinx css $(document).ready(function() { $("link[href*='basic.css']").remove(); $("link[href*='bootstrap-sphinx.css']").remove(); }); //hide the other collapsible elements on collapsing a menu item var $myGroup = $('#side-menu-accoridion'); $myGroup.on('show.bs.collapse','.collapse', function() { $myGroup.find('.collapse.show').collapse('hide'); }); $(function () { $('[data-toggle="tooltip"]').tooltip(); $('#scrollToTop').click( function() { $('html, body').animate({scrollTop: '0px'}, 300); }); }); </script> <!-- GraphiQL --> <script src="https://cdn.jsdelivr.net/react/15.4.2/react.min.js"></script> <script src="https://cdn.jsdelivr.net/react/15.4.2/react-dom.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/jazzyray/sphinx-graphiql@master/static/graphiql/graphiql.min.js"></script> <link href="https://cdn.jsdelivr.net/gh/jazzyray/sphinx-graphiql@master/static/graphiql/graphiql.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/gh/jazzyray/sphinx-graphiql@a048f5e9c6fb3932d7ba3bcea8c56e1d918903d0/static/styles.css" rel="stylesheet"> <script type="text/javascript"> // graphql query fetcher const graphQLFetcher = function(endpoint, token, insecure) { endpoint = endpoint || "https://swapi-platform.ontotext.com/graphql"; insecure = insecure || false return function(graphQLParams) { const params = { method: 'post', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token }, body: JSON.stringify(graphQLParams), credentials: 'include', insecure: true, }; return fetch(endpoint, params) .then(function (response) { return response.text(); }) .then(function (responseBody) { try { return JSON.parse(responseBody); } catch (error) { return responseBody; } }); } }; // create GraphiQL components and embed into HTML const setupGraphiQL = function() { if (typeof(React) === 'undefined' || typeof(ReactDOM) === 'undefined' || typeof(GraphiQL) === 'undefined') { return; } const targets = document.getElementsByClassName('graphiql'); for (let i = 0; i < targets.length; i++) { const target = targets[i]; const endpoint = target.getElementsByClassName("endpoint")[0].innerHTML.trim(); let token = target.getElementsByClassName("token") if ((token === null) || (token[0].innerHTML.trim() === "")) { // No token so default it to a pre-baked ReadOnly Token // Expires 20 April 2022 token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkhYajdRQndWRzVPVERuMjlobWJsUDZLVHVKLTZZdnpUIn0.eyJhdWQiOiI2NzJjYTdiMy1jMzcyLTRkZjMtODJkOC05YTFhMGQ3ZDY4YzEiLCJleHAiOjE2NTA4NjAwNjAsImlhdCI6MTU4Nzc0NjE1NiwiaXNzIjoic3dhcGktcGxhdGZvcm0ub250b3RleHQuY29tIiwic3ViIjoiMDNhNDlkZjQtMGQwOS00NmNmLWFhNWUtNjVhNzNiNmYxN2ZmIiwiYXV0aGVudGljYXRpb25UeXBlIjoiUEFTU1dPUkQiLCJlbWFpbCI6InJlYWRvbmx5dXNlckBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJSZWFkT25seVVzZXIiLCJhcHBsaWNhdGlvbklkIjoiNjcyY2E3YjMtYzM3Mi00ZGYzLTgyZDgtOWExYTBkN2Q2OGMxIiwicm9sZXMiOlsiUmVhZE9ubHkiXX0.iZiHf-vgNddiNOCBXT6cdYDOnpR_fk1EQn6UICBTETY" } else { token = token[0].innerHTML.trim(); } const insecure = target.getElementsByClassName("insecure")[0].innerHTML.trim(); const query = target.getElementsByClassName("query")[0].innerHTML.trim(); const response = target.getElementsByClassName("response")[0].innerHTML.trim(); const graphiQLElement = React.createElement(GraphiQL, { fetcher: graphQLFetcher(endpoint, token, insecure), schema: undefined, query: query, response: response, token: token }); ReactDOM.render(graphiQLElement, target); } }; $(document).ready(function() { // if graphiql elements present, setup graphiql if (document.getElementsByClassName('graphiql').length > 0) { setupGraphiQL(); } }) </script> <meta name="msapplication-TileImage" content="/search/documentation/home/images/visual_Logo_GraphDB_02_12_2015.png"> </head><body> <div id="page"> <div id="sidebar" class="bs-sidenav bg-lightgray" data-spy="affix"> <div class="hidden-xs hidden-sm"> <div class="bg-secondary d-flex"> <a href="/omds/3.11/index.html" class="brand" title="Metadata Studio 3.11"> <img src="/omds/3.11/_static/metadata-studio.png" alt="Metadata Studio logo" height="44" class="logo"> <span>3.11</span> </a> <a class="ml-auto btn btn-primary hidden-lg-up d-flex" data-toggle="collapse" href="#collapseSideNav" aria-expanded="false" aria-controls="collapseExample"> <span class="icon-hbars align-self-center"></span> </a> </div> <div id="collapseSideNav" class="hidden-mobile-nav"> <div class="p-3"> <form action="/omds/3.11/search.html" method="get"> <div class="input-group input-group-sm"> <span class="input-group-addon icon"><span class="icon-search icon-lg text-muted"></span></span> <input type="text" name="q" class="form-control" placeholder="Search the documentation..."> <input type="hidden" name="check_keywords" value="yes"> <input type="hidden" name="area" value="default"> </div> </form> <div class="mt-3"> <div class="dropdown d-inline-block"> <button class="btn btn-link dropdown-toggle p-0" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Metadata Studio </button> <span class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <script type="text/javascript"> var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", "https://platform.ontotext.com/services.txt", false ); xmlHttp.send( null ); var services = xmlHttp.responseText; var servicesSplit = services.split("\n"); for (var i = 0; i < servicesSplit.length; i++) { var serviceSplit = servicesSplit[i]; if (serviceSplit.length !== 0) { document.write('<a class="dropdown-item" href="/' + serviceSplit.split(",")[1] + '">' + serviceSplit.split(",")[0] + '</a>'); } } </script> </span> </div> </div> </div> <div class="sidebar-menu"> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="index.html">General</a></li> <li class="toctree-l1"><a class="reference internal" href="architecture-and-components.html">Architecture & Components</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a><ul> <li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a></li> <li class="toctree-l2"><a class="reference internal" href="#kubernetes-cluster">Kubernetes Cluster</a><ul> <li class="toctree-l3"><a class="reference internal" href="#local-cluster">Local cluster</a></li> <li class="toctree-l3"><a class="reference internal" href="#licenses">Licenses</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="#installation-with-helm">Installation with Helm</a></li> <li class="toctree-l2"><a class="reference internal" href="#additional-configuration">Additional Configuration</a><ul> <li class="toctree-l3"><a class="reference internal" href="#changing-the-ingress-host">Changing the Ingress host</a></li> <li class="toctree-l3"><a class="reference internal" href="#configuring-tagging-service-api-key">Configuring Tagging service API key</a></li> <li class="toctree-l3"><a class="reference internal" href="#changing-the-default-metadata-studio-logo">Changing the default Metadata Studio logo</a></li> </ul> </li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li> <li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="migration-guide.html">Migration Guide</a></li> <li class="toctree-l1"><a class="reference internal" href="dependencies-and-license.html">Dependencies & License</a></li> <li class="toctree-l1"><a class="reference internal" href="support.html">Support</a></li> </ul> </div> <hr class="m-0"> <div class="sidebar-menu"> <ul id="side-menu-accoridion" role="tablist" aria-multiselectable="true"> <li class="toctree-l1"> <a data-toggle="collapse" data-parent="#side-menu-accoridion" href="#collapse7" aria-expanded="false" aria-controls="collapse7"> Previous versions </a> <ul id="collapse7" class="collapse" role="tabpanel" aria-labelledby="heading7" aria-expanded="true"> <!-- <li><a class="menu-item-link" href="/3.0/">Metadata Studio 3.0</a></li> --> </ul> </li> </ul> </div></div> </div> </div> <div class="main-container pb-5"> <div class="container-fluid"> <div class="section" id="installation"> <h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">露</a></h1> <div class="contents local topic" id="what-s-in-this-document"> <p class="topic-title"><cite>What鈥檚 in this document?</cite></p> <ul class="simple"> <li><a class="reference internal" href="#prerequisites" id="id3">Prerequisites</a></li> <li><a class="reference internal" href="#kubernetes-cluster" id="id4">Kubernetes Cluster</a><ul> <li><a class="reference internal" href="#local-cluster" id="id5">Local cluster</a></li> <li><a class="reference internal" href="#licenses" id="id6">Licenses</a></li> </ul> </li> <li><a class="reference internal" href="#installation-with-helm" id="id7">Installation with Helm</a></li> <li><a class="reference internal" href="#additional-configuration" id="id8">Additional Configuration</a><ul> <li><a class="reference internal" href="#changing-the-ingress-host" id="id9">Changing the Ingress host</a></li> <li><a class="reference internal" href="#configuring-tagging-service-api-key" id="id10">Configuring Tagging service API key</a></li> <li><a class="reference internal" href="#changing-the-default-metadata-studio-logo" id="id11">Changing the default Metadata Studio logo</a></li> </ul> </li> </ul> </div> <div class="section" id="prerequisites"> <span id="installation-prerequisites"></span><h2><a class="toc-backref" href="#what-s-in-this-document">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline">露</a></h2> <p>To install Ontotext Metadata Studio, you will need the following tools and files:</p> <ul class="simple"> <li>Obtain a license file for GraphDB 9.11.x Enterprise Edition.</li> <li>Obtain a license file for Ontotext Metadata Studio.</li> <li>Install <a class="reference external" href="https://helm.sh/docs/intro/install/">helm</a>.</li> <li>Install <a class="reference external" href="https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/">kubectl</a>.</li> </ul> </div> <div class="section" id="kubernetes-cluster"> <span id="installation-kubernetes-cluster"></span><h2><a class="toc-backref" href="#what-s-in-this-document">Kubernetes Cluster</a><a class="headerlink" href="#kubernetes-cluster" title="Permalink to this headline">露</a></h2> <p>Currently, the only supported installation method for Metadata Studio is to install it inside a Kubernetes cluster using the official Helm charts.</p> <p>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.</p> <div class="section" id="local-cluster"> <h3><a class="toc-backref" href="#what-s-in-this-document">Local cluster</a><a class="headerlink" href="#local-cluster" title="Permalink to this headline">露</a></h3> <p>There are a number of tools that enable you to create a local Kubernetes cluster. In this guide, the cluster will be created with <a class="reference external" href="https://kind.sigs.k8s.io/docs/user/quick-start/">kind</a>.</p> <p>To create a new cluster with kind:</p> <ol class="arabic"> <li><p class="first">First, create a single-node cluster. Note that since the node is running inside a Docker container, the <code class="docutils literal notranslate"><span class="pre">extraPortMappings</span></code> section is required to map the container ports to the host in order to able to access the Ingress controller.</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cat <span class="s"><<EOF | kind create cluster --config=-</span> <span class="s">kind: Cluster</span> <span class="s">apiVersion: kind.x-k8s.io/v1alpha4</span> <span class="s">nodes:</span> <span class="s">- role: control-plane</span> <span class="s"> kubeadmConfigPatches:</span> <span class="s"> - |</span> <span class="s"> kind: InitConfiguration</span> <span class="s"> nodeRegistration:</span> <span class="s"> kubeletExtraArgs:</span> <span class="s"> node-labels: "ingress-ready=true"</span> <span class="s"> extraPortMappings:</span> <span class="s"> - containerPort: 80</span> <span class="s"> hostPort: 80</span> <span class="s"> protocol: TCP</span> <span class="s"> - containerPort: 443</span> <span class="s"> hostPort: 443</span> <span class="s"> protocol: TCP</span> <span class="s">EOF</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">Deploy the <a class="reference external" href="https://docs.nginx.com/nginx-ingress-controller/">Nginx Ingress controller</a>.</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>kubectl apply --filename https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml </pre></div> </div> </div></blockquote> </li> </ol> </div> <div class="section" id="licenses"> <h3><a class="toc-backref" href="#what-s-in-this-document">Licenses</a><a class="headerlink" href="#licenses" title="Permalink to this headline">露</a></h3> <p>Ontotext Metadata Studio and GraphDB Enterprise Edition require a license to function. These should be provided as secrets in the cluster before installing.</p> <p>To create the secrets, execute the following commands:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>kubectl create secret generic metadata-studio-license <span class="se">\</span> --from-file metadata-studio.license<span class="o">=</span>/path/to/metadata-studio.license kubectl create secret generic graphdb-license <span class="se">\</span> --from-file graphdb.license<span class="o">=</span>/path/to/graphdb-ee.license </pre></div> </div> </div> </div> <div class="section" id="installation-with-helm"> <span id="id1"></span><h2><a class="toc-backref" href="#what-s-in-this-document">Installation with Helm</a><a class="headerlink" href="#installation-with-helm" title="Permalink to this headline">露</a></h2> <p>Once you have a running <a class="reference internal" href="#installation-kubernetes-cluster"><span class="std std-ref">Kubernetes cluster</span></a>, you can install Metadata Studio using Helm.</p> <ol class="arabic"> <li><p class="first">To download the Helm chart, you need to add the Ontotext Helm chart repository:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>helm repo add ontotext http://maven.ontotext.com/repository/helm-public/ </pre></div> </div> </div></blockquote> </li> <li><p class="first">After that, the Helm chart can be installed using the following command:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>helm upgrade --install --timeout 10m metadata-studio ontotext/metadata-studio </pre></div> </div> </div></blockquote> </li> </ol> <p>Once all pods are ready and the jobs are completed, the Metadata Studio web application can be accessed at <a class="reference external" href="http://omds.127.0.0.1.nip.io">http://omds.127.0.0.1.nip.io</a>. To change the host on which the application can be accessed, see the <a class="reference internal" href="#additional-configuration"><span class="std std-ref">Additional configuration</span></a> section.</p> </div> <div class="section" id="additional-configuration"> <span id="id2"></span><h2><a class="toc-backref" href="#what-s-in-this-document">Additional Configuration</a><a class="headerlink" href="#additional-configuration" title="Permalink to this headline">露</a></h2> <div class="section" id="changing-the-ingress-host"> <span id="additional-configuration-changing-ingress-host"></span><h3><a class="toc-backref" href="#what-s-in-this-document">Changing the Ingress host</a><a class="headerlink" href="#changing-the-ingress-host" title="Permalink to this headline">露</a></h3> <p>By default, the address on the application will be <a class="reference external" href="http://omds.127.0.0.1.nip.io">http://omds.127.0.0.1.nip.io</a>. This is suitable for local previews, but not for production.</p> <p>To deploy the application on a different domain, certain configuration properties need to be changed:</p> <ol class="arabic"> <li><p class="first">Create a file called <code class="file docutils literal notranslate"><span class="pre">values.overrides.yaml</span></code>.</p> </li> <li><p class="first">Considering that Metadata Studio needs to be accessible at <a class="reference external" href="http://metadata-studio.example.com">http://metadata-studio.example.com</a>, place the following content in the file:</p> <blockquote> <div><div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">ingress</span><span class="p">:</span> <span class="nt">host</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">metadata-studio.example.com</span> <span class="nt">graphdb</span><span class="p">:</span> <span class="nt">configuration</span><span class="p">:</span> <span class="nt">externalUrl</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">metadata-studio.example.com/graphdb/</span> <span class="nt">web</span><span class="p">:</span> <span class="nt">configuration</span><span class="p">:</span> <span class="nt">OMDS_OAUTH_REDIRECT_URI</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">http://metadata-studio.example.com/oauth</span> <span class="nt">OMDS_AUTHORIZATION_ENDPOINT</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">http://metadata-studio.example.com/auth/realms/metadata-studio/protocol/openid-connect/auth</span> <span class="nt">OMDS_TOKEN_ENDPOINT</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">http://metadata-studio.example.com/auth/realms/metadata-studio/protocol/openid-connect/token</span> <span class="nt">OMDS_END_SESSION_ENDPOINT</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">http://metadata-studio.example.com/auth/realms/metadata-studio/protocol/openid-connect/logout</span> <span class="nt">keycloak</span><span class="p">:</span> <span class="nt">realm</span><span class="p">:</span> <span class="nt">rootUrl</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">http://metadata-studio.example.com</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">Now, Ontotext Metadata Studio can be installed with the following command:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>helm upgrade --install --timeout 15m --values /path/to/values.overrides.yaml metadata-studio ontotext/metadata-studio </pre></div> </div> </div></blockquote> </li> </ol> </div> <div class="section" id="configuring-tagging-service-api-key"> <h3><a class="toc-backref" href="#what-s-in-this-document">Configuring Tagging service API key</a><a class="headerlink" href="#configuring-tagging-service-api-key" title="Permalink to this headline">露</a></h3> <p>The Ontotext Tagging and Ontotext CEEL services require an API to function. To provide the key, include it in the <code class="file docutils literal notranslate"><span class="pre">values.overrides.yaml</span></code> file:</p> <div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">service</span><span class="p">:</span> <span class="nt">configurationSecret</span><span class="p">:</span> <span class="nt">tag.api.key</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">my-tag-api-key</span> <span class="l l-Scalar l-Scalar-Plain">ceel.api.key</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">my-tag-api-key</span> </pre></div> </div> </div> <div class="section" id="changing-the-default-metadata-studio-logo"> <span id="additional-configuration-changing-default-omds-logo"></span><h3><a class="toc-backref" href="#what-s-in-this-document">Changing the default Metadata Studio logo</a><a class="headerlink" href="#changing-the-default-metadata-studio-logo" title="Permalink to this headline">露</a></h3> <p>Metadata Studio provides the option to change its default logo.</p> <p>To deploy the application with a different logo:</p> <ol class="arabic"> <li><p class="first">Create a configmap with the following structure (the below K8S configmap name serves as an example):</p> <blockquote> <div><div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">apiVersion</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">v1</span> <span class="nt">kind</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">ConfigMap</span> <span class="nt">metadata</span><span class="p">:</span> <span class="nt">name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">omds-logo-config</span> <span class="nt">binaryData</span><span class="p">:</span> <span class="nt">logo.png</span><span class="p">:</span> <span class="p p-Indicator">{{</span> <span class="nv">.Files.Get "files/logo.png" | b64enc</span> <span class="p p-Indicator">}}</span> <span class="nt">favicon.ico</span><span class="p">:</span> <span class="p p-Indicator">{{</span> <span class="nv">.Files.Get "files/favicon.ico" | b64enc</span> <span class="p p-Indicator">}}</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">Provide the files mentioned in the configmap.</p> </li> <li><p class="first">Create a file called <code class="file docutils literal notranslate"><span class="pre">values.overrides.yaml</span></code>.</p> </li> <li><p class="first">In it, place the following content:</p> <blockquote> <div><div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">logo</span><span class="p">:</span> <span class="nt">override</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">true</span> <span class="nt">configmap</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">omds-logo-config</span> </pre></div> </div> </div></blockquote> </li> <li><p class="first">Now, Metadata Studio can be installed with the following command:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>helm upgrade --install --timeout 15m --values /path/to/values.overrides.yaml metadata-studio ontotext/metadata-studio </pre></div> </div> </div></blockquote> </li> </ol> </div> </div> </div> </div> </div> <hr class="m-0"> <footer class="main-container py-5"> <div class="container-fluid"> <div class="row"> <div class="col-12 col-sm-6 col-lg-4"> <h4>Download documentation</h4> <ul class="list-inline"> <li class="list-inline-item"> <a href="/omds/3.11/pdf/Metadata-Studio.pdf" download class="btn btn-link text-secondary px-0" target="_blank"><span class="icon-download text-tertiary"></span> PDF</a> </li> <li class="list-inline-item"> <a href="/omds/3.11/epub/Metadata-Studio.epub" download class="btn btn-link text-secondary px-0" target="_blank"><span class="icon-download text-tertiary"></span> ePUB</a> </li> </ul> </div> <div class="col-12 col-sm-6 col-lg-4"> <h4>Contacts</h4> <ul class="list-unstyled mb-4"> <li class="m-0"> <a href="mailto:platform-support@ontotext.com" class="btn btn-link text-secondary px-0" target="_blank"> <span class="icon-email text-tertiary"></span> <b>Support</b> <span class="hidden-lg-down">路 platform-support@ontotext.com</span> </a> </li> <li class="m-0"> <a href="mailto:sales@ontotext.com" class="btn btn-link text-secondary px-0" target="_blank"> <span class="icon-email text-tertiary"></span> <b>Sales</b> <span class="hidden-lg-down">路 sales@ontotext.com</span> </a> </li> <li class="m-0 mb-3"> <a href="mailto:info@ontotext.com" class="btn btn-link text-secondary px-0" target="_blank"> <span class="icon-email text-tertiary"></span> <b>General</b> <span class="hidden-lg-down">路 info@ontotext.com</span> </a> </li> <li class="m-0"><span href="mailto:info@ontotext.com" class="btn btn-link text-secondary px-0"><span class="icon-phone text-tertiary"></span> <b>US (toll free)</b> 路 1-866-972-6686</span></li> <li class="m-0"><span href="mailto:info@ontotext.com" class="btn btn-link text-secondary px-0"><span class="icon-phone text-tertiary"></span> <b>Europe</b> 路 +359 2 974 61 60</span></li> </ul> </div> <div class="col-12 col-sm-6 col-lg-4 mb-4"> <h4>More info</h4> <ul class="list-unstyled mb-4"> <li class="m-0"><a href="http://www.ontotext.com/company/" class="btn btn-link text-secondary px-0" target="_blank"><span class="icon-external text-tertiary"></span> About Ontotext</a></li> <li class="m-0"><a href="https://www.w3.org/standards/semanticweb/" class="btn btn-link text-secondary px-0" target="_blank"><span class="icon-external text-tertiary"></span> Semantic web</a></li> </ul> <h4>Follow us</h4> <div class="mb-4"> <a data-toggle="tooltip" title="" href="https://www.linkedin.com/company/ontotext-ad" class="btn btn-link px-0" target="_blank" data-original-title="LinkedIn"><span class="icon-linkedin icon-lg text-linkedin"></span></a> <a data-toggle="tooltip" title="" href="https://twitter.com/ontotext" class="btn btn-link px-0" target="_blank" data-original-title="Twitter"><span class="icon-twitter icon-lg text-twitter"></span></a> <a data-toggle="tooltip" title="" href="https://www.facebook.com/Ontotext" class="btn btn-link px-0" target="_blank" data-original-title="Facebook"><span class="icon-facebook icon-lg text-facebook"></span></a> <a data-toggle="tooltip" title="" href="https://www.youtube.com/ontotext" class="btn btn-link px-0" target="_blank" data-original-title="Youtube"><span class="icon-youtube icon-lg text-youtube"></span></a> <!-- <a data-toggle="tooltip" title="" href="https://plus.google.com/+Ontotext" class="btn btn-link px-0" target="_blank" data-original-title="Google+"><span class="icon-google-plus icon-lg text-google"></span></a> --> </div> </div> </div> <!-- <p class="pull-right"> </p> --> <div class="text-muted small d-flex align-items-center"> <div> <a href="http://ontotext.com/" target="_blank" class="d-inline-block mb-3 mb-md-0 mr-2"><img src="_static/ot-logo.svg" class="m-0" height="26" alt="Ontotext logo"></a> <br class="hidden-md-up"> © Copyright 2024, Ontotext. Last updated on 20 December, 2024. | <a href="https://ontotext.com/privacy-policy-2/">Privacy</a> </div> <div class="ml-auto"> <button id="scrollToTop" class="btn btn-link" data-toggle="tooltip" data-placement="top" title="" data-original-title="Back to top"><span class="icon-arrow-up icon-2x"></span></button> </div> </div> </div> </footer> </div> </body> </html>