Skip to content

Commit

Permalink
Install (#25)
Browse files Browse the repository at this point in the history
* fixing readme and contrib

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fix installation of iter8

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* install fixes

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing   tests.yaml

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing loglevel

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* indent new lines

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing multi-line runs

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing tests

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing install

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* updated concepts and home

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* Iter8 CLI documentation

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* updated docs

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing usage docs

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* updated iter8 commands

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing readme and contrib

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing various v0.10 docs

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* update roadmap

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* roadmap with devsecops

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* updating iter8 CLI docs

Signed-off-by: Srinivasan Parthasarathy <[email protected]>

* fixing your first experiment doc

Signed-off-by: Srinivasan Parthasarathy <[email protected]>
  • Loading branch information
sriumcp authored Apr 14, 2022
1 parent 3a7be3e commit 87ecca2
Show file tree
Hide file tree
Showing 33 changed files with 742 additions and 528 deletions.
104 changes: 0 additions & 104 deletions .github/workflows/tests.yaml

This file was deleted.

46 changes: 5 additions & 41 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@ bug report and let us know!
We welcome many different types of contributions including:

* [Tutorials and other documentation](#iter8-toolsdocs)
* [Experiment charts](#iter8-toolshub)
* [CLI features, and experiment tasks](#iter8-toolsiter8)
* [Iter8 GitHub Action](#iter8-toolsiter8-action)
* [Core Iter8 module with experiment charts](#iter8-toolsiter8)
* CI, builds, and tests
* [Web design](#iter8-toolsdocs)
* Reviewing pull requests
Expand All @@ -35,7 +33,7 @@ The best ways to reach us with a question is to ask...

## Find an issue

Iter8 issues are managed [here](https://github.com/iter8-tools/iter8/issues).
Iter8 issues are tracked [here](https://github.com/iter8-tools/iter8/issues).

Issued labeled **good first issue** have extra information to
help you make your first contribution. Issues labeled **help wanted** are issues
Expand Down Expand Up @@ -90,10 +88,9 @@ repository, you can amend your commit with the sign-off by running:

The Iter8 project consists of the following repos.

1. [iter8-tools/iter8](https://github.com/iter8-tools/iter8): source for Iter8 CLI
2. [iter8-tools/hub](https://github.com/iter8-tools/hub): source for Iter8 experiment charts
3. [iter8-tools/docs](https://github.com/iter8-tools/docs): source for Iter8 docs
4. [iter8-tools/homebrew-iter8](https://github.com/iter8-tools/homebrew-iter8): Homebrew formula for installing Iter8 CLI
1. [iter8-tools/iter8](https://github.com/iter8-tools/iter8): source for the Iter8 CLI and experiment charts
2. [iter8-tools/docs](https://github.com/iter8-tools/docs): source for Iter8 docs
3. [iter8-tools/homebrew-iter8](https://github.com/iter8-tools/homebrew-iter8): Homebrew formula for the Iter8 CLI

### iter8-tools/iter8

Expand Down Expand Up @@ -123,35 +120,6 @@ make coverage
make htmlcov
```

### iter8-tools/hub

This is the source repo for Iter8 experiment charts.

#### Clone `hub`

```shell
git clone https://github.com/iter8-tools/hub.git
```

#### Add tests
Add integration tests for Iter8 hub in the `.github/workflows/tests.yaml` file.

#### Versioning
Iter8 experiment charts are Helm charts under the covers, and are semantically versioned as per [Helm chart versioning specifications](https://helm.sh/docs/topics/charts/#charts-and-versioning). Every change to the chart must be accompanied by an increment to the version number of the chart. For most changes, this would mean an increment to the patch version (for example, the `version` field in `Chart.yaml` may be incremented from `0.1.0` to `0.1.1`).

### iter8-tools/iter8-action

This is the source repo for the Iter8 GitHub Action.

#### Clone `iter8-action`

```shell
git clone https://github.com/iter8-tools/iter8-action.git
```

#### Add tests
Add integration tests for Iter8 hub in the `.github/workflows/tests.yaml` file. You can run these tests by manually triggering the `tests` GitHub Actions workflow.


### iter8-tools/docs

Expand All @@ -175,10 +143,6 @@ mkdocs serve -s

You can now see your local docs at [http://localhost:8000](http://localhost:8000). You will also see live updates to [http://localhost:8000](http://localhost:8000) as you update the contents of the `docs` folder.

#### Add tests
Add end-to-end tests for Iter8 in the `.github/workflows/tests.yaml` file.


<!-- ## Pull Request Checklist
When you submit your pull request, or you push new commits to it, our automated
Expand Down
77 changes: 32 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,49 @@
# :zap: Iter8: Kubernetes Release Optimizer
# Iter8: Kubernetes Release Optimizer

[![Iter8 release](https://img.shields.io/github/v/release/iter8-tools/iter8?sort=semver)](https://github.com/iter8-tools/iter8/releases)
[![GoDoc](https://img.shields.io/static/v1?label=godoc&message=reference&color=blue)](https://pkg.go.dev/github.com/iter8-tools/iter8)
[![Unit test Coverage](https://codecov.io/gh/iter8-tools/iter8/branch/master/graph/badge.svg)](https://codecov.io/gh/iter8-tools/iter8)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/iter8-tools/iter8/tests?label=Unit%20tests)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/iter8-tools/hub/tests?label=Integration%20tests)

> - Safely rollout apps
> - Maximize business value
> - Use with any app/serverless/ML framework
> - Simplify CI/CD/GitOps
> - Get started in seconds
> - Benchmark and validate HTTP and gRPC services
> - Compare app/ML model versions using metrics
> - Safely promote winning version
> - Maximize business value in each release
<p align='center'>
<img alt-text="Iter8 experiment" src="https://iter8-tools.github.io/docs/0.9/images/iter8-intro-dark.png" width="70%" />
</p>

## :rocket: Getting started

### Install Iter8 CLI
```shell
brew tap iter8-tools/iter8
brew install [email protected]
```
[See here](https://iter8.tools/latest/getting-started/install) for more ways to install.

### Benchmark an HTTP service
Launch Iter8 experiment and view report.
```shell
iter8 launch -c load-test-http --set url=https://httpbin.org/get
iter8 report
```

### Benchmark a gRPC service
Start a sample gRPC service in a separate terminal.

```shell
docker run -p 50051:50051 docker.io/grpc/java-example-hostname:latest
```

Launch Iter8 experiment and view report.
```shell
iter8 launch -c load-test-grpc \
--set host="127.0.0.1:50051" \
--set call="helloworld.Greeter.SayHello" \
--set protoURL="https://raw.githubusercontent.com/grpc/grpc-go/master/examples/helloworld/helloworld/helloworld.proto"
iter8 report
```

## :dart: Usage examples
## :dart: Features at a glance

**Load testing with SLOs**

> Iter8 experiments can generate requests for HTTP and gRPC services, collect built-in latency and error-related metrics, and validate SLOs.
**A/B(/n) testing**

> Grow your business with every release. Iter8 experiments can compare multiple versions based on business value and identify a winner.
**Simple to use**

> Get started with Iter8 in seconds using pre-packaged experiment charts. Run Iter8 experiments locally, inside Kubernetes, or inside your CI/CD/GitOps pipelines.
**App frameworks**

> Use with any app, serverless, or ML framework. Iter8 works with Kubernetes deployments, statefulSets, Knative services, KServe/Seldon ML deployments, or other custom Kubernetes resource types.
## :rocket: Usage examples
1. [Load test, benchmark and validate HTTP services with SLOs](https://iter8.tools/0.9/tutorials/load-test-http/usage/).
2. [Load test, benchmark and validate gRPC services with SLOs](https://iter8.tools/0.9/tutorials/load-test-grpc/usage/).
3. Load test, benchmark and validate Knative services with SLOs: [HTTP](https://iter8.tools/0.9/tutorials/integrations/knative/load-test-http/) and [gRPC](https://iter8.tools/0.9/tutorials/integrations/knative/load-test-grpc/).
3. Performance testing and SLO validation using Iter8 GitHub Action: [HTTP](https://iter8.tools/0.9/tutorials/load-test-http/ghaction/) and [gRPC](https://iter8.tools/0.9/tutorials/load-test-grpc/ghaction/).
4. Performance testing and SLO validation for Knative services: [HTTP](https://iter8.tools/0.9/tutorials/integrations/knative/load-test-http/) and [gRPC](https://iter8.tools/0.9/tutorials/integrations/knative/load-test-grpc/).

Please see [https://iter8.tools](https://iter8.tools) for the complete documentation.

## :maple_leaf: Issues

### Documentation
Iter8 documentation is available at https://iter8.tools.
Iter8 issues are tracked [here](https://github.com/iter8-tools/iter8/issues).

## :wrench: Developing Iter8
## :tada: Contributing
We welcome PRs!

See [here](CONTRIBUTING.md) for information about ways to contribute, Iter8 community meetings, finding an issue, asking for help, pull-request lifecycle, and more.
Expand Down
11 changes: 5 additions & 6 deletions docs/getting-started/concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,23 @@ template: main.html

# Iter8

Kubernetes release optimizer built for developers, DevOps and MLOps engineers, SREs, and data scientists.
Kubernetes release optimizer built for DevOps, MLOps, SRE, and data science teams.

## Iter8 experiment
<p align='center'>
<img alt-text="load-test-http" src="../../images/iter8-intro-dark.png" width="70%" />
</p>

Iter8 experiments make it simple to collect performance and business metrics for apps and ML models, assess, compare and validate multiple app/ML model versions, promote the winning version, and maximize business value in each release.
Iter8 experiments make it simple to collect performance and business metrics for apps and ML models, assess, compare and validate one or more app/ML model versions, promote the winning version, and maximize business value in each release.

## Experiment chart
Experiment charts are [Helm charts](https://helm.sh/docs/topics/charts/) with a special structure that contain reusable experiment templates. Iter8 combines experiment charts with user supplied values to generate runnable `experiment.yaml` files. Iter8 experiment charts enable you to launch powerful release optimization experiments in seconds. Their usage is described in depth in various [Iter8 tutorials](../tutorials/load-test-http/basicusage.md).
Iter8 Experiment charts are [Helm charts](https://helm.sh/docs/topics/charts/) under the covers, and enable simple, declarative, and reusable metrics-driven experiments. Iter8 combines experiment charts with user supplied values to generate runnable `experiment.yaml` files or Kubernetes experiment manifests. The former is used for running experiments in the local environment, while the latter is used for running experiments inside Kubernetes.

## Iter8 hub
Iter8 hub refers to a Helm repo that hosts Iter8 experiment charts. The official Iter8 hub is located at https://iter8-tools.github.io/hub/. You can create, package and host Iter8 experiment charts in any Helm repo and use them with Iter8 CLI.
Iter8 uses experiment charts located in the [Iter8 GitHub repo](https://github.com/iter8-tools/iter8) by default. You can create, package and host Iter8 experiment charts in any GitHub repo and use them with Iter8 CLI, and other Iter8 components.

## Features at a glance

- **Load testing with SLOs**
- **Benchmark and validate HTTP and gRPC services**

Iter8 experiments can generate requests for HTTP and gRPC services, collect built-in latency and error-related metrics, and validate SLOs.

Expand Down
37 changes: 6 additions & 31 deletions docs/getting-started/installiter8cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,36 @@

```shell
brew tap iter8-tools/iter8
brew install iter8
brew install iter8@0.10
```

??? note "Install a specific version"
You can install the Iter8 CLI with specific major and minor version numbers. For example, the following command installs the release of the Iter8 CLI with major `0` and minor `9`.
```shell
brew tap iter8-tools/iter8
brew install [email protected]
```

=== "Binaries"
You can replace `v0.9.0` with [any desired Iter8 release tag](https://github.com/iter8-tools/iter8/releases).
Replace `${TAG}` below with [any Iter8 release tag](https://github.com/iter8-tools/iter8/releases) (example, `v0.10.5`).

=== "darwin-amd64 (MacOS)"
```shell
wget https://github.com/iter8-tools/iter8/releases/download/v0.9.0/iter8-darwin-amd64.tar.gz
wget https://github.com/iter8-tools/iter8/releases/download/${TAG}/iter8-darwin-amd64.tar.gz
tar -xvf iter8-darwin-amd64.tar.gz
```
Move `darwin-amd64/iter8` to any directory in your `PATH`.

=== "linux-amd64"
```shell
wget https://github.com/iter8-tools/iter8/releases/download/v0.9.0/iter8-linux-amd64.tar.gz
wget https://github.com/iter8-tools/iter8/releases/download/${TAG}/iter8-linux-amd64.tar.gz
tar -xvf iter8-linux-amd64.tar.gz
```
Move `linux-amd64/iter8` to any directory in your `PATH`.

=== "linux-386"
```shell
wget https://github.com/iter8-tools/iter8/releases/download/v0.9.0/iter8-linux-386.tar.gz
wget https://github.com/iter8-tools/iter8/releases/download/${TAG}/iter8-linux-386.tar.gz
tar -xvf iter8-linux-386.tar.gz
```
Move `linux-386/iter8` to any directory in your `PATH`.

=== "windows-amd64"
```shell
wget https://github.com/iter8-tools/iter8/releases/download/v0.9.0/iter8-windows-amd64.tar.gz
wget https://github.com/iter8-tools/iter8/releases/download/${TAG}/iter8-windows-amd64.tar.gz
tar -xvf iter8-windows-amd64.tar.gz
```
Move `windows-amd64/iter8.exe` to any directory in your `PATH`.


=== "Source"
Go `1.17+` is a pre-requisite. Replace `v0.9.0` with [any desired Iter8 release tag](https://github.com/iter8-tools/iter8/releases).

```shell
export TAG=v0.9.0
https://github.com/iter8-tools/iter8.git?ref=${TAG}
cd iter8
make install
```

=== "Go 1.17+"
You can replace `v0.9.0` with [any desired Iter8 release tag](https://github.com/iter8-tools/iter8/releases).
```shell
go install github.com/iter8-tools/[email protected]
```
You can now run `iter8` (from your gopath bin/ directory)
Loading

0 comments on commit 87ecca2

Please sign in to comment.