Sign inSign up

clivern/toad

By clivern

•Updated about 5 years ago

Containerized Application for Testing Purposes.

Image
0

1.4K

clivern/toad repository overview

Toad Logo

⁠Toad

Containerized Application for Testing Purposes

⁠Documentation

⁠Usage

Get the latest binary.⁠

$ curl -sL https://github.com/Clivern/Toad/releases/download/x.x.x/Toad_x.x.x_OS_x86_64.tar.gz | tar xz

Run Toad:

$ ./Toad

Check the release:

$ ./Toad --get release

Health check:

$ ./Toad --get health

To run on stateful mode:

# If stateful, it will use redis by default
$ export IS_STATEFUL=true

# Redis configs
$ export REDIS_HOST=localhost
$ export REDIS_PORT=6379
$ export REDIS_PASSWORD=

Test it:

# Home
$ curl http://127.0.0.1:8080/ -v

# Health check
$ curl http://127.0.0.1:8080/_health -v

# Get State (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/get -v

# Change State (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/change -v

# Reset State (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/reset -v

# Enable Host (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/host_up -v

# Disable Host (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/host_down -v

# Enable All Hosts (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/all_up -v

# Disable  All Hosts (Only Stateful Mode)
$ curl http://127.0.0.1:8080/do/all_down -v
⁠Deploy on Kubernetes
$ kubectl apply -f deployment/k8s/configs.yaml --record

$ kubectl get configmaps configs -o yaml

$ kubectl apply -f deployment/k8s/redis.yaml --record

$ kubectl apply -f deployment/k8s/toad.yaml --record

$ kubectl get deployments -o wide
$ kubectl get svc -o wide

$ kubectl get pods -o wide
$ kubectl logs $PodName
⁠Deployment Strategies

Ramped: release a new version on a rolling update fashion, one after the other.

$ kubectl apply -f deployment/k8s/ramped/toad_ramped_strategy.yaml --record

Recreate: terminate the old version and release the new one.

$ kubectl apply -f deployment/k8s/recreate/toad_recreate_strategy.yaml --record

Blue/Green: release a new version alongside the old version then switch traffic.

$ kubectl apply -f deployment/k8s/blue_green/toad_blue_green_strategy.yaml --record

# Create service to load balance the old version (blue)
$ kubectl apply -f deployment/k8s/blue_green/switch_to_blue.yaml --record

# Create service to load balance the new version (green)
$ kubectl apply -f deployment/k8s/blue_green/switch_to_green.yaml --record

Canary: release a new version to a subset of users, then proceed to a full rollout.

$ ~
⁠Kubernetes Ingresses

It allow you to flexibly route traffic from outside your Kubernetes cluster to Services inside of your cluster.

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml
$ kubectl get pods -n ingress-nginx \
  -l app.kubernetes.io/name=ingress-nginx --watch
$ kubectl get svc --namespace=ingress-nginx

$ kubectl apply -f deployment/k8s/ingress/toad.yaml --record

$ kubectl get ingress
$ kubectl describe ingress toad-ing1
$ kubectl describe ingress toad-ing2

$ curl http://example.com/toad1/
$ curl http://example.com/toad2/

$ curl http://example.com/toad1/_ready
$ curl http://example.com/toad2/_ready

$ curl http://toad1.example.com/
$ curl http://toad2.example.com/

⁠Versioning

For transparency into our release cycle and in striving to maintain backward compatibility, Toad is maintained under the Semantic Versioning guidelines⁠ and release process is predictable and business-friendly.

See the Releases section of our GitHub project⁠ for changelogs for each release version of Toad. It contains summaries of the most noteworthy changes made in each release.

⁠Bug tracker

If you have any suggestions, bug reports, or annoyances please report them to our issue tracker at https://github.com/clivern/toad/issues⁠

⁠Security Issues

If you discover a security vulnerability within Toad, please send an email to [email protected]⁠

⁠Contributing

We are an open source, community-driven project so please feel free to join us. see the contributing guidelines⁠ for more details.

⁠License

© 2020, clivern. Released under MIT License⁠.

Toad is authored and maintained by @clivern⁠.

Tag summary

Content type

Image

Digest

Size

325 MB

Last updated

about 5 years ago

docker pull clivern/toad