frisbee

module
v1.0.27 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2022 License: Apache-2.0

README ΒΆ

Frisbee - The Kubernetes Native Testbed

Website | Blog | Docs | Contact

​ [![GitHub license](https://img.shields.io/github/license/carv-ics-forth/frisbee)](https://github.com/adap/flower/blob/main/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/carv-ics-forth/frisbee/blob/main/CONTRIBUTING.md) ![Code build and checks](https://github.com/CARV-ICS-FORTH/frisbee/actions/workflows/test-unit.yml/badge.svg)

Why Frisbee ?

The effort being put in automating tests should not take over delivering value to users. Frisbee lowers the threshold of testing distributed systems by making it possible to:

🎁 Setup initial dependency stack – easily!

🏭 Test against actual, close to production software - no mocks!

⏳ Replay complex workloads written in an intuitive language!

πŸ—οΈ Combine Chaos Engineering with large-scale performance testing!

πŸ•ΉοΈ Assert actual program behavior and side effects

Usage

πŸ‘‰ To begin with Frisbee, check the QuickStart.

πŸ‘‰ To understand the basic features, check the Walkthrough.

Testing Patterns

Among others, you will find scenarios and testing patterns for:

πŸ‘‰ Databases

πŸ‘‰ Federated Learning

πŸ‘‰ Filesystems

πŸ‘‰ HPC

πŸ‘‰ Networking

TL;DR

  1. Make sure that kubectl and Helm are installed on your system.

  2. Update Helm repo.

>> helm repo add frisbee https://carv-ics-forth.github.io/frisbee/charts
  1. Install Helm Packages.
# Install the platform
>> helm upgrade --install --wait my-frisbee frisbee/platform
# Install the package for monitoring YCSB output
>> helm upgrade --install --wait my-ycsb frisbee/ycsb
# Install TiKV store
>> helm upgrade --install --wait my-tikv frisbee/tikv
  1. Create/Destroy the scenario.
# Create
>> curl -sSL https://raw.githubusercontent.com/CARV-ICS-FORTH/frisbee/main/charts/tikv/examples/scenario.baseline.yml | kubectl -f - apply

# Destroy
>> curl -sSL https://raw.githubusercontent.com/CARV-ICS-FORTH/frisbee/main/charts/tikv/examples/scenario.baseline.yml | kubectl -f - delete --cascade=foreground

If everything went smoothly, you should see a similar Grafana Dashboard .

Through these dashboards humans and controllers can examine to check things like completion, health, and SLA compliance.

Client-View (YCSB-Dashboard)

image-20211008230432961

Client-View (Redis-Dashboard)

Citation

If you publish work that uses Frisbee, please cite Frisbee as follows:

@article{nikolaidis2021frisbee,
title={Frisbee: automated testing of Cloud-native applications in Kubernetes},
author={Nikolaidis, Fotis and Chazapis, Antony and Marazakis, Manolis and Bilas, Angelos},
journal={arXiv preprint arXiv:2109.10727},
year={2021}
}

Contributing to Frisbee

We welcome contributions. Please see CONTRIBUTING.md to get started!

Acknowledgements

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 894204 (Ether, H2020-MSCA-IF-2019).

Directories ΒΆ

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.dev
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group +kubebuilder:object:generate=true +groupName=frisbee.dev
cmd
kubectl-frisbee command
manager command
controllers
hack
api-docs/template
Placeholder file to make Go vendor this directory properly.
Placeholder file to make Go vendor this directory properly.
pkg
ui
simple ui - TODO use something more sophisticated :)
simple ui - TODO use something more sophisticated :)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL