update
All checks were successful
Deploy Static Site / deploy (push) Successful in 6m6s

This commit is contained in:
2025-05-29 16:42:45 +04:00
parent e217f89702
commit 00717a92fb
2681 changed files with 173810 additions and 0 deletions

View File

@ -0,0 +1,319 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Install BRIX to Kubernetes</title>
<meta name="generator" content="Help+Manual" />
<meta name="keywords" content="" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Начало внимание This article provides deprecated instructions for BRIX On-Premises. For an up-to-date installation in Kubernetes, refer to Install BRIX Enterprise. Конец..." />
<meta name="picture" content="" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
<meta property="og:url" content="https://brix365.com/en/help" />
<meta property="og:image" content="" />
<link rel="icon" href="favicon.png" type="image/png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./jquery-ui.min.css" />
<link rel="stylesheet" href="default.css" />
<link rel="stylesheet" href="./search-yandex.css" />
<link rel="stylesheet" href="./article.css" />
<link rel="stylesheet" href="./glossary.css" />
<link rel="stylesheet" href="./theme.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="helpman_settings.js"></script>
<script type="text/javascript" src="helpman_topicinit.js"></script>
<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
$(document).ready(function(){highlight();});
</script>
</head>
<body>
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
<header class="header elma-365">
<div class="container">
<a class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-en.svg" alt="header logo">
</a>
<!-- <div class="hero__search-form" id="search-panel">
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
<label class="search-form__label">
<span id="reset-search" class="search__icon"></span>
<input class="search-form__input" type="text">
</label>
<input class="search-form__submit" type="submit" value="Submit">
</form>
</div> -->
<div class="hero__search-form" id="search-panel"> <form class="search-form"> <label class="search-form__label"> <span id="reset-search" class="search__icon"></span> <input class="search-form__input" type="text"> </label> <input class="search-form__submit" type="submit" value="Submit"> </form> </div>
<div class="hero__search">
<a href="#" id="search-icon" class="hero__search-icon">
<img src="search-icon-white.svg" alt="search string">
</a>
<a href="#" id="side-menu-icon" class="hero__side-icon">
<img src="side_menu.svg" alt="side menu">
</a>
</div>
<div class="header__navi">
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
</div>
</div>
</header>
<main class="main container">
<aside class="sidebar" id="sidebar">
<div class="sidebar__header">
<a class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-light-en.svg">
</a>
<span class="sidebar__close elma-365-close" id="close"></span>
</div>
<div class="sidebar__wrapper" id="side-menu">
</div>
</aside>
<article class="article" id="article">
<div class="article-inner">
<div class="content">
<header class="article__header">
<div class="article__bread" style="display:flex; gap:10px;">
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
<div class="topic__breadcrumbs">
<p><a href="elma365-on-premises.html">BRIX On-Premises</a> &gt; Other / Install BRIX to Kubernetes</p>
</div>
</div>
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Install BRIX to Kubernetes</span></h1>
</div>
</header>
<section class="article__content">
<div class="scroll-top-inner">
<a href="#h1-article" class="scroll-top"></a>
</div>
<!-- Placeholder for topic body. -->
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Начало&nbsp;внимание</span></p>
<p class="p_Normal" style="line-height: 1.57;">This article provides deprecated instructions for BRIX On-Premises. For an up-to-date installation in Kubernetes, refer to <a href="installing-elma365-enterprise.html" class="topiclink">Install BRIX Enterprise</a>.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">Конец&nbsp;внимание</span></p>
<p class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px;">BRIX On-Premises can be deployed using Helm v.3 to an existing Kubernetes cluster.</span></p>
<p class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px;">The installed cluster version must support Kubernetes API version 1.21 or higher. Proxying from pods to the external network must also be enabled.</span></p>
<p class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px;">The BRIX comes as two Helm charts that are installed one by one:</span></p>
<ul style="list-style-type:disc">
<li class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px; font-weight: bold;">elma365-dbs</span><span style="font-size: 15px;">. This chart includes a set of databases and data storages necessary for BRIX operation. You can also use custom PostgreSQL, MongoDB, Redis, and RabbitMQ databases and S3 object storage. In this case, you need to specify the connection strings for the </span><code><b>values</b></code><span style="font-size: 15px;"> </span><span style="font-weight: bold;">elma365</span><span style="font-size: 15px;"> chart. Please note, that you can disable the installation of the corresponding components in the </span><code><b>values-dbs.yaml</b></code><span style="font-size: 15px;"> file by setting their values to </span><code><b>false</b></code>. For example, for PostgreSQL<span style="font-size: 15px;">: </span><code><b>global.postgresql.enabled</b></code><span style="font-size: 15px;">. If all five components of the chart are set to </span><code><b>false</b></code><span style="font-size: 15px;">, the chart does not need to be installed. Learn more about connecting to databases in <a href="postgresql.html" class="topiclink">Prepare external databases</a>;</span></li><li class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px; font-weight: bold;">elma365</span><span style="font-size: 15px;">.</span><span style="font-size: 15px; font-weight: bold;"> </span><span style="font-size: 15px;">This chart contains BRIX.</span></li></ul>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p class="p_Normal">Please note, that <span style="font-weight: bold;">elma365-extension</span> charts are no longer supported. You can switch to <span style="font-weight: bold;">elma365-dbs</span> with new versions of databases by creating a dump and restoring it.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<h2 class="p_Heading2"><a id="download-links" class="hmanchor"></a><span class="f_Heading2">Helm chart download links</span></h2>
<ul style="list-style-type:disc">
<li class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px; font-weight: bold;">elma365-dbs</span><span style="font-size: 15px; color: #4d5156; background-color: #ffffff;">:</span><span style="font-size: 15px;"> </span><a href="https://dl.elma365.com/onPremise/latest/elma365-dbs-latest.tar.gz" class="weblink">https://dl.elma365.com/onPremise/latest/elma365-dbs-latest.tar.gz</a></li></ul>
<ul style="list-style-type:disc">
<li class="p_Normal" style="line-height: 1.57;"><span style="font-size: 15px; font-weight: bold;">elma365</span><span style="font-size: 15px;">: <a href="https://dl.elma365.com/onPremise/latest/elma365-latest.tar.gz" class="weblink">https://dl.elma365.com/onPremise/latest/elma365-latest.tar.gz</a></span></li></ul>
<p class="p_Normal" style="line-height: 1.57;">For more information about BRIX download links, see <a href="links-for-install-elma365.html#links-for-install-helm-offline" class="topiclink">Links for downloading BRIX distribution packages</a>.</p>
<h2 class="p_Heading2"><span class="f_Heading2">Install the elma365-dbs chart</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Fill out the variables in the <code><b>values-dbs.yaml</b></code> file. If you are using custom databases, you can disable the installation of the databases included in the package by default.</li><li value="2" class="p_Normal">If a specific <code><b>namespace</b></code> needs to be created, include it in all the installation commands.</li><li value="3" class="p_Normal">Run the following command: </li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;elma365-dbs&nbsp;./elma365-dbs&nbsp;-f&nbsp;values-dbs.yaml&nbsp;[-n&nbsp;namespace]</span></p>
<p class="p_Normal">Please note, that arguments in square brackets are optional. If you use such an argument, specify it without brackets.</p>
<h2 class="p_Heading2"><span class="f_Heading2">Install the elma365 chart</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Fill out the variables in the in the <code><b>values-elma365.yaml</b></code> file.</li><li value="2" class="p_Normal">If you need to restore the dump, you can use the <a href="database-backup-and-recovery.html" class="topiclink">elma365-backupper</a> utility or run the <code><b>elma365db.sh</b></code> script from the <span style="font-weight: bold;">elma365 </span>chart before installing BRIX.</li></ol>
<p class="p_Normal" style="text-indent: -1px; margin: 0 0 0 36px;">Script example:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">./elma365db.sh&nbsp;--restore&nbsp;--namespace&nbsp;elma365&nbsp;--path&nbsp;/backup/path/&nbsp;[--kubeconfig&nbsp;/path/to/config&nbsp;--context&nbsp;prod]</span></p>
<ol style="list-style-type:upper-roman">
<li value="3" style="line-height: 1.57; margin-top: 0; margin-right: 0; margin-bottom: 0;">Run the following command to install the chart: </li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;elma365&nbsp;./elma365&nbsp;-f&nbsp;values-elma365.yaml&nbsp;--timeout=30m&nbsp;--wait&nbsp;[-n&nbsp;namespace]</span></p>
<ol style="list-style-type:upper-roman">
<li value="4" class="p_Normal">Save the <code><b>values-elma365.yaml</b></code> file for future updates.</li><li value="5" class="p_Normal">You can use the <a href="database-backup-and-recovery.html" class="topiclink">elma365-backupper</a> utility or the <code><b>elma365db.sh</b></code> script to create a dump.</li></ol>
<p class="p_Normal" style="text-indent: -1px; margin: 0 0 0 36px;">Script example:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">./elma365db.sh&nbsp;--dump&nbsp;--namespace&nbsp;elma365&nbsp;--path&nbsp;/backup/path/&nbsp;[--kubeconfig&nbsp;/path/to/config&nbsp;--context&nbsp;prod]</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Install monitoring tools (optional)</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Download the Helm chart of the optional addons toolset at:<span style="font-size: 15px;"> </span><span style="font-size: 15px; background-color: #ffffff;"><a href="https://dl.elma365.com/onPremise/latest/addons-latest.tar.gz" target="_blank" class="weblink">https://dl.elma365.com/onPremise/latest/addons-latest.tar.gz</a>.</span></li><li value="2" class="p_Normal">In the <code><b>values-addons.yaml</b></code> file in <code><b>grafana</b></code> and <code><b>kube-prometheus-stack</b></code> blocks, specify the <code><b>namespace</b></code> for the monitoring service, for example <code><b>namespaceOverride: monitoring</b></code>,and the address that the monitoring service will be available at.</li><li value="3" class="p_Normal">Create a <code><b>namespace</b></code> for the monitoring service:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl&nbsp;create&nbsp;namespace&nbsp;monitoring</span></p>
<ol style="list-style-type:upper-roman" start="4">
<li value="4" class="p_CodeExample" style="page-break-inside: avoid;">Install&nbsp;the&nbsp;chart&nbsp;using&nbsp;the&nbsp;following&nbsp;command:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;addons&nbsp;./addons&nbsp;-f&nbsp;values-addons.yaml</span></p>
<ol style="list-style-type:upper-roman" start="5">
<li value="5" class="p_CodeExample" style="page-break-inside: avoid;">In&nbsp;the&nbsp;<code><b>values-elma365.yaml</b></code>&nbsp;file&nbsp;of&nbsp;the&nbsp;<span style="font-weight: bold;">elma365</span>&nbsp;chart,&nbsp;enable&nbsp;dashboards:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">dashboard:</span><br />
<span class="f_CodeExample">enabled:</span><span class="f_CodeExample" style="font-weight: bold;">tru</span>Update&nbsp;the&nbsp;BRIX&nbsp;application&nbsp;using&nbsp;the&nbsp;following&nbsp;command<span style="font-size: 15px; color: #394149;">:</span></p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;elma365&nbsp;./elma365&nbsp;-f&nbsp;values-elma365.yaml&nbsp;--timeout=30m</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Install Linkerd and autoscaling services (optional)</span></h2>
<p class="p_Normal" style="line-height: 1.32;"><span style="font-size: 15px; font-weight: bold; color: #394149;">Linkerd</span><span style="font-size: 15px; color: #394149;"> is a dedicated infrastructure layer that controls service-to-service communication, automatically encrypts connection, and processes request retries and timeouts. It also provides telemetry (success or delay rate) and many other features.</span></p>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal" style="line-height: 1.32;"><span style="font-size: 15px; color: #394149;">Download the </span><span style="font-size: 15px; font-weight: bold; color: #394149;">addons</span><span style="font-size: 15px; color: #394149;"> helm chart using a <a href="install-kubernetes.html#download-links" class="topiclink">Helm chart download link</a>.</span></li><li value="2" class="p_Normal" style="line-height: 1.32;"><span style="font-size: 15px; color: #394149;">Generate certificates using </span><code><b>openssl</b></code><span style="font-size: 15px; color: #394149;"> by running the commands listed below. Linkerd requires a trust anchor certificate and an issuer certificate with its corresponding key to support TLS connections between services. All certificates must use the ECDSA P-256 algorithm.</span></li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">#&nbsp;Generate&nbsp;a&nbsp;CA&nbsp;private&nbsp;key</span><br />
<span class="f_CodeExample">openssl&nbsp;ecparam&nbsp;-name&nbsp;prime256v1&nbsp;-genkey&nbsp;-noout&nbsp;-out&nbsp;ca-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample">#&nbsp;Generate&nbsp;a&nbsp;CA&nbsp;public&nbsp;ke</span><br />
<span class="f_CodeExample">openssl&nbsp;ec&nbsp;-</span><span class="f_CodeExample" style="font-weight: bold;">in</span><span class="f_CodeExample">&nbsp;ca-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem&nbsp;-pubout&nbsp;-out&nbsp;ca-</span><span class="f_CodeExample" style="font-weight: bold;">public</span><span class="f_CodeExample">.pem</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample">#&nbsp;Generate&nbsp;a&nbsp;self-signed&nbsp;CA&nbsp;certificate</span><br />
<span class="f_CodeExample">openssl&nbsp;req&nbsp;-x509&nbsp;-</span><span class="f_CodeExample" style="font-weight: bold;">new</span><span class="f_CodeExample">&nbsp;-key&nbsp;ca-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem&nbsp;-days&nbsp;365&nbsp;-out&nbsp;ca.crt&nbsp;-subj&nbsp;&quot;/CN=root.linkerd.cluster.local&quot;</span><br />
<span class="f_CodeExample">#&nbsp;Generate&nbsp;an&nbsp;issuer&nbsp;private&nbsp;key</span><br />
<span class="f_CodeExample">openssl&nbsp;ecparam&nbsp;-name&nbsp;prime256v1&nbsp;-genkey&nbsp;-noout&nbsp;-out&nbsp;issuer-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample">#&nbsp;Generate&nbsp;an&nbsp;issuer&nbsp;public&nbsp;key</span><br />
<span class="f_CodeExample">openssl&nbsp;ec&nbsp;-</span><span class="f_CodeExample" style="font-weight: bold;">in</span><span class="f_CodeExample">&nbsp;issuer-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem&nbsp;-pubout&nbsp;-out&nbsp;issuer-</span><span class="f_CodeExample" style="font-weight: bold;">public</span><span class="f_CodeExample">.pem</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample">#&nbsp;Generate&nbsp;a&nbsp;certificate&nbsp;signing&nbsp;request</span><br />
<span class="f_CodeExample">openssl&nbsp;req&nbsp;-</span><span class="f_CodeExample" style="font-weight: bold;">new</span><span class="f_CodeExample">&nbsp;-key&nbsp;issuer-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem&nbsp;-out&nbsp;issuer.csr&nbsp;-subj&nbsp;&quot;/CN=identity.linkerd.cluster.local&quot;&nbsp;-addext&nbsp;basicConstraints=critical,CA:TRUE</span><br />
<span class="f_CodeExample">&nbsp;</span><br />
<span class="f_CodeExample">#&nbsp;Generate&nbsp;an&nbsp;issuer&nbsp;certificate&nbsp;by&nbsp;signing&nbsp;the&nbsp;request</span><br />
<span class="f_CodeExample">openssl&nbsp;x509&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-extfile&nbsp;/etc/ssl/openssl.cnf&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-extensions&nbsp;v3_ca&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-req&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-</span><span class="f_CodeExample" style="font-weight: bold;">in</span><span class="f_CodeExample">&nbsp;issuer.csr&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-days&nbsp;180&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-CA&nbsp;ca.crt&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-CAkey&nbsp;ca-</span><span class="f_CodeExample" style="font-weight: bold;">private</span><span class="f_CodeExample">.pem&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-CAcreateserial&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-extensions&nbsp;v3_ca&nbsp;\</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-out&nbsp;issuer.crt</span><br />
<span class="f_CodeExample">#&nbsp;Delete&nbsp;the&nbsp;signing&nbsp;request</span><br />
<span class="f_CodeExample">rm&nbsp;issuer.csr</span></p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" class="p_CodeExample" style="page-break-inside: avoid;"><span style="font-size: 15px; color: #394149;">Enable&nbsp;paramter&nbsp;</span><code><b>linkerd2</b></code><span style="font-size: 15px; color: #394149;">&nbsp;in&nbsp;the&nbsp;</span><code><b>values-addons.yaml</b></code><span style="font-size: 15px; color: #394149;">&nbsp;file&nbsp;of&nbsp;the&nbsp;</span><span style="font-size: 15px; font-weight: bold; color: #394149;">addons&nbsp;</span><span style="font-size: 15px; color: #394149;">chart:</span></li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">linkerd2:</span><br />
<span class="f_CodeExample"> &nbsp;enabled:</span><span class="f_CodeExample" style="font-weight: bold;">true</span></p>
<ol style="list-style-type:upper-roman" start="4">
<li value="4" class="p_Normal">In <code><b>linkerd2</b></code>, specify the needed <code><b>namespace</b></code> form the Linkerd service (for example, <code><b>namespace: linkerd</b></code>) the content of the certificates and the key, and the certificates expiry date (<code><b>crtExpiry</b></code>). Please note, that the value has to be the same as the issuer certificates expiry date.</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">identityTrustAnchorsPEM:&nbsp;|</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-----BEGIN&nbsp;CERTIFICATE-----</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;ca.crt&nbsp;certificate&nbsp;content</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;-----END&nbsp;CERTIFICATE-----</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;identity:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;issuer:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crtExpiry:&nbsp;2023-03-30T05:28:39Z</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tls:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crtPEM:&nbsp;|</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----BEGIN&nbsp;CERTIFICATE-----</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;issuer.crt&nbsp;certificate&nbsp;content&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----END&nbsp;CERTIFICATE-----</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyPEM:&nbsp;|</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----BEGIN&nbsp;EC&nbsp;PRIVATE&nbsp;KEY-----</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;issuer-private.pem&nbsp;certificate&nbsp;content&nbsp;</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-----END&nbsp;EC&nbsp;PRIVATE&nbsp;KEY-----</span></p>
<ol style="list-style-type:upper-roman" start="5">
<li value="5" class="p_CodeExample" style="page-break-inside: avoid;"><span style="font-size: 15px; color: #394149;">Install&nbsp;the&nbsp;chart&nbsp;using&nbsp;the&nbsp;following&nbsp;command:</span></li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;addons&nbsp;./addons&nbsp;-f&nbsp;values-addons.yaml</span></p>
<ol style="list-style-type:upper-roman" start="6">
<li value="6" class="p_Normal">Add an annotation to the <code><b>namespace</b></code> with the BRIX application to automatically inject <span style="font-weight: bold;">Linkerd-proxy</span> containers into BRIX services:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl&nbsp;annotate&nbsp;namespace&nbsp;default&nbsp;linkerd.io/inject=enabled</span></p>
<ol style="list-style-type:upper-roman" start="7">
<li value="7" class="p_Normal">Enable autoscaling of services using the <code><b>autoscaling</b></code> parameter in the <code><b>values-elma365.yaml</b></code> file from the <span style="font-weight: bold;">elma365 </span>chart:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">autoscaling:</span><br />
<span class="f_CodeExample">&nbsp;&nbsp;&nbsp;&nbsp;enabled:</span><span class="f_CodeExample" style="font-weight: bold;">true</span></p>
<ol style="list-style-type:upper-roman" start="8">
<li value="8" class="p_CodeExample" style="page-break-inside: avoid;"><span style="font-size: 15px; color: #394149;">Update&nbsp;the&nbsp;BRIX&nbsp;application&nbsp;using&nbsp;the&nbsp;following&nbsp;command:</span></li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;elma365&nbsp;./elma365&nbsp;-f&nbsp;values-elma365.yaml&nbsp;--timeout=30m</span></p>
<ol style="list-style-type:upper-roman" start="9">
<li value="9" class="p_Normal" style="line-height: 1.20;">Restart all services with the following command:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl&nbsp;rollout&nbsp;restart&nbsp;deploy&nbsp;[-n&nbsp;namespace]&nbsp;&amp;&amp;&nbsp;kubectl&nbsp;rollout&nbsp;restart&nbsp;ds&nbsp;[-n&nbsp;namespace]</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Install NodeLocal DNS Cache (optional)</span></h2>
<p class="p_Normal">Installing <code><b>NodeLocal DNS Cache</b></code> helps to reduce the DNS query load in the Kubernetes cluster and make DNS lookup more consistent. This allows you to avoid DNAT rules, connection tracking, and restrictions on the number of connections.</p>
<p class="p_Normal">To install: </p>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Download the <span style="font-weight: bold;">addons</span> Helm chart at: <span style="font-size: 15px; background-color: #ffffff;"><a href="https://dl.elma365.com/onPremise/latest/addons-latest.tar.gz" target="_blank" class="weblink">https://dl.elma365.com/onPremise/latest/addons-latest.tar.gz</a>.</span></li><li value="2" class="p_Normal">Get the IP address of the <span style="font-weight: bold;">kube-dns</span> service:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl&nbsp;get&nbsp;svc&nbsp;kube-dns&nbsp;-n&nbsp;kube-system&nbsp;-o&nbsp;jsonpath={.spec.clusterIP}</span></p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" class="p_Normal">In the <span style="font-weight: bold;">addons</span> chart in file <code><b>values-addons.yaml</b></code> in <code><b>node-local-dns</b></code> configure the following parameters:</li></ol>
<ul style="list-style-type:disc">
<li class="p_Normal"><code><b>pillar_dns_domain</b></code> is the cluster domain;</li><li class="p_Normal"><code><b>pillar_dns_server</b></code> is the IP address of the kube-dns service;</li><li class="p_Normal"><code><b>pillar_local_dns</b></code> is the local IP address for NodeLocal DNS Cache. </li></ul>
<ol style="list-style-type:upper-roman" start="4">
<li value="4" class="p_Normal">Install the chart by running the following command:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;addons&nbsp;./addons&nbsp;-f&nbsp;values-addons.yaml</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Update BRIX to a new version</span></h2>
<p class="p_Normal">In the new chart, replace the <code><b>values-elma365.yaml</b></code> file with the one that was saved during the installation. Then run the following command:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;elma365&nbsp;./elma365&nbsp;-f&nbsp;values-elma365.yaml&nbsp;--timeout=30m&nbsp;--wait&nbsp;[-n&nbsp;namespace]</span></p>
<p class="p_Normal">If database connection strings are changed during the update, restart all services using the following command:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">kubectl&nbsp;rollout&nbsp;restart&nbsp;deploy&nbsp;[-n&nbsp;namespace]&nbsp;&amp;&amp;&nbsp;kubectl&nbsp;rollout&nbsp;restart&nbsp;ds&nbsp;[-n&nbsp;namespace]</span></p>
<h2 class="p_Heading2"><span class="f_Heading2">Uninstall</span></h2>
<p class="p_Normal">You can delete the charts by running the following commands:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;uninstall&nbsp;elma365&nbsp;[-n&nbsp;namespace]</span><br />
<span class="f_CodeExample">helm&nbsp;uninstall&nbsp;elma365-dbs&nbsp;[-n&nbsp;namespace]&nbsp;</span></p>
<div class="bottom-nav">
<a id="prev-link" class="topic__navi_prev" href="elma365-stack.html">
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
class="bottom-nav__link">elma365-stack.html</span>
</a>
<a id="next-link" class="topic__navi_next" href="kubernetes-air-gap.html">
<span class="bottom-nav__link">kubernetes-air-gap.html</span> <span
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
</a>
</div>
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
</section>
</div>
<aside class="article__sidebar" style="display:none">
<input type="checkbox" />
<div class="article__arrow"></div>
<div class="table-of-contents elma365-right" id="toc2Content">
<h3 class="h3-toc">In this topic</h3>
<nav id="toc2"></nav>
</div>
</aside>
</div>
</article>
</main>
<footer class="footer">
<div class="footer-container">
<div class="footer-mobile">
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
</div>
<div class="footer-wrap">
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
<div class="footer-flex-b">
<span class="footer-copy">&copy; 2025 BRIX</span>
<ul class="footer-list">
<li class="footer-item">
<a href="#" class="arrow-top" style="display: block;"></a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<iframe name="hmnavigation" style="display:none!important"></iframe>
<script src="./jquery-ui.js"></script>
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
<script src="./jquery.tocify.min.js"></script>
<script src="./TypoReporter.min.js"></script>
<script src="./google-search.js"></script>
<script src="./main.js"></script>
</body>
</html>