Skip to content

Jalapeno Installation

Warning

A Kubernetes installation is required to continue. If you don't have a running environment, please follow the steps here to get set up.

Installing Jalapeno

Tip

The Jalapeno installation script by default will pull a telemetry stack consisting of Telegraf, Influx, and Kafka images (the TIK stack). If you would like to integrate Jalapeno's BMP/Topology/GraphDB elements with an existing telemetry stack simply comment out the TIK stack elements in the shell script.

  1. Clone the Jalapeno repo and cd into the folder:

    git clone https://github.com/cisco-open/jalapeno.git && cd jalapeno
    
  2. Use the deploy_jalapeno.sh script. This will start the collectors, the Jalapeno infra images, and the topology and linkstate-edge processors.

    ./deploy_jalapeno.sh [path_to_kubectl]
    

    Tip

    If you're using a nonstandard kubectl, you need to pass the appropriate command to this script.

    For example, with microk8s: ./deploy_jalapeno.sh microk8s.kubectl

Validation

Validate that all containers are started & running. Using: kubectl get all --all-namespaces or on a per-namespace basis:

kubectl get all -n jalapeno
kubectl get all -n jalapeno-collectors

Expected Output for jalapeno Namespace:

NAME                                              READY   STATUS    RESTARTS   AGE
pod/arangodb-0                                    1/1     Running   0          9d
pod/grafana-deployment-579c5f75bb-7g7bk           1/1     Running   0          9d
pod/influxdb-0                                    1/1     Running   0          9d
pod/kafka-0                                       1/1     Running   0          9d
pod/linkstate-edge-66fb9b8fb7-skmsc               1/1     Running   0          6d22h
pod/telegraf-egress-deployment-55cbff896c-vf26q   1/1     Running   3          9d
pod/topology-6fdd6ccc8b-6mcpc                     1/1     Running   0          8d
pod/zookeeper-0                                   1/1     Running   0          9d

NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/arango-np     NodePort    10.152.183.143   <none>        8529:30852/TCP               9d
service/arangodb      ClusterIP   10.152.183.142   <none>        8529/TCP                     9d
service/broker        ClusterIP   10.152.183.247   <none>        9092/TCP                     9d
service/grafana       ClusterIP   10.152.183.62    <none>        3000/TCP                     9d
service/grafana-np    NodePort    10.152.183.124   <none>        3000:30300/TCP               9d
service/influxdb      ClusterIP   10.152.183.197   <none>        8086/TCP                     9d
service/influxdb-np   NodePort    10.152.183.68    <none>        8086:30308/TCP               9d
service/kafka         NodePort    10.152.183.160   <none>        9094:30092/TCP               9d
service/zookeeper     ClusterIP   10.152.183.36    <none>        2888/TCP,3888/TCP,2181/TCP   9d

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/grafana-deployment           1/1     1            1           9d
deployment.apps/linkstate-edge               1/1     1            1           6d22h
deployment.apps/telegraf-egress-deployment   1/1     1            1           9d
deployment.apps/topology                     1/1     1            1           8d

NAME                                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/grafana-deployment-579c5f75bb           1         1         1       9d
replicaset.apps/linkstate-edge-66fb9b8fb7               1         1         1       6d22h
replicaset.apps/telegraf-egress-deployment-55cbff896c   1         1         1       9d
replicaset.apps/topology-6fdd6ccc8b                     1         1         1       8d

NAME                         READY   AGE
statefulset.apps/arangodb    1/1     9d
statefulset.apps/influxdb    1/1     9d
statefulset.apps/kafka       1/1     9d
statefulset.apps/zookeeper   1/1     9d

Expected Output for jalapeno-collectors Namespace:

NAME                                               READY   STATUS    RESTARTS   AGE
pod/gobmp-f8bf8d6d5-nvwn8                          1/1     Running   2          3m42s
pod/telegraf-ingress-deployment-56867cf9b4-62snv   1/1     Running   1          3m46s

NAME                          TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                          AGE
service/gobmp                 NodePort   10.97.107.27    <none>        5000:30511/TCP,56767:30767/TCP   3m43s
service/telegraf-ingress-np   NodePort   10.97.218.162   <none>        57400:32400/TCP                  3m46s

NAME                                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/gobmp                         1/1     1            1           3m42s
deployment.apps/telegraf-ingress-deployment   1/1     1            1           3m46s

NAME                                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/gobmp-f8bf8d6d5                          1         1         1       3m42s
replicaset.apps/telegraf-ingress-deployment-56867cf9b4   1         1         1       3m46s

Device Config

Configure routers in the network to stream telemetry and BMP data to the Jalapeno cluster.

Instructions can be found under the Device Config section.

Destroying Jalapeno

Jalapeno can also be destroyed using the script.

  1. Use the destroy_jalapeno.sh script. This will remove both namespaces jalapeno and jalapeno-collectors and all associated services/pods/deployments/etc. This will also remove all the persistent volumes associated with Kafka and Arangodb.
./destroy_jalapeno.sh kubectl