A Kubernetes operator to manage ThousandEyes tests

Overview

ThousandEyes Kubernetes Operator

published Language

ThousandEyes Kubernetes Operator is a Kubernetes operator used to manage ThousandEyes Tests deployed via Kubernetes cluster. It is built using the Operator SDK, which is part of the Operator Framework.

Table of Contents

Supported Test Types

ThousandEyes Kubernetes Operator supports managing the following test types.

More types will be supported in the future.

Installation

Prerequisites

  1. Access to working kubernetes cluster (version >=1.18.0) and local kubectl cli. Docker desktop kubernetes, Minikube or kind are some of popular options to setup local kubernetes cluster.
  2. Trial account for ThousandEyes

Deploy ThousandEyes Kubernetes Operator

  1. Clone the project

    git clone https://github.com/CiscoDevNet/thousandeyes-kubernetes-operator.git
    cd thousandeyes-kubernetes-operator
    
  2. Get OAuth Bearer Token from ThousandEyes dashboard

    OAuth Bearer Token

    If this token has been generated, you can get it from your admin or revoke it to create a new one.

  3. Update the OAuth bearer token

    Encode the token in base64

    echo -n "YOUR_OAUTH_BEARER_TOKEN" | base64
    

    Modify OAuthBearerToken (base64 encoded) in config/deploy/thousandeyes_kubernetes_operator.yaml

  4. Install the operator

    kubectl apply -f config/deploy/thousandeyes_kubernetes_operator.yaml
    
  5. Verify installation status

    i. Check ThousandEyes Kubernetes Operator pod status

    kubectl get pods | grep thousandeyes
    
      NAME                                                            READY   STATUS    RESTARTS   AGE
      devnet-thousandeyes-kubernetes-operator-564b5d75d-jllzk         1/1     Running   0          108s
    

    ii. Check ThousandEyes CRD status

    kubectl get crd | grep thousandeyes
    
      NAME                                                  CREATED AT
      annotationmonitorings.thousandeyes.devnet.cisco.com   2021-07-07T15:44:40Z
      httpservertests.thousandeyes.devnet.cisco.com         2021-07-07T15:44:41Z
      pageloadtests.thousandeyes.devnet.cisco.com           2021-07-07T15:44:42Z
      webtransactiontests.thousandeyes.devnet.cisco.com     2021-07-07T15:44:44Z 
    

Quick Start

