Using the Skupper Operator on Kubernetes
The Skupper Operator creates and manages Skupper sites in Kubernetes.
You can install the Operator as described in Installing the Operator using the CLI.
Installing an Operator requires administrator-level privileges for your Kubernetes cluster. |
After installing the Operator, you can create a site by deploying a ConfigMap as described in Creating a site using the Skupper Operator
Installing the Operator using the CLI
The steps in this section show how to use the kubectl
command-line interface (CLI) to install and deploy the latest version of the Skupper Operator in a given Kubernetes cluster.
-
Download the Skupper Operator example files, for example:
$ curl -fL https://github.com/skupperproject/skupper-operator/archive/refs/heads/main.zip
-
Specify the namespace in which you want to install the Operator. You can create a new namespace or switch to an existing one.
-
Create a new namespace if necessary:
$ kubectl create namespace <namespace-name>
-
Switch to the namespace in which you want to install the Operator:
$ kubectl config set-context --current --namespace=<namespace-name>
-
-
Create a CatalogSource in the
openshift-marketplace
namespace:$ kubectl apply -f examples/k8s/00-cs.yaml
-
Verify the skupper-operator catalog pod is running before continuing:
$ kubectl -n openshift-marketplace get pods | grep skupper-operator
-
Create an OperatorGroup in the
my-namespace
namespace:$ kubectl apply -f examples/k8s/10-og.yaml
-
Create a Subscription in the
my-namespace
namespace:$ kubectl apply -f examples/k8s/20-sub.yaml
-
Verify that the Operator is running:
$ kubectl get pods -n my-namespace NAME READY STATUS RESTARTS AGE skupper-site-controller-d7b57964-gxms6 1/1 Running 0 1m
If the output does not report the pod is running, use the following command to determine the issue that prevented it from running:
$ kubectl describe pod -l name=skupper-operator
Creating a site using the Skupper Operator
-
Create a YAML file defining the ConfigMap of the site you want to create.
For example, create
skupper-site.yaml
:apiVersion: v1 kind: ConfigMap metadata: name: skupper-site namespace: my-namespace
You can later retrieve the console credentials as described in Skupper console or specify them now by adding the username and optionally the password to
skupper-site.yaml
as follows:data: console-user: "admin" console-password: "changeme"
-
Apply the YAML to create a ConfigMap named
skupper-site
in the namespace you want to use:$ kubectl apply -f skupper-site.yaml
-
Verify that the site is created by checking that the Skupper router and service controller pods are running:
$ kubectl get pods NAME READY STATUS RESTARTS AGE skupper-router-8c6cc6d76-27562 1/1 Running 0 40s skupper-service-controller-57cdbb56c5-vc7s2 1/1 Running 0 34s
If you deployed the Operator to a single namespace, an additional site controller pod is also running.