Skip to content

Commit

Permalink
Merge pull request #420 from CARV-ICS-FORTH/docs
Browse files Browse the repository at this point in the history
Fix the readme
  • Loading branch information
fnikolai authored Jul 17, 2023
2 parents fbb10a4 + 06c1384 commit 903942f
Showing 1 changed file with 34 additions and 48 deletions.
82 changes: 34 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,24 @@

## What is Frisbee ?

**Frisbee** is the first Kubernetes framework designed to support **declarative end-to-end testing** of containerized applications.
**Frisbee** is the first Kubernetes framework designed to support **declarative end-to-end system testing** of containerized applications.

:heavy_check_mark: Setup application and dependency stack – easily!
:heavy_check_mark: Design end-to-end testing scenarios in an intuitive language!

:heavy_check_mark: Test against actual, close to production software - no mocks!
:heavy_check_mark: Run the actual production software - no mocks!

:heavy_check_mark: Replay complex workloads written in an intuitive language!
:heavy_check_mark: Replay complex workloads through automated workflows!

:heavy_check_mark: Combine Chaos Engineering with large-scale performance testing!

:heavy_check_mark: Assert actual program behavior and side effects.
:heavy_check_mark: Verify program behavior through programmable assertions!


To learn more about Frisbee, check the **[QuickStart](https://frisbee.dev/docs/quick-start/)** tutorial or visit
our **[Website](https://frisbee.dev)**.
To learn more about Frisbee, check the **[Walkthrough](https://frisbee.dev/docs/walkthrough)** tutorial or visit our **[Website](https://frisbee.dev)**.


## Use-Cases and Testing Patterns

## Testing Patterns

In declarative testing, a test scenario focuses on what to accomplish rather than on the imperative details of how to manipulate the state of an application under test and verify the final application state against an expected state.

Expand All @@ -69,6 +69,8 @@ Here, you can see some testing patterns we have identified across different appl
👉 [CI](./examples/patterns/ci)




## Getting Started


Expand All @@ -90,65 +92,49 @@ sudo snap alias microk8s.kubectl kubectl
sudo snap alias microk8s.helm3 helm
```

### Step 2 – Install Frisbee on K8s cluster

Now it's time to get Frisbee from GitHub.

```shell
git clone git@github.com:CARV-ICS-FORTH/frisbee.git
cd frisbee
```

### Step 2 – Install Frisbee on K8s cluster:

The above will download the project, but not the executables.
For that, you have two options: download the precompile binaries and or compile the binaries on your machine.
Firstly, we need to download the Frisbee CLI:

* **From binary:**
```shell
./install.sh
curl -sSLf https://frisbee.dev/install.sh | sudo bash
export PATH=$PATH:/usr/local/bin
```

* **From source:**
```shell
make run
export PATH=$PATH:$(pwd)/bin
```



The next step is to install Frisbee in your Kubernetes cluster. You can two options:
Since the majority of Frisbee operations happens through this CLI, it is suggested to enable the autocompletion.

* **Development mode:** In this configuration, the Frisbee controller must run manually on the local node.
The development mode is convenient for developing new functionality on the controller.

```shell
kubectl-frisbee install development ./ <public address>
make run
source <(kubectl-frisbee completion bash)
```

* **Production mode:** The production mode will install the Frisbee controller at yet another container within the cluster.
> As usual, use `tab twice` to get the CLI fields auto-completed.


The next step is to install Frisbee in your Kubernetes cluster.

```shell
kubectl-frisbee install production
kubectl logs -l control-plane=frisbee-operator -n frisbee --follow
```


### Step 3 – Submit a testing job.

Since the majority of Frisbee operations happens through the native CLI,
it is suggested to enable the autocompletion.

Finally, you can download the Frisbee project to get access to the ready-to-use examples.

```shell
source <(kubectl-frisbee completion bash)
git clone git@github.com:CARV-ICS-FORTH/frisbee.git
cd frisbee
```

As usual, use `tab twice` to get the CLI fields auto-completed.


#### Submit a job
### Step 3 – Submit a testing job:

To submit a testing job, the general syntax is:

Expand All @@ -163,7 +149,7 @@ Conventionally, we separate the test-cases from the templates of the system unde


Let's try to run a scenario from the tutorial.

```shell
kubectl-frisbee submit test demo- ./examples/tutorial/15.performance-monitoring.yml ./charts/networking/iperf2/ ./charts/system/
```
Expand All @@ -179,7 +165,7 @@ kubectl-frisbee submit test demo- ./examples/tutorial/15.performance-monitoring.



#### Inspect Submitted Jobs.
#### Inspect Submitted Jobs:

To get a list of submitted tests, use:

Expand All @@ -203,7 +189,7 @@ kubectl frisbee inspect tests demo-326
<img src="docs/readme.assets/cli-inspect.png" width="900">
</p>

### Step 4 – Live Progress Monitoring
### Step 4 – Live Progress Monitoring:

The last section of `inspect` provides the URLs for accessing Prometheus/Grafana.

Expand Down Expand Up @@ -236,7 +222,7 @@ by a `fault-injection event`.
<img src="docs/readme.assets/contextualized-visualization.png" width="900">
</p>

### Step 5 – Auto-generate test reports.
### Step 5 – Auto-generate test reports:

Finally, Frisbee provides an advanced functionality for auto-generating reports for the tests.

Expand All @@ -248,7 +234,6 @@ This will create report on `~/frisbee-reports` directory including the pdf from




## Features

👉 Workflow templating to store commonly used workflows in the cluster.
Expand All @@ -267,8 +252,6 @@ This will create report on `~/frisbee-reports` directory including the pdf from

👉 Archiving Test results after executing for later access.

👉 On-Demand reliable container attached storage.

👉 Garbage collection of completed resources.

👉 Chaos-Engineering and Fault-Injection via Chaos-Mesh.
Expand All @@ -277,7 +260,7 @@ This will create report on `~/frisbee-reports` directory including the pdf from

👉 CLI applications to test management and test inspection.

To learn how to use these features, check the **[Walkthrough](https://frisbee.dev/docs/walkthrough)**.


## Citation

Expand All @@ -292,10 +275,13 @@ year={2021}
}
```



## Contributing to Frisbee

We welcome contributions. Please see [CONTRIBUTING.md](CONTRIBUTING.md) to get
started!
We welcome contributions. Please see [CONTRIBUTING.md](CONTRIBUTING.md) to get started!



## Acknowledgements

Expand Down

0 comments on commit 903942f

Please sign in to comment.