Skip to content

Commit

Permalink
1.8.0 updates (#92)
Browse files Browse the repository at this point in the history
  • Loading branch information
pwright authored Aug 29, 2024
1 parent 9a037fc commit 39371d2
Show file tree
Hide file tree
Showing 16 changed files with 284 additions and 17 deletions.
2 changes: 1 addition & 1 deletion docs/data/install.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "1.7.3"
"version": "1.8.0"
}
11 changes: 8 additions & 3 deletions docs/data/releases.json
Original file line number Diff line number Diff line change
Expand Up @@ -249,9 +249,14 @@
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.7.3",
"version": "1.7.3"
},
"1.8.0": {
"date": "2024-08-28T15:54:11Z",
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.8.0",
"version": "1.8.0"
},
"latest": {
"date": "2024-07-16T14:04:57Z",
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.7.3",
"version": "1.7.3"
"date": "2024-08-28T15:54:11Z",
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.8.0",
"version": "1.8.0"
}
}
71 changes: 71 additions & 0 deletions docs/docs/cli/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,77 @@ <h3 id="applying-tls-to-tcp-or-http2-traffic-on-the-service-network">Applying TL
<li><p>Test calling the service from a TLS enabled frontend.</p>
</li>
</ol>
<h2 id="deploying-a-single-logical-service-across-many-sites-for-failover">Deploying a single logical service across many sites for failover</h2>
<p>A typical scenario for using Skupper is to deploy a server process on two sites with the intention that if one site fails, the other site seamlessly processes any further requests.
In this scenario the primary server responds to all requests while that server is available and traffic is only directed to the secondary server when the primary server is not available.
The procedure describes two servers, however this technique works for many servers.</p>
<ul>
<li>Two or more unlinked sites.</li>
<li>A basic understanding of Skupper and its networking model.</li>
</ul>
<ol>
<li><p>Create sites by using <code>skupper init</code>.</p>
</li>
<li><p>Deploy your servers on different sites.</p>
</li>
<li><p>Generate a token on the first site:</p>
<pre><code class="language-bash">$ skupper token create token.yaml
</code></pre>
<p>This file contains a key and the location of the site that created it.</p>
<dl><dt><strong>📌 NOTE</strong></dt><dd>

<p>Access to this file provides access to the service network.
Protect it appropriately.</p>
</dd></dl>

</li>
<li><p>Use the token on the cluster that you want to connect from:</p>
<p>To create a link to the first site:</p>
<pre><code class="language-bash">$ skupper link create token.yaml --cost 99999
</code></pre>
<p>The high cost setting means that traffic is not directed to this site under normal circumstances.
However, if there is no other server available, all traffic is directed to this site.</p>
</li>
<li><p>Expose the servers on the service network for both sites.</p>
<ol>
<li><p>Create the service:</p>
<pre><code class="language-bash">$ skupper service create &lt;name&gt; &lt;port&gt;
</code></pre>
<p>where</p>
<ul>
<li><code>&lt;name&gt;</code> is the name of the service you want to create.</li>
<li><code>&lt;port&gt;</code> is the port the service uses.</li>
</ul>
<p>By default, this service is now visible on both sites, although there is no server available to process requests to this service.</p>
<dl><dt><strong>📌 NOTE</strong></dt><dd>

<p>By default, if you create a service on one site, it is available on all sites.
However, if <code>enable-service-sync</code> is set to <code>false</code> you need to create the service on both sites.</p>
</dd></dl>

</li>
<li><p>Bind the service with the server on both sites.</p>
<pre><code class="language-bash">$ skupper service bind &lt;service-name&gt; &lt;target-type&gt; &lt;target-name&gt;
</code></pre>
<p>where</p>
<ul>
<li><code>&lt;service-name&gt;</code> is the name of the service on the service network</li>
<li><code>&lt;target-type&gt;</code> is the object you want to expose, <code>deployment</code>, <code>statefulset</code>, <code>pods</code>, or <code>service</code>.</li>
<li><code>&lt;target-name&gt;</code> is the name of the cluster service</li>
</ul>
<p>For example:</p>
<pre><code class="language-bash">$ skupper service bind hello-world-backend deployment hello-world-backend
</code></pre>
</li>
</ol>
</li>
<li><p>You can use the console to check the traffic flow or monitor the services using your tooling.
Clients can connect to either site, and the server on that site processes the requests until the server is not available.
Further requests are processed by the server on the other site.</p>
</li>
</ol>
<p>If the server on the original site becomes available, it processes all further requests.
However existing TCP connections to the secondary or backup server will persist until those TCP connections are closed.</p>
<h2 id="supported-standards-and-protocols">Supported standards and protocols</h2>
<p>Skupper supports the following protocols for your service network:</p>
<ul>
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/cli/podman.html
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ <h2 id="creating-a-site-using-skupper-podman">Creating a site using Skupper podm
</code></pre>
</li>
<li><p>Podman service endpoint.</p>
<p>Use <code>systemctl status podman.socket</code> to make sure the Podman API Socket is running.</p>
<p>Use <code>systemctl --user enable --now podman.socket</code> to start the Podman API Socket.</p>
<p>Use <code>systemctl --user status podman.socket</code> to make sure the Podman API Socket is running.</p>
<p>If the socket isn’t running, use <code>systemctl --user enable --now podman.socket</code> to start it.</p>
<p>See <a href="https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md">Podman socket activation</a> for information about enabling this endpoint.</p>
</li>
</ul>
Expand Down
1 change: 0 additions & 1 deletion docs/index.bl.html