Let`s run a Nginx web app, then create a Page Load test to monitor this app

  1. Create a Nginx web app

    kubectl apply -f config/samples/nginx.yaml
    
  2. Check the Nginx pod status

    kubectl get pods -A | grep nginx
    default       nginx-6976ddb986-rxqv6          1/1     Running    0        12s
    
  3. Expose Nginx service to Internet Using ngrok

    kubectl apply -f config/samples/ngrok.yaml  
    
  4. Check the ngrok pod status

    kubectl get pods -A | grep ngrok
    default       ngrok-5dfd559764-zx9r7          1/1     Running   0         7s
    
  5. Get the public URL of this web app

    ./config/samples/public_url.sh
    

    Your public URL for Nginx web app is similar to:

    https://9c5f-64-104-125-230.eu.ngrok.io
    
  6. Access this app

    Open your favorite browser and navigate to the public URL.

    You should see the Nginx welcome page which means you have run the app successfully.

  7. Update your public URL in config/samples/pageload_cr.yaml

  8. Apply the page load test CR

    kubectl apply -f config/samples/pageload_cr.yaml
    
  9. Go to ThousandEyes dashboard

    You will find this test on ThousandEyes dashboard. Page Load Test

Advanced Usage

For advanced usage, please refer to the following documentations:

  1. Create a Kubernetes Custom Resource
  2. Annotate Kubernetes Ingress / Service

Reference

  1. ThousandEyes Getting Started
  2. ThousandEyes Test MetaData
Owner
Cisco DevNet
Place for DevNet community to access sample code and collaborate on open source projects that are used in some way in DevNet
Cisco DevNet
An operator which complements grafana-operator for custom features which are not feasible to be merged into core operator

Grafana Complementary Operator A grafana which complements grafana-operator for custom features which are not feasible to be merged into core operator

Snapp Cab Incubators 4 May 24, 2022
kube-champ 37 Jun 6, 2022
The OCI Service Operator for Kubernetes (OSOK) makes it easy to connect and manage OCI services from a cloud native application running in a Kubernetes environment.

OCI Service Operator for Kubernetes Introduction The OCI Service Operator for Kubernetes (OSOK) makes it easy to create, manage, and connect to Oracle

Oracle 22 Jun 17, 2022
PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes.

GalaxyKube -- PolarDB-X Operator PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes. It follo

null 57 Jun 16, 2022
The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.

Elastalert Operator for Kubernetes The Elastalert Operator is an implementation of a Kubernetes Operator. Getting started Firstly, learn How to use el

null 18 Apr 13, 2022
Minecraft-operator - A Kubernetes operator for Minecraft Java Edition servers

Minecraft Operator A Kubernetes operator for dedicated servers of the video game

James Laverack 6 May 10, 2022
K8s-network-config-operator - Kubernetes network config operator to push network config to switches

Kubernetes Network operator Will add more to the readme later :D Operations The

Daniel Hertzberg 6 May 16, 2022
Pulumi-k8s-operator-example - OpenGitOps Compliant Pulumi Kubernetes Operator Example

Pulumi GitOps Example OpenGitOps Compliant Pulumi Kubernetes Operator Example Pr

Christian Hernandez 3 May 6, 2022
Kubernetes Operator Samples using Go, the Operator SDK and OLM

Kubernetes Operator Patterns and Best Practises This project contains Kubernetes operator samples that demonstrate best practices how to develop opera

International Business Machines 14 Jun 8, 2022
Modular Kubernetes operator to manage the lifecycle of databases

Ensemble Ensemble is a simple and modular Kubernetes Operator to manage the lifecycle of a wide range of databases. Infrastructure as code with Kubern

Tesera 42 Mar 1, 2022
Kubegres is a Kubernetes operator allowing to create a cluster of PostgreSql instances and manage databases replication, failover and backup.

Kubegres is a Kubernetes operator allowing to deploy a cluster of PostgreSql pods with data replication enabled out-of-the box. It brings simplicity w

Reactive Tech Ltd 1k Jun 20, 2022
The cortex-operator is a project to manage the lifecycle of Cortex in Kubernetes.

cortex-operator The cortex-operator is a project to manage the lifecycle of Cortex in Kubernetes. Project status: alpha Not all planned features are c

Opstrace inc. 34 Apr 13, 2022
Cloudflare-operator - Manage Cloudflare DNS records with Kubernetes objects

cloudflare-operator Documentation The goal of cloudflare-operator is to manage C

containeroo 12 Jun 15, 2022
Test Operator using operator-sdk 1.15

test-operator Test Operator using operator-sdk 1.15 operator-sdk init --domain rbt.com --repo github.com/ravitri/test-operator Writing kustomize manif

Ravi Trivedi 0 Dec 28, 2021
a k8s operator 、operator-sdk

helloworld-operator a k8s operator 、operator-sdk Operator 参考 https://jicki.cn/kubernetes-operator/ https://learnku.com/articles/60683 https://opensour

Mark YiL 0 Jan 27, 2022
Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install

Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install. The permissions are aggregated from the following sources:

International Business Machines 2 Apr 22, 2022
Kubernetes Operator to sync secrets between different secret backends and Kubernetes

Vals-Operator Here at Digitalis we love vals, it's a tool we use daily to keep secrets stored securely. We also use secrets-manager on the Kubernetes

digitalis.io 45 Jun 18, 2022
The NiFiKop NiFi Kubernetes operator makes it easy to run Apache NiFi on Kubernetes.

The NiFiKop NiFi Kubernetes operator makes it easy to run Apache NiFi on Kubernetes. Apache NiFI is a free, open-source solution that support powerful and scalable directed graphs of data routing, transformation, and system mediation logic.

konpyutaika 24 Jun 15, 2022
An operator to manage node labels, annotations, and taints.

NodeConfig Operator An operator to manage node labels, annotations and taints based on NodeConfig Custom Resource. Comparison to alternatives: https:/

Snapp Cab Incubators 8 May 24, 2022