This IPFS-related repository has been archived, and all issues are therefore frozen. If you want to ask a question or open/continue a discussion related to this repo, please visit the official IPFS forums.
We archive repos for one or more of the following reasons:
Code or content is unmaintained, and therefore might be broken
Content is outdated, and therefore may mislead readers
Code or content evolved into something else and/or has lived on in a different place
The repository or project is not active in general
Please note that in order to keep the primary IPFS GitHub org tidy, most archived repos are moved into the ipfs-inactive org.
If you feel this repo should not be archived (or portions of it should be moved to a non-archived repo), please reach out and let us know. Archiving can always be reversed if needed.
Get Started
kubernetes-ipfs works with both a full kubernetes deployment, or the
minikube
all-in-one system
With Minikube
./reset-minikube.sh to set minikube up in a clean state
./init.sh to create go-ipfs and grafana deployments on minikube
Running tests
go run main.go tests/simple-add-and-cat.yml
The go application returns 0 when expectations were met, 1 when they failed
Metrics Gathering: Prometheus/Grafana
The following steps detail how to access the Grafana web UI's on your local
machine.
Before running the init.sh script, ensure that the grafana-core deployment
in the prometheus-manifests.yml has these variables set as shown:
This allows you to easily access the Grafana interface without any sort of
authentication.
Then, after running init.sh, you need to tell Kubernetes to forward
connections on one of your local ports to the port that's hosting the Grafana
interface. To do so, you can:
Get the name of the pod hosting the grafana-core deployment. The command
with an example output:
Tell kubectl to forward all connections on a local port to port 3000 on
the grafana-core pod found in the previous step. In this example, we simply
use port 3000 for the local port as well:
The tests are specified in a .yml file for each test.
Header
name: Name the test
nodes: How many nodes to run for the test. Kubernetes-ipfs will
automatically scale the deployment to match the value here before starting
times: How many times to run the full test.
expected: define the number of expected outcomes. This value should be
outcomes per test * times. Specify the expected successes, failures, and
timeouts.
Steps
Each step contains a few flags that specify how they will be run, and a cmd which is the command to run on the node
name: Name the step
on_node: On which node number should we run this test?
end_node: When specified, we will run this test in parallel from on_node
to end_node inclusive. Useful for testing simultaneous group interactions.
selection: An alternate way to choose the nodes that run a command. Allows
for specifying ranges, percents and consistent subsets succinctly
for: An optional way to specify that a step be ran more than once. Can
specify an iteration bound or a for each style iteration over an input array
outputs: Specify a line number of output and what environment variable to
save it to. It can be used for the following input section
inputs: Specify the environment variables to take in for this command.
cmd: Verbatim command to run on the node. Bash variables will be evaluated.
timeout: At this many seconds, the step will be cancelled and counted as
"timeout".
assertions: At the moment, only should_be_equal_to Specify that a line
number of stdout should be equal to a line you have used save_to on. On
success, adds a success count, on fail, adds a failure count.
请发表评论