Skip to content

A set of xRally plugins to run workloads against Kubernetes platform.

License

Notifications You must be signed in to change notification settings

xrally/xrally-kubernetes

Repository files navigation

xrally-kubernetes

xRally plugins for Kubernetes platform.

Getting started

First of all, you need to create rally env for Kubernetes. There are two main ways to communicate to Kubernetes cluster - specifying auth-token or certifications. Choose what is suitable for your case and use one of the following samples.

To create env using certifications, use spec samples/platforms/cert-spec.yaml:

rally env create --name kubernetes --spec samples/platforms/cert-spec.yaml

For using Kubernetes token authentication, you need to get API key and use samples/platforms/apikey-spec.yaml spec to create env:

rally env create --name kubernetes --spec samples/platforms/apikey-spec.yaml

For initialization Rally environment to communicate to existing Kubernetes cluster you can also use system environment variables instead of making specification json/yaml file. See the list of available options:

  • As like regular kubernetes client (kubectl) Rally can read kubeconfig file. Call rally env create --name kubernetes-created --from-sys-env and Rally with check $HOME/.kube/config file to the available configuration. Also, you can specify KUBECONFIG variable with a path different to the default $HOME/.kube/config.

  • Despite the fact that kubectl doesn't support specifying Kubernetes credentials via separated system environment variables per separate option (auth_url, api_key, etc) like other platforms support (OpenStack, Docker, etc), Rally team provides this way. Check existing@kubernetes plugin documentation for the list of all available variables. Here is a simple example of this feature:

    # the URL to the Kubernetes host.
    export KUBERNETES_HOST="https://example.com:3030" 
    #  a path to a file containing TLS certificate to use when connecting to the Kubernetes host.
    export KUBERNETES_CERT_AUTH="~/.kube/cert_auth_file"
    # client API key to use as token when connecting to the Kubernetes host.
    export KUBERNETES_API_KEY="foo"
    # client API key prefix to use in token when connecting to the Kubernetes host.
    export KUBERNETES_API_KEY_PREFIX="bar"
    
    # finally create a Rally environment
    rally env create --name my-kubernetes --from-sysenv

Check env availbility by the following command:

rally env check

Where the tasks and bugs are tracked ?!

The primary tracking system is Issues at GitHub.

For Rally framework related issues look at Launchpad.