Skip to content

Commit b3c74d2

Browse files
author
Edgehog Bot
committed
Update Documentation
1 parent 71312bf commit b3c74d2

13 files changed

Lines changed: 1110 additions & 1124 deletions

snapshot/Clea Edgehog.epub

51.4 KB
Binary file not shown.

snapshot/applications_management.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ <h1>Applications management</h1>
102102
</div>
103103

104104

105-
<h2 id="release-creation-process" class="section-heading"><a href="#release-creation-process" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Release creation process</span></h2><h3 id="container-creation" class="section-heading"><a href="#container-creation" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Container creation</span></h3>
105+
<h2 id="release-creation-process" class="section-heading"><a href="#release-creation-process" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Release creation process</span></h2><p>To create a Release in Edgehog:</p><ol><li>Navigate to the <strong>Applications</strong> section in the Edgehog web interface</li><li>Open the app for which you want to create a release</li><li>Click on <strong>Create Release</strong> action button</li><li>Fill in the release form:<ul><li><strong>Version</strong>: Enter a unique version number that follows the <a href="https://semver.org">Semantic Versioning</a> spec</li><li><strong>Supported System Models</strong>: Choose system model(s) which the release should support. If left blank, the release supports all devices</li></ul></li><li>Add container(s) by clicking <strong>Add Container</strong> button (see <a href="applications_management#container-creation">Container creation</a> for more details)</li><li>Click <strong>Create</strong> to create the release</li></ol><p><img src="assets/release_create.png" alt="Creating Release"/></p><h3 id="reuse-release-configuration" class="section-heading"><a href="#reuse-release-configuration" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Reuse Release Configuration</span></h3><p>Edgehog also let's you reuse existing containers and their configurations from the same or some other application.</p><p>To reuse a Release:</p><ol><li>Click on <strong>Reuse Release</strong> button in the Create Release page</li><li>Choose application and release from which you want to copy containers and their configurations</li><li>Click <strong>Confirm</strong> to import release configuration</li></ol><p><img src="assets/release_create_reuse.png" alt="Reusing Release"/></p><h3 id="container-creation" class="section-heading"><a href="#container-creation" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Container creation</span></h3>
106106

107107
</div>
108108

snapshot/assets/release_create.png

33.1 KB
Loading
20.6 KB
Loading