This file was deleted.

2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ <h1>Multicloud communication for Kubernetes</h1>
<p><a class="button" id="-popup-video-button"><span class="material-icons">play_circle_filled</span> Watch the video</a></p>
<p><a class="button" href="/docs/index.html"><span class="material-icons">info</span> Learn more</a></p>
<p><a class="button" href="/start/index.html"><span class="material-icons">flag</span> Get started</a></p>
<p><a class="nav" href="/releases/index.html">Get Skupper 1.7.3 <span class="material-icons">chevron_right</span></a></p>
<p><a class="nav" href="/releases/index.html">Get Skupper 1.8.0 <span class="material-icons">chevron_right</span></a></p>
</div>
</div>

Expand Down
3 changes: 2 additions & 1 deletion docs/releases/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@

<h1 id="skupper-releases">Skupper releases</h1>
<h2 id="the-latest-release">The latest release</h2>
<p><a href="https://github.com/skupperproject/skupper/releases/tag/1.7.3">Skupper 1.7.3</a> was released on 16 July 2024.</p>
<p><a href="https://github.com/skupperproject/skupper/releases/tag/1.8.0">Skupper 1.8.0</a> was released on 28 August 2024.</p>
<p>For Linux or the Mac, use the <a href="https://github.com/skupperproject/skupper-website/blob/main/docs/install.sh">install script</a> to
download and extract the Skupper command:</p>
<pre><code style="font-size: 1.3em;">curl https://skupper.io/install.sh | sh</code></pre>
Expand All @@ -90,6 +90,7 @@ <h2 id="previous-releases">Previous releases</h2>
<div style="column-count: 3;">

<ul>
<li><a href="https://github.com/skupperproject/skupper/releases/tag/1.7.3">1.7.3</a> - 16 July 2024</li>
<li><a href="https://github.com/skupperproject/skupper/releases/tag/1.5.5">1.5.5</a> - 12 July 2024</li>
<li><a href="https://github.com/skupperproject/skupper/releases/tag/1.4.7">1.4.7</a> - 11 July 2024</li>
<li><a href="https://github.com/skupperproject/skupper/releases/tag/1.7.2">1.7.2</a> - 10 July 2024</li>
Expand Down
3 changes: 3 additions & 0 deletions external/skupper-docs/cli/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,9 @@ include::./network-status.adoc[leveloffset=0]
include::./native-security-options.adoc[leveloffset=0]
include::./single-logical-service.adoc[leveloffset=0]
include::./protocols.adoc[leveloffset=0]
// Type: reference
Expand Down
4 changes: 2 additions & 2 deletions external/skupper-docs/cli/podman.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ network_backend = "netavark"
* Podman service endpoint.
+
--
Use `systemctl status podman.socket` to make sure the Podman API Socket is running.
Use `systemctl --user status podman.socket` to make sure the Podman API Socket is running.

Use `systemctl --user enable --now podman.socket` to start the Podman API Socket.
If the socket isn't running, use `systemctl --user enable --now podman.socket` to start it.

See link:https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md[Podman socket activation] for information about enabling this endpoint.
--
Expand Down
105 changes: 105 additions & 0 deletions external/skupper-docs/cli/single-logical-service.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
//Category: skupper-cli
// Type: procedure
:context: k8s
[id='deploying-single-logical-service']
== Deploying a single logical service across many sites for failover

A typical scenario for using {skupper-name} is to deploy a server process on two sites with the intention that if one site fails, the other site seamlessly processes any further requests.
In this scenario the primary server responds to all requests while that server is available and traffic is only directed to the secondary server when the primary server is not available.
The procedure describes two servers, however this technique works for many servers.

.Prerequisites

* Two or more unlinked sites.
* A basic understanding of {skupper-name} and its networking model.
.Procedure

. Create sites by using `skupper init`.
. Deploy your servers on different sites.
. Generate a token on the first site:
+
--
[source, bash]
----
$ skupper token create token.yaml
----

This file contains a key and the location of the site that created it.

[NOTE]
====
Access to this file provides access to the {service-network}.
Protect it appropriately.
====
--

. Use the token on the cluster that you want to connect from:
+
--

To create a link to the first site:

[source, bash]
----
$ skupper link create token.yaml --cost 99999
----

The high cost setting means that traffic is not directed to this site under normal circumstances.
However, if there is no other server available, all traffic is directed to this site.
--

. Expose the servers on the {service-network} for both sites.

.. Create the service:
+
--
[source, bash]
----
$ skupper service create <name> <port>
----

where

* `<name>` is the name of the service you want to create.
* `<port>` is the port the service uses.
By default, this service is now visible on both sites, although there is no server available to process requests to this service.

