README.md in floe-0.1.1 vs README.md in floe-0.2.0
- old
+ new
@@ -26,17 +26,51 @@
```
bundle exec ruby exe/floe --workflow examples/workflow.asl --inputs='{"foo": 1}'
```
+By default Floe will use `docker` to run `docker://` type resources, but `podman` and `kubernetes` are also supported runners.
+A different runner can be specified with the `--docker-runner` option:
+
+```
+bundle exec ruby exe/floe --workflow examples/workflow.asl --inputs='{"foo": 1}' --docker-runner podman
+bundle exec ruby exe/floe --workflow examples/workflow.asl --inputs='{"foo": 1}' --docker-runner kubernetes --docker-runner-options namespace=default server=https://k8s.example.com:6443 token=my-token
+```
+
### Ruby Library
```ruby
require 'floe'
workflow = Floe::Workflow.load(File.read("workflow.asl"))
workflow.run!
```
+
+You can also specify a specific docker runner and runner options:
+```ruby
+require 'floe'
+
+Floe::Workflow::Runner.docker_runner = Floe::Workflow::Runner::Podman.new
+# Or
+Floe::Workflow::Runner.docker_runner = Floe::Workflow::Runner::Kubernetes.new("namespace" => "default", "server" => "https://k8s.example.com:6443", "token" => "my-token")
+
+workflow = Floe::Workflow.load(File.read("workflow.asl"))
+workflow.run!
+```
+
+### Docker Runner Options
+
+#### Kubernetes
+
+Options supported by the kubernetes docker runner are:
+
+* `kubeconfig` - Path to a kubeconfig file, defaults to `KUBECONFIG` environment variable or `~/.kube/config`
+* `kubeconfig_context` - Context to use in the kubeconfig file, defaults to `"default"`
+* `namespace` - Namespace to use when creating kubernetes resources, defaults to `"default"`
+* `server` - A kubernetes API Server URL, overrides anything in your kubeconfig file. If set `KUBERNETES_SERVICE_HOST` and `KUBERNETES_SERVICE_PORT` will be used
+* `token` - A bearer_token to use to authenticate to the kubernetes API, overrides anything in your kubeconfig file. If present, `/run/secrets/kubernetes.io/serviceaccount/token` will be used
+* `ca_file` - Path to a certificate-authority file for the kubernetes API, only valid if server and token are passed. If present `/run/secrets/kubernetes.io/serviceaccount/ca.crt` will be used
+* `verify_ssl` - Controls if the kubernetes API certificate-authority should be verified, defaults to "true", only vaild if server and token are passed
## Development
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.