Skip to content

Commit

Permalink
Skewer update
Browse files Browse the repository at this point in the history
ssorj committed Feb 25, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 12d2b56 commit c1c3e59
Showing 41 changed files with 271 additions and 10,109 deletions.
6 changes: 1 addition & 5 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -35,11 +35,7 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- uses: manusa/[email protected]
with:
minikube version: "v1.32.0"
kubernetes version: "v1.29.0"
github token: ${{secrets.GITHUB_TOKEN}}
- uses: medyagh/setup-minikube@latest
- run: curl https://skupper.io/install.sh | bash -s -- --version ${{matrix.skupper-version}}
- run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- run: ./plano test
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
<!-- NOTE: This file is generated from skewer.yaml. Do not edit it directly. -->

# Accessing SERVER using Skupper

[![main](https://github.com/skupperproject/skupper-example-template/actions/workflows/main.yaml/badge.svg)](https://github.com/skupperproject/skupper-example-template/actions/workflows/main.yaml)
@@ -143,10 +145,10 @@ _Sample output:_
$ skupper init
Waiting for LoadBalancer IP or hostname...
Waiting for status...
Skupper is now installed in namespace 'west'. Use 'skupper status' to get more information.
Skupper is now installed in namespace 'public'. Use 'skupper status' to get more information.

$ skupper status
Skupper is enabled for namespace "west". It is not connected to any other sites. It has no exposed services.
Skupper is enabled for namespace "public". It is not connected to any other sites. It has no exposed services.
~~~

_**Private:**_
@@ -162,17 +164,21 @@ _Sample output:_
$ skupper init
Waiting for LoadBalancer IP or hostname...
Waiting for status...
Skupper is now installed in namespace 'east'. Use 'skupper status' to get more information.
Skupper is now installed in namespace 'private'. Use 'skupper status' to get more information.

$ skupper status
Skupper is enabled for namespace "east". It is not connected to any other sites. It has no exposed services.
Skupper is enabled for namespace "private". It is not connected to any other sites. It has no exposed services.
~~~

As you move through the steps below, you can use `skupper status` at
any time to check your progress.

## Step 4: Link your sites

A Skupper _link_ is a channel for communication between two sites.
Links serve as a transport for application connections and
requests.

Creating a link requires use of two `skupper` commands in
conjunction, `skupper token create` and `skupper link create`.

8 changes: 2 additions & 6 deletions external/skewer/.github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ on:
schedule:
- cron: "0 0 * * 0"
jobs:
main:
test:
strategy:
fail-fast: false
matrix:
@@ -16,11 +16,7 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- uses: manusa/[email protected]
with:
minikube version: "v1.32.0"
kubernetes version: "v1.29.0"
github token: ${{secrets.GITHUB_TOKEN}}
- uses: medyagh/setup-minikube@latest
- run: curl https://skupper.io/install.sh | bash -s -- --version ${{matrix.skupper-version}}
- run: echo "$HOME/.local/bin" >> $GITHUB_PATH
- run: ./plano test
80 changes: 47 additions & 33 deletions external/skewer/README.md
Original file line number Diff line number Diff line change
@@ -175,14 +175,40 @@ Or you can use a named step from the library of standard steps:

The standard steps are defined in
[python/skewer/standardsteps.yaml](python/skewer/standardsteps.yaml).
Note that you should not edit this file. Instead, in your
`skewer.yaml` file, you can create custom steps based on the standard
steps. You can override the `title`, `preamble`, `commands`, or
`postamble` field of a standard step by adding the field in addition
to `standard`:
They are the following:

~~~
general/install_the_skupper_command_line_tool
general/link_your_sites
general/access_the_frontend
general/cleaning_up
kubernetes/set_up_your_namespaces
kubernetes/set_up_your_kubernetes_namespace # One namespace only
kubernetes/create_your_sites
kubernetes/link_your_sites
podman/set_up_your_podman_network
hello_world/deploy_the_frontend_and_backend
hello_world/expose_the_backend
hello_world/access_the_frontend
hello_world/cleaning_up
~~~

The `general` steps are generic (or pretty generic) with respect to
platform and application. The `kubernetes` and `podman` steps are
coupled to their platform. The `hello_world` steps are coupled to the
Skupper Hello World app.

**Note:** The `general/link_your_sites` and `general/cleaning_up`
steps are less generic than the other `general` steps. For example,
`general/cleaning_up` doesn't delete any application workoads. Check
that the text and commands these steps produce are doing what you need
for your example. If not, you need to provide a custom step.

You can create custom steps based on the standard steps by overriding
the `title`, `preamble`, `commands`, or `postamble` fields.

~~~ yaml
- standard: cleaning_up
- standard: general/cleaning_up
commands:
east:
- run: skupper delete
@@ -191,42 +217,30 @@ to `standard`:
- run: skupper delete
~~~

For string fields such as `preamble` and `postamble`, you can include
the standard text inside your custom text by using the `@default@`
placeholder:

~~~ yaml
- standard: general/cleaning_up
preamble: |
@default@
Note: You may also want to flirp your krupke.
~~~

A typical mix of standard and custom steps might look like this:

~~~ yaml
steps:
- standard: install_the_skupper_command_line_tool
- standard: general/install_the_skupper_command_line_tool
- standard: kubernetes/set_up_your_namespaces
<your-custom-deploy-step>
- standard: kubernetes/create_your_sites
- standard: link_your_sites
- standard: kubernetes/link_your_sites
<your-custom-expose-step>
<your-custom-access-step>
- standard: cleaning_up
~~~

**Note:** The `link_your_sites`, `access_the_application`, and
`cleaning_up` steps are less generic than the other steps.
`link_your_sites` assumes just two sites. `access_the_application`
assumes you have a `frontend` service. `cleaning_up` doesn't delete
any application workoads. Check that the text and commands these
steps produce are doing what you need for your example. If not, you
need to provide a custom step.

There are some standard steps for examples based on the Skupper
Hello World application:

~~~ yaml
- standard: hello_world/deploy_the_frontend_and_backend
- standard: hello_world/expose_the_backend
- standard: hello_world/access_the_frontend
- standard: hello_world/cleaning_up
~~~

And finally there are some special cases:
~~~ yaml
- standard: kubernetes/set_up_your_kubernetes_namespace
- standard: podman/set_up_your_podman_network
- standard: general/cleaning_up
~~~

The step commands are separated into named groups corresponding to the
6 changes: 1 addition & 5 deletions external/skewer/config/.github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -35,11 +35,7 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- uses: manusa/[email protected]
with:
minikube version: "v1.32.0"
kubernetes version: "v1.29.0"
github token: ${{secrets.GITHUB_TOKEN}}
- uses: medyagh/setup-minikube@latest
- run: curl https://skupper.io/install.sh | bash -s -- --version ${{matrix.skupper-version}}
- run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- run: ./plano test
19 changes: 14 additions & 5 deletions external/skewer/example/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
<!-- NOTE: This file is generated from skewer.yaml. Do not edit it directly. -->

# Skupper Hello World

[![main](https://github.com/skupperproject/skewer/actions/workflows/main.yaml/badge.svg)](https://github.com/skupperproject/skewer/actions/workflows/main.yaml)
@@ -17,7 +19,7 @@ across cloud providers, data centers, and edge sites.
* [Prerequisites](#prerequisites)
* [Step 1: Install the Skupper command-line tool](#step-1-install-the-skupper-command-line-tool)
* [Step 2: Set up your namespaces](#step-2-set-up-your-namespaces)
* [Step 3: Deploy the frontent and backend](#step-3-deploy-the-frontent-and-backend)
* [Step 3: Deploy the frontend and backend](#step-3-deploy-the-frontend-and-backend)
* [Step 4: Create your sites](#step-4-create-your-sites)
* [Step 5: Link your sites](#step-5-link-your-sites)
* [Step 6: Fail on demand](#step-6-fail-on-demand)
@@ -108,7 +110,7 @@ kubectl create namespace east
kubectl config set-context --current --namespace east
~~~

## Step 3: Deploy the frontent and backend
## Step 3: Deploy the frontend and backend

This example runs the frontend and the backend in separate
Kubernetes namespaces, on different clusters.
@@ -188,6 +190,10 @@ any time to check your progress.

## Step 5: Link your sites

A Skupper _link_ is a channel for communication between two sites.
Links serve as a transport for application connections and
requests.

Creating a link requires use of two `skupper` commands in
conjunction, `skupper token create` and `skupper link create`.

@@ -243,7 +249,6 @@ _**West:**_

~~~ shell
if [ -n "${SKEWER_FAIL}" ]; then expr 1 / 0; fi

~~~

## Step 7: Expose the backend
@@ -317,6 +322,8 @@ navigating to `http://<external-ip>:8080/` in your browser.
To remove Skupper and the other resources from this exercise, use
the following commands:

And more!

_**West:**_

~~~ shell
@@ -334,11 +341,13 @@ kubectl delete deployment/backend

## Summary

A summary
More summary

## Next steps

Some next steps
Check out the other [examples][examples] on the Skupper website.

More steps

## About this example

1 change: 1 addition & 0 deletions external/skewer/example/python/plano
24 changes: 0 additions & 24 deletions external/skewer/example/python/plano/__init__.py

This file was deleted.

112 changes: 0 additions & 112 deletions external/skewer/example/python/plano/_testproject/.plano.py

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

1,338 changes: 0 additions & 1,338 deletions external/skewer/example/python/plano/_tests.py

This file was deleted.

511 changes: 0 additions & 511 deletions external/skewer/example/python/plano/command.py

This file was deleted.

80 changes: 0 additions & 80 deletions external/skewer/example/python/plano/github.py

This file was deleted.

1,772 changes: 0 additions & 1,772 deletions external/skewer/example/python/plano/main.py

This file was deleted.

428 changes: 0 additions & 428 deletions external/skewer/example/python/plano/test.py

This file was deleted.

1 change: 1 addition & 0 deletions external/skewer/example/python/skewer
20 changes: 0 additions & 20 deletions external/skewer/example/python/skewer/__init__.py

This file was deleted.

731 changes: 0 additions & 731 deletions external/skewer/example/python/skewer/main.py

This file was deleted.

91 changes: 0 additions & 91 deletions external/skewer/example/python/skewer/planocommands.py

This file was deleted.

295 changes: 0 additions & 295 deletions external/skewer/example/python/skewer/standardsteps.yaml

This file was deleted.

49 changes: 0 additions & 49 deletions external/skewer/example/python/skewer/standardtext.yaml

This file was deleted.

67 changes: 0 additions & 67 deletions external/skewer/example/python/skewer/tests.py

This file was deleted.

16 changes: 12 additions & 4 deletions external/skewer/example/skewer.yaml
Original file line number Diff line number Diff line change
@@ -18,11 +18,11 @@ sites:
env:
KUBECONFIG: ~/.kube/config-east
steps:
- standard: install_the_skupper_command_line_tool
- standard: general/install_the_skupper_command_line_tool
- standard: kubernetes/set_up_your_namespaces
- standard: hello_world/deploy_the_frontend_and_backend
- standard: kubernetes/create_your_sites
- standard: link_your_sites
- standard: kubernetes/link_your_sites
- title: Fail on demand
commands:
west:
@@ -31,7 +31,15 @@ steps:
- standard: hello_world/expose_the_backend
- standard: hello_world/access_the_frontend
- standard: hello_world/cleaning_up
preamble: |
@default@
And more!
summary: |
A summary
@default@
More summary
next_steps: |
Some next steps
@default@
More steps
4 changes: 4 additions & 0 deletions external/skewer/external/plano/src/plano/_tests.py
Original file line number Diff line number Diff line change
@@ -143,6 +143,10 @@ def dir_operations():
result = list_dir()
assert result == [], result

print_dir()
print_dir(test_dir)
print_dir(test_dir, "*.not-there")

result = find(test_dir)
assert result == [test_file_1, test_file_2], (result, [test_file_1, test_file_2])

40 changes: 28 additions & 12 deletions external/skewer/external/plano/src/plano/main.py
Original file line number Diff line number Diff line change
@@ -252,18 +252,18 @@ def print_properties(props, file=None):

## Directory operations

def find(dirs=None, include="*", exclude=()):
def find(dirs=None, include="*", exclude=[]):
if dirs is None:
dirs = "."

if is_string(dirs):
dirs = (dirs,)
dirs = [dirs]

if is_string(include):
include = (include,)
include = [include]

if is_string(exclude):
exclude = (exclude,)
exclude = [exclude]

found = set()

@@ -313,7 +313,7 @@ def change_dir(dir, quiet=False):

return prev_dir

def list_dir(dir=None, include="*", exclude=()):
def list_dir(dir=None, include="*", exclude=[]):
if dir is None:
dir = get_current_dir()
else:
@@ -322,10 +322,10 @@ def list_dir(dir=None, include="*", exclude=()):
assert is_dir(dir), dir

if is_string(include):
include = (include,)
include = [include]

if is_string(exclude):
exclude = (exclude,)
exclude = [exclude]

names = _os.listdir(dir)

@@ -338,6 +338,22 @@ def list_dir(dir=None, include="*", exclude=()):

return sorted(names)

def print_dir(dir=None, include="*", exclude=[]):
if dir is None:
dir = get_current_dir()
else:
dir = expand(dir)

names = list_dir(dir=dir, include=include, exclude=exclude)

print("{}:".format(get_absolute_path(dir)))

if names:
for name in names:
print(f" {name}")
else:
print(" [none]")

# No args constructor gets a temp dir
class working_dir:
def __init__(self, dir=None, quiet=False):
@@ -519,13 +535,13 @@ def copy(from_path, to_path, symlinks=True, inside=True, quiet=False):
else:
make_parent_dir(to_path, quiet=True)

if is_dir(from_path):
if is_link(from_path) and symlinks:
make_link(to_path, read_link(from_path), quiet=True)
elif is_dir(from_path):
for name in list_dir(from_path):
copy(join(from_path, name), join(to_path, name), symlinks=symlinks, inside=False, quiet=True)

_shutil.copystat(from_path, to_path)
elif is_link(from_path) and symlinks:
make_link(to_path, read_link(from_path), quiet=True)
else:
_shutil.copy2(from_path, to_path)

@@ -575,7 +591,7 @@ def replace(path, replacement, quiet=False):

def remove(paths, quiet=False):
if is_string(paths):
paths = (paths,)
paths = [paths]

for path in paths:
path = expand(path)
@@ -707,7 +723,7 @@ def unique(iterable):

def skip(iterable, values=(None, "", (), [], {})):
if is_scalar(values):
values = (values,)
values = [values]

items = list()

1 change: 1 addition & 0 deletions external/skewer/python/plano
24 changes: 0 additions & 24 deletions external/skewer/python/plano/__init__.py

This file was deleted.

112 changes: 0 additions & 112 deletions external/skewer/python/plano/_testproject/.plano.py

This file was deleted.

Empty file.
24 changes: 0 additions & 24 deletions external/skewer/python/plano/_testproject/src/chucker/moretests.py

This file was deleted.

70 changes: 0 additions & 70 deletions external/skewer/python/plano/_testproject/src/chucker/tests.py

This file was deleted.

1,338 changes: 0 additions & 1,338 deletions external/skewer/python/plano/_tests.py

This file was deleted.

511 changes: 0 additions & 511 deletions external/skewer/python/plano/command.py

This file was deleted.

80 changes: 0 additions & 80 deletions external/skewer/python/plano/github.py

This file was deleted.

1,772 changes: 0 additions & 1,772 deletions external/skewer/python/plano/main.py

This file was deleted.

428 changes: 0 additions & 428 deletions external/skewer/python/plano/test.py

This file was deleted.

41 changes: 28 additions & 13 deletions external/skewer/python/skewer/main.py
Original file line number Diff line number Diff line change
@@ -309,9 +309,12 @@ def append_section(heading, text):

out.append(f"## {heading}")
out.append("")
out.append(text.strip())
out.append(text)
out.append("")

out.append("<!-- NOTE: This file is generated from skewer.yaml. Do not edit it directly. -->")
out.append("")

out.append(f"# {model.title}")
out.append("")

@@ -352,7 +355,7 @@ def append_section(heading, text):

append_section("Summary", model.summary)
append_section("Next steps", model.next_steps)
append_section("About this example", standard_text["about_this_example"].strip())
append_section("About this example", model.about_this_example)

write(output_file, "\n".join(out).strip() + "\n")

@@ -427,17 +430,22 @@ def apply_standard_steps(model):
del step.data["standard"]

def apply_attribute(name, default=None):
if name not in step.data:
value = standard_step_data.get(name, default)
standard_value = standard_step_data.get(name, default)
value = step.data.get(name, standard_value)

if is_string(value):
if standard_value is not None:
value = value.replace("@default@", str(nvl(standard_value, "")).strip())

if value and name in ("title", "preamble", "postamble"):
for i, site in enumerate([x for _, x in model.sites]):
value = value.replace(f"@site{i}@", site.title)
for i, site in enumerate([x for _, x in model.sites]):
value = value.replace(f"@site{i}@", site.title)

if site.namespace:
value = value.replace(f"@namespace{i}@", site.namespace)
if site.namespace:
value = value.replace(f"@namespace{i}@", site.namespace)

step.data[name] = value
value = value.strip()

step.data[name] = value

apply_attribute("name")
apply_attribute("title")
@@ -513,7 +521,13 @@ def get_github_owner_repo():

def object_property(name, default=None):
def get(obj):
return obj.data.get(name, default)
value = obj.data.get(name, default)

if is_string(value):
value = value.replace("@default@", str(nvl(default, "")).strip())
value = value.strip()

return value

return property(get)

@@ -534,9 +548,10 @@ class Model:
subtitle = object_property("subtitle")
workflow = object_property("workflow", "main.yaml")
overview = object_property("overview")
prerequisites = object_property("prerequisites", standard_text["prerequisites"].strip())
prerequisites = object_property("prerequisites", standard_text["prerequisites"])
summary = object_property("summary")
next_steps = object_property("next_steps", standard_text["next_steps"].strip())
next_steps = object_property("next_steps", standard_text["next_steps"])
about_this_example = object_property("about_this_example", standard_text["about_this_example"])

def __init__(self, skewer_file, kubeconfigs=[]):
self.skewer_file = skewer_file
166 changes: 118 additions & 48 deletions external/skewer/python/skewer/standardsteps.yaml
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@
# under the License.
#

install_the_skupper_command_line_tool:
general/install_the_skupper_command_line_tool:
title: Install the Skupper command-line tool
preamble: |
This example uses the Skupper command-line tool to deploy Skupper.
@@ -39,6 +39,90 @@ install_the_skupper_command_line_tool:
[install-script]: https://github.com/skupperproject/skupper-website/blob/main/input/install.sh
[install-docs]: https://skupper.io/install/
general/link_your_sites:
title: Link your sites
preamble: |
A Skupper _link_ is a channel for communication between two sites.
Links serve as a transport for application connections and
requests.
Creating a link requires use of two `skupper` commands in
conjunction, `skupper token create` and `skupper link create`.
The `skupper token create` command generates a secret token that
signifies permission to create a link. The token also carries the
link details. Then, in a remote site, The `skupper link
create` command uses the token to create a link to the site
that generated it.
**Note:** The link token is truly a *secret*. Anyone who has the
token can link to your site. Make sure that only those you trust
have access to it.
First, use `skupper token create` in site @site0@ to generate the
token. Then, use `skupper link create` in site @site1@ to link
the sites.
commands:
"0":
- run: skupper token create ~/secret.token
output: Token written to ~/secret.token
"1":
- run: skupper link create ~/secret.token
output: |
Site configured to link to <endpoint> (name=link1)
Check the status of the link using 'skupper link status'.
- run: skupper link status --wait 60
apply: test
postamble: |
If your terminal sessions are on different machines, you may need
to use `scp` or a similar tool to transfer the token securely. By
default, tokens expire after a single use or 15 minutes after
creation.
general/access_the_frontend:
title: Access the frontend
preamble: |
In order to use and test the application, we need external access
to the frontend.
Use `kubectl expose` with `--type LoadBalancer` to open network
access to the frontend service.
Once the frontend is exposed, use `kubectl get service/frontend`
to look up the external IP of the frontend service. If the
external IP is `<pending>`, try again after a moment.
Once you have the external IP, use `curl` or a similar tool to
request the `/api/health` endpoint at that address.
**Note:** The `<external-ip>` field in the following commands is a
placeholder. The actual value is an IP address.
commands:
"0":
- run: kubectl expose deployment/frontend --port 8080 --type LoadBalancer
output: service/frontend exposed
- await_resource: service/frontend
- run: kubectl get service/frontend
apply: readme
output: |
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend LoadBalancer 10.103.232.28 <external-ip> 8080:30407/TCP 15s
- run: curl http://<external-ip>:8080/api/health
apply: readme
output: OK
- await_http_ok: [service/frontend, "http://{}:8080/api/health"]
postamble: |
If everything is in order, you can now access the web interface by
navigating to `http://<external-ip>:8080/` in your browser.
general/cleaning_up:
name: cleaning_up
title: Cleaning up
numbered: false
preamble: |
To remove Skupper and the other resources from this exercise, use
the following commands.
commands:
"*":
- run: skupper delete
kubernetes/set_up_your_namespaces:
title: Set up your namespaces
platform: kubernetes
@@ -121,57 +205,26 @@ kubernetes/create_your_sites:
[minikube-tunnel]: https://skupper.io/start/minikube.html#running-minikube-tunnel
commands:
"0":
- run: skupper init
output: |
Waiting for LoadBalancer IP or hostname...
Waiting for status...
Skupper is now installed in namespace 'west'. Use 'skupper status' to get more information.
- run: skupper status
output: |
Skupper is enabled for namespace "west". It is not connected to any other sites. It has no exposed services.
"*":
- run: skupper init
output: |
Waiting for LoadBalancer IP or hostname...
Waiting for status...
Skupper is now installed in namespace 'east'. Use 'skupper status' to get more information.
Skupper is now installed in namespace '@namespace@'. Use 'skupper status' to get more information.
- run: skupper status
output: |
Skupper is enabled for namespace "east". It is not connected to any other sites. It has no exposed services.
Skupper is enabled for namespace "@namespace@". It is not connected to any other sites. It has no exposed services.
postamble: |
As you move through the steps below, you can use `skupper status` at
any time to check your progress.
podman/set_up_your_podman_network:
title: Set up your Podman network
platform: podman
preamble: |
Open a new terminal window and set the `SKUPPER_PLATFORM`
environment variable to `podman`. This sets the Skupper platform
to Podman for this terminal session.
Use `podman network create` to create the Podman network that
Skupper will use.
Use `systemctl` to enable the Podman API service.
commands:
"*":
- run: export SKUPPER_PLATFORM=podman
- run: podman network create skupper
apply: readme
- run: if ! podman network exists skupper; then podman network create skupper; fi
apply: test
- run: systemctl --user enable --now podman.socket
postamble: |
If the `systemctl` command doesn't work, you can try the `podman
system service` command instead:
~~~
podman system service --time=0 unix://$XDG_RUNTIME_DIR/podman/podman.sock &
~~~
link_your_sites:
kubernetes/link_your_sites:
title: Link your sites
platform: kubernetes
preamble: |
A Skupper _link_ is a channel for communication between two sites.
Links serve as a transport for application connections and
requests.
Creating a link requires use of two `skupper` commands in
conjunction, `skupper token create` and `skupper link create`.
@@ -204,18 +257,35 @@ link_your_sites:
to use `scp` or a similar tool to transfer the token securely. By
default, tokens expire after a single use or 15 minutes after
creation.
cleaning_up:
name: cleaning_up
title: Cleaning up
numbered: false
podman/set_up_your_podman_network:
title: Set up your Podman network
platform: podman
preamble: |
To remove Skupper and the other resources from this exercise, use
the following commands.
Open a new terminal window and set the `SKUPPER_PLATFORM`
environment variable to `podman`. This sets the Skupper platform
to Podman for this terminal session.
Use `podman network create` to create the Podman network that
Skupper will use.
Use `systemctl` to enable the Podman API service.
commands:
"*":
- run: skupper delete
- run: export SKUPPER_PLATFORM=podman
- run: podman network create skupper
apply: readme
- run: if ! podman network exists skupper; then podman network create skupper; fi
apply: test
- run: systemctl --user enable --now podman.socket
postamble: |
If the `systemctl` command doesn't work, you can try the `podman
system service` command instead:
~~~
podman system service --time=0 unix://$XDG_RUNTIME_DIR/podman/podman.sock &
~~~
hello_world/deploy_the_frontend_and_backend:
title: Deploy the frontent and backend
title: Deploy the frontend and backend
preamble: |
This example runs the frontend and the backend in separate
Kubernetes namespaces, on different clusters.
6 changes: 3 additions & 3 deletions skewer.yaml
Original file line number Diff line number Diff line change
@@ -15,10 +15,10 @@ sites:
env:
KUBECONFIG: ~/.kube/config-private
steps:
- standard: install_the_skupper_command_line_tool
- standard: general/install_the_skupper_command_line_tool
- standard: kubernetes/set_up_your_namespaces
- standard: kubernetes/create_your_sites
- standard: link_your_sites
- standard: kubernetes/link_your_sites
- title: Deploy SERVER
preamble: |
In the private namespace, use the `kubectl apply` command to
@@ -55,7 +55,7 @@ steps:
output: |
OUTPUT
pod "client" deleted
- standard: cleaning_up
- standard: general/cleaning_up
commands:
private:
- run: skupper delete

0 comments on commit c1c3e59

Please sign in to comment.