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.

Procedure
  1. Download the Skupper Operator example files, for example:

    $ curl -fL https://github.com/skupperproject/skupper-operator/archive/refs/heads/main.zip
  1. Specify the namespace in which you want to install the Operator. You can create a new namespace or switch to an existing one.

    1. Create a new namespace if necessary:

      $ kubectl create namespace  <namespace-name>
    2. Switch to the namespace in which you want to install the Operator:

      $ kubectl config set-context --current --namespace=<namespace-name>
  2. Create a CatalogSource in the openshift-marketplace namespace:

    $ kubectl apply -f examples/k8s/00-cs.yaml
  3. Make sure the skupper-operator catalog pod is running before continuing:

    $ kubectl -n openshift-marketplace get pods | grep skupper-operator
  4. Create an OperatorGroup in the my-namespace namespace:

    $ kubectl apply -f examples/k8s/10-og.yaml
  5. Create a Subscription in the my-namespace namespace:

    $ kubectl apply -f examples/k8s/20-sub.yaml
  6. 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

  1. 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 Using the 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"
  2. Apply the YAML to create a ConfigMap named skupper-site in the namespace you want to use:

    $ kubectl apply -f skupper-site.yaml
  3. 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.