snapshot/core_concepts-1.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ <h1>Core concepts</h1>
151151
<code class="inline">datetime(&quot;2022-06-27T16:27:40.254795Z&quot;)</code>.</li><li><code class="inline">binaryblob(&quot;&lt;base64 encoded value&gt;&quot;)</code> is used to pass <code class="inline">binaryblob</code> values in expressions. The
152152
string contained in double quotes must be a valid Base64 encoding of the binary value. Example:
153153
<code class="inline">binaryblob(&quot;Zm9vYmFy&quot;)</code> to encode the string <code class="inline">&quot;foobar&quot;</code>.</li></ul><h5>Attribute inclusion filter*</h5><p>*<em>This feature is planned for a future release</em></p><ul><li><code class="inline">&quot;&lt;value&gt;&quot; in attributes[&quot;&lt;namespace&gt;:&lt;key&gt;&quot;]</code>: returns <code class="inline">true</code> if <code class="inline">value</code> is included in the
154-
chosen attribute. Note that the attribute must be an array for the expression to be valid.</li></ul><h4>Examples</h4><p>To provide some examples, here is a Selector to target all out of order Devices in Milan:</p><pre><code class="makeup elixir" translate="no"><span class="s">&quot;out-of-order&quot;</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">tags</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">attributes</span><span class="p" data-group-id="9284378943-1">[</span><span class="s">&quot;edgehog-synthetic:city&quot;</span><span class="p" data-group-id="9284378943-1">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">&quot;Milan&quot;</span></code></pre><p>Here is a selector to target all Devices that have their service timestamp in the past so they have
154+
chosen attribute. Note that the attribute must be an array for the expression to be valid.</li></ul><h4>Examples</h4><p>To provide some examples, here is a Selector to target all out of order Devices in Milan:</p><pre><code class="makeup elixir" translate="no"><span class="s">&quot;out-of-order&quot;</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">tags</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">attributes</span><span class="p" data-group-id="6493844409-1">[</span><span class="s">&quot;edgehog-synthetic:city&quot;</span><span class="p" data-group-id="6493844409-1">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">&quot;Milan&quot;</span></code></pre><p>Here is a selector to target all Devices that have their service timestamp in the past so they have
155155
to be serviced, imagining this information is contained in the <code class="inline">com.foo.ServiceInfo</code> Astarte
156-
interface in the <code class="inline">/serviceTimestamp</code>:</p><pre><code class="makeup elixir" translate="no"><span class="n">attributes</span><span class="p" data-group-id="9005043176-1">[</span><span class="s">&quot;astarte-values:com.foo.ServiceInfo/serviceTimestamp&quot;</span><span class="p" data-group-id="9005043176-1">]</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="n">now</span><span class="p" data-group-id="9005043176-2">(</span><span class="p" data-group-id="9005043176-2">)</span></code></pre><h4>Caveats</h4><p>Note that numeric values are conflated in a single numeric type, i.e. a selector with
156+
interface in the <code class="inline">/serviceTimestamp</code>:</p><pre><code class="makeup elixir" translate="no"><span class="n">attributes</span><span class="p" data-group-id="9774763228-1">[</span><span class="s">&quot;astarte-values:com.foo.ServiceInfo/serviceTimestamp&quot;</span><span class="p" data-group-id="9774763228-1">]</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="n">now</span><span class="p" data-group-id="9774763228-2">(</span><span class="p" data-group-id="9774763228-2">)</span></code></pre><h4>Caveats</h4><p>Note that numeric values are conflated in a single numeric type, i.e. a selector with
157157
<code class="inline">attributes[&quot;custom:foo&quot;] == 42</code> will match either if <code class="inline">foo</code> is <code class="inline">integer</code>, <code class="inline">longinteger</code> or <code class="inline">double</code>
158158
(e.g it will also match <code class="inline">42.0</code>).</p><p>Another important thing to notice is that using an Attribute Filter will implicitly match only
159159
Devices that have that attribute. As an example, if there are 3 devices, one with attribute <code class="inline">foo:bar == 42</code>, the other with attribute <code class="inline">foo:bar == 3</code> and the third one with no <code class="inline">foo:bar</code> attribute, the

snapshot/core_concepts-2.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ <h1>Core concepts</h1>
103103

104104

105105
<p>This page illustrates the core concepts of Edgehog's container management system.</p><h2 id="images" class="section-heading"><a href="#images" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Images</span></h2><p>Images in Edgehog are not managed directly by the platform. Instead, Edgehog treats images as external references that are passed to the device’s container runtime (such as Docker or Podman). Edgehog does not store, pull or validate images, it simply records the image reference string provided in a container definition.</p><h3 id="image-reference-format" class="section-heading"><a href="#image-reference-format" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Image Reference Format</span></h3><p>The image reference represents the name of the image to pull.
106-
It follows the pattern:</p><pre><code class="makeup elixir" translate="no"><span class="p" data-group-id="0167839706-1">[</span><span class="n">registry</span><span class="o">-</span><span class="n">host</span><span class="p" data-group-id="0167839706-2">[</span><span class="ss">:port</span><span class="p" data-group-id="0167839706-2">]</span><span class="o">/</span><span class="p" data-group-id="0167839706-1">]</span><span class="p" data-group-id="0167839706-3">[</span><span class="n">image</span><span class="o">-</span><span class="n">repo</span><span class="o">/</span><span class="p" data-group-id="0167839706-3">]</span><span class="n">image</span><span class="o">-</span><span class="n">name</span><span class="p" data-group-id="0167839706-4">[</span><span class="p">:</span><span class="p" data-group-id="0167839706-5">(</span><span class="n">tag</span><span class="o">|</span><span class="n">digest</span><span class="p" data-group-id="0167839706-5">)</span><span class="p" data-group-id="0167839706-4">]</span></code></pre><h3 id="image-reference-examples" class="section-heading"><a href="#image-reference-examples" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Image Reference Examples</span></h3><h4>Basic Examples</h4><pre><code class="makeup elixir" translate="no"><span class="n">nginx</span><span class="w">
106+
It follows the pattern:</p><pre><code class="makeup elixir" translate="no"><span class="p" data-group-id="1210562224-1">[</span><span class="n">registry</span><span class="o">-</span><span class="n">host</span><span class="p" data-group-id="1210562224-2">[</span><span class="ss">:port</span><span class="p" data-group-id="1210562224-2">]</span><span class="o">/</span><span class="p" data-group-id="1210562224-1">]</span><span class="p" data-group-id="1210562224-3">[</span><span class="n">image</span><span class="o">-</span><span class="n">repo</span><span class="o">/</span><span class="p" data-group-id="1210562224-3">]</span><span class="n">image</span><span class="o">-</span><span class="n">name</span><span class="p" data-group-id="1210562224-4">[</span><span class="p">:</span><span class="p" data-group-id="1210562224-5">(</span><span class="n">tag</span><span class="o">|</span><span class="n">digest</span><span class="p" data-group-id="1210562224-5">)</span><span class="p" data-group-id="1210562224-4">]</span></code></pre><h3 id="image-reference-examples" class="section-heading"><a href="#image-reference-examples" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Image Reference Examples</span></h3><h4>Basic Examples</h4><pre><code class="makeup elixir" translate="no"><span class="n">nginx</span><span class="w">
107107
</span><span class="n">redis</span><span class="w">
108108
</span><span class="n">python</span></code></pre><h4>With Explicit Tags</h4><pre><code class="makeup elixir" translate="no"><span class="n">nginx</span><span class="p">:</span><span class="mf">1.27</span><span class="w">
109109
</span><span class="n">python</span><span class="p">:</span><span class="mf">3.12</span><span class="o">-</span><span class="n">alpine</span></code></pre><h4>With Image Repository</h4><pre><code class="makeup elixir" translate="no"><span class="n">library</span><span class="o">/</span><span class="n">ubuntu</span><span class="p">:</span><span class="mf">24.04</span><span class="w">

snapshot/deploying_with_kubernetes.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -584,17 +584,17 @@ <h1>Deploying with Kubernetes</h1>
584584
</span><span class="gp unselectable">iex&gt; </span><span class="n">realm_private_key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;&quot;&quot;
585585
&lt;ASTARTE-REALM-PRIVATE-KEY&gt;
586586
&quot;&quot;&quot;</span><span class="w">
587-
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="4538437684-1">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="n">tenant</span><span class="p" data-group-id="4538437684-1">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Tenants</span><span class="o">.</span><span class="n">provision_tenant</span><span class="p" data-group-id="4538437684-2">(</span><span class="w">
588-
</span><span class="p" data-group-id="4538437684-3">%{</span><span class="w">
587+
</span><span class="gp unselectable">iex&gt; </span><span class="p" data-group-id="9477549289-1">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="n">tenant</span><span class="p" data-group-id="9477549289-1">}</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">Tenants</span><span class="o">.</span><span class="n">provision_tenant</span><span class="p" data-group-id="9477549289-2">(</span><span class="w">
588+
</span><span class="p" data-group-id="9477549289-3">%{</span><span class="w">
589589
</span><span class="ss">name</span><span class="p">:</span><span class="w"> </span><span class="n">tenant_name</span><span class="p">,</span><span class="w">
590590
</span><span class="ss">slug</span><span class="p">:</span><span class="w"> </span><span class="n">tenant_slug</span><span class="p">,</span><span class="w">
591591
</span><span class="ss">public_key</span><span class="p">:</span><span class="w"> </span><span class="n">tenant_public_key</span><span class="p">,</span><span class="w">
592-
</span><span class="ss">astarte_config</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4538437684-4">%{</span><span class="w">
592+
</span><span class="ss">astarte_config</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9477549289-4">%{</span><span class="w">
593593
</span><span class="ss">base_api_url</span><span class="p">:</span><span class="w"> </span><span class="n">base_api_url</span><span class="p">,</span><span class="w">
594594
</span><span class="ss">realm_name</span><span class="p">:</span><span class="w"> </span><span class="n">realm_name</span><span class="p">,</span><span class="w">
595595
</span><span class="ss">realm_private_key</span><span class="p">:</span><span class="w"> </span><span class="n">realm_private_key</span><span class="w">
596-
</span><span class="p" data-group-id="4538437684-4">}</span><span class="w">
597-
</span><span class="p" data-group-id="4538437684-3">}</span><span class="p" data-group-id="4538437684-2">)</span></code></pre><p>Values to be replaced</p><ul><li><code class="inline">TENANT-NAME</code>: the name of the new tenant.</li><li><code class="inline">TENANT-SLUG</code>: the slug of the tenant, must contain only lowercase letters and hyphens.</li><li><code class="inline">TENANT-PUBLIC-KEY</code>: the content of <code class="inline">tenant_public.pem</code> created in the <a href="#creating-a-keypair">previous
596+
</span><span class="p" data-group-id="9477549289-4">}</span><span class="w">
597+
</span><span class="p" data-group-id="9477549289-3">}</span><span class="p" data-group-id="9477549289-2">)</span></code></pre><p>Values to be replaced</p><ul><li><code class="inline">TENANT-NAME</code>: the name of the new tenant.</li><li><code class="inline">TENANT-SLUG</code>: the slug of the tenant, must contain only lowercase letters and hyphens.</li><li><code class="inline">TENANT-PUBLIC-KEY</code>: the content of <code class="inline">tenant_public.pem</code> created in the <a href="#creating-a-keypair">previous
598598
step</a>. Open a multiline string with <code class="inline">&quot;&quot;&quot;</code>, press Enter, paste the content of
599599
the file in the <code class="inline">iex</code> shell and then close the multiline string with <code class="inline">&quot;&quot;&quot;</code> on a new line.</li><li><code class="inline">ASTARTE-BASE-API-URL</code>: the base API url of the Astarte instance (e.g.
600600
<a href="https://api.astarte.example.com">https://api.astarte.example.com</a>).</li><li><code class="inline">ASTARTE-REALM-NAME</code>: the name of the Astarte realm you're using.</li><li><code class="inline">ASTARTE-REALM-PRIVATE-KEY</code>: the content of the Astarte realm's private key. Open a multiline string with

snapshot/dist/search_data-3320EA75.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

snapshot/dist/search_data-6C3F5453.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)