[NOTE]
====
By default, if you create a service on one site, it is available on all sites.
However, if `enable-service-sync` is set to `false` you need to create the service on both sites.
====
--

.. Bind the service with the server on both sites.
+
--

[source, bash]
----
$ skupper service bind <service-name> <target-type> <target-name>
----

where

* `<service-name>` is the name of the service on the {service-network}
* `<target-type>` is the object you want to expose, `deployment`, `statefulset`, `pods`, or `service`.
* `<target-name>` is the name of the cluster service
For example:
[source, bash]
----
$ skupper service bind hello-world-backend deployment hello-world-backend
----
--

. You can use the console to check the traffic flow or monitor the services using your tooling.
Clients can connect to either site, and the server on that site processes the requests until the server is not available.
Further requests are processed by the server on the other site.

If the server on the original site becomes available, it processes all further requests.
However existing TCP connections to the secondary or backup server will persist until those TCP connections are closed.
1 change: 1 addition & 0 deletions external/skupper-docs/partials/attributes.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
:service-network: service network
:skupper-cli-version: 1.7
:service-version: 1.7
:skupper-name: Skupper

:policy-link: ../policy/index.html[Securing a service network using policies]
:console-link: ../console/index.html[Using the Skupper console]
Expand Down
2 changes: 1 addition & 1 deletion input/data/install.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "1.7.3"
"version": "1.8.0"
}
11 changes: 8 additions & 3 deletions input/data/releases.json
Original file line number Diff line number Diff line change
Expand Up @@ -249,9 +249,14 @@
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.7.3",
"version": "1.7.3"
},
"1.8.0": {
"date": "2024-08-28T15:54:11Z",
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.8.0",
"version": "1.8.0"
},
"latest": {
"date": "2024-07-16T14:04:57Z",
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.7.3",
"version": "1.7.3"
"date": "2024-08-28T15:54:11Z",
"github_url": "https://github.com/skupperproject/skupper/releases/tag/1.8.0",
"version": "1.8.0"
}
}
76 changes: 76 additions & 0 deletions input/docs/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,82 @@ For services exposed as TCP or HTTP2, the traffic between the pod and the router
```
5. Test calling the service from a TLS enabled frontend.
## Deploying a single logical service across many sites for failover
A typical scenario for using Skupper is to deploy a server process on two sites with the intention that if one site fails, the other site seamlessly processes any further requests.
In this scenario the primary server responds to all requests while that server is available and traffic is only directed to the secondary server when the primary server is not available.
The procedure describes two servers, however this technique works for many servers.
* Two or more unlinked sites.
* A basic understanding of Skupper and its networking model.
1. Create sites by using `skupper init`.
2. Deploy your servers on different sites.
3. Generate a token on the first site:
```bash
$ skupper token create token.yaml
```
This file contains a key and the location of the site that created it.
<dl><dt><strong>📌 NOTE</strong></dt><dd>
Access to this file provides access to the service network.
Protect it appropriately.
</dd></dl>
4. Use the token on the cluster that you want to connect from:
To create a link to the first site:
```bash
$ skupper link create token.yaml --cost 99999
```
The high cost setting means that traffic is not directed to this site under normal circumstances.
However, if there is no other server available, all traffic is directed to this site.
5. Expose the servers on the service network for both sites.
1. Create the service:
```bash
$ skupper service create <name> <port>
```
where
* `<name>` is the name of the service you want to create.
* `<port>` is the port the service uses.
By default, this service is now visible on both sites, although there is no server available to process requests to this service.
<dl><dt><strong>📌 NOTE</strong></dt><dd>
By default, if you create a service on one site, it is available on all sites.
However, if `enable-service-sync` is set to `false` you need to create the service on both sites.
</dd></dl>
2. Bind the service with the server on both sites.
```bash
$ skupper service bind <service-name> <target-type> <target-name>
```
where
* `<service-name>` is the name of the service on the service network
* `<target-type>` is the object you want to expose, `deployment`, `statefulset`, `pods`, or `service`.
* `<target-name>` is the name of the cluster service
For example:
```bash
$ skupper service bind hello-world-backend deployment hello-world-backend
```
6. You can use the console to check the traffic flow or monitor the services using your tooling.
Clients can connect to either site, and the server on that site processes the requests until the server is not available.
Further requests are processed by the server on the other site.
If the server on the original site becomes available, it processes all further requests.
However existing TCP connections to the secondary or backup server will persist until those TCP connections are closed.
## Supported standards and protocols
Skupper supports the following protocols for your service network:
Expand Down
4 changes: 2 additions & 2 deletions input/docs/cli/podman.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ See [Using the Skupper CLI](../cli/index.html) for information about using the S
```
* Podman service endpoint.

Use `systemctl status podman.socket` to make sure the Podman API Socket is running.
Use `systemctl --user status podman.socket` to make sure the Podman API Socket is running.

Use `systemctl --user enable --now podman.socket` to start the Podman API Socket.
If the socket isn’t running, use `systemctl --user enable --now podman.socket` to start it.

See [Podman socket activation](https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md) for information about enabling this endpoint.

Expand Down
Loading

0 comments on commit 39371d2

Please sign in to comment.