Giter Club home page Giter Club logo

rally-plugins's Introduction

Rally plugins

Rally custom plugins for testing platform components.

Installation

To add custom rally plugins to rally plugin list, just pip the repo:

pip install .

Then you can check that custom plugins included in rally plugins list:

rally plugin list | grep <plugin_name>

Uninstall

To uninstall the repo, just pip uninstall it:

pip uninstall rally-plugins

Dependencies

rally-plugins depends on rally-openstack package.

Current state

Currently there are next services:

  • service for Grafana, that push metric by pushgateway and check it in specified grafana datasource
  • service for Kubernetes rally plugins

Next scenarios are implemented in rally-plugins:

  • Grafana:
    • check metric pushed from nova instance by pushgateway
    • check metric pushed locally by pushgateway
  • Elasticsearch:
    • check data about created nova instance stored
  • Kubernetes:
    • create namespace and namespaced pod and delete it then
    • create namespace and namespaced replication controller and delete it then
    • list namespaces
    • create namespace and delete it then
    • create namespace and namespaced pod with emptyDir volume and delete it then
    • create namespace and namespaced pod with emptyDir volume, check it with check command and delete it then
    • create namespace, create secret and namespaced pod with secret volume and delete it then
    • create namespace, create secret and namespaced pod with secret volume, check it with check command and delete it then
    • create namespace and namespaced pod with hostPath volume and delete it then
    • create namespace and namespaced pod with hostPath volume, check it with check command and delete it then
    • create namespace, create PV and PVC, create namespaced pod with PVC and delete it then
    • create namespace, create PV and PVC, create namespaced pod with PVC, check it with check command and delete it then
    • create namespace, create configMap and namespaced pod with configMap volume and delete it then
    • create namespace, create configMap and namespaced pod with configMap volume, check it with check command and delete it then
    • create namespace and namespaced replicaset and delete it then
    • create namespace and namespaced replicaset, scale it with number of replicas, scale revert and delete replicaset then
    • create namespace and namespaced deployment and delete it then
    • create namespace and namespaced deployment, rollout it with changes and delete it then
    • create namespace and namespaced statefulset and delete it then
    • create namespace and namespaced statefulset, scale it with number of replicas, scale revert and delete statefulset then
    • create namespace and namespaced job with "Never" restart policy, wait for successful status and delete it then.
    • create namespace and namespaced daemonset, check that each node has the daemonset pod and delete daemonset then.
    • create namespace, namespaced pod, add clusterIP service with selector on pod, get pod endpoints and run job, which curl all these endpoints, then delete them all.
    • create namespace, namespaced pod, add clusterIP service without selector and with custom endpoints on pod, run job, which curl all these endpoints, then delete them all.
    • create namespace, namespaced pod, add nodePort service with selector on pod, get node port and requests pod with node ip and port, then delete them all.

For more details how to run and analyze tests, see docs\source directory.

rally-plugins's People

Contributors

olegeech-me avatar osavatieiev avatar prazumovsky avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rally-plugins's Issues

Node port service test always expect that port is part of cluster URL

create_check_and_delete_pod_with_node_port_service gets erred when cluster URL doesn't have a port. Code expects the URL to always contain port. See here. For example, URL of type https://k8s-api.example.com gives the service URL as http:30151/ instead of https://k8s-api.example.com:30151/.

MissingSchema: Invalid URL 'http:30151/': No schema supplied. Perhaps you meant http://http:30151/?

Traceback (most recent call last):
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/rally/task/runner.py", line 71, in _run_scenario_once
    getattr(scenario_inst, method_name)(**scenario_kwargs)
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/rally_plugins/scenarios/kubernetes/services.py", line 229, in run
    requests.get(url, **kwargs)
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/requests/sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/requests/sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/requests/models.py", line 313, in prepare
    self.prepare_url(url, params)
  File "/opt/rally/xrally-venv/local/lib/python2.7/site-packages/requests/models.py", line 387, in prepare_url
    raise MissingSchema(error)
MissingSchema: Invalid URL 'http:30151/': No schema supplied. Perhaps you meant http://http:30151/?

Unclear error message in replication controller test

create_scale_and_delete_replication_controller gives unclear error message when it times out due to replicas not getting ready.
The error message is shown as this
rally.exceptions.TimeoutException: Rally tired waiting 300.00 seconds for Replication controller rally-3a609568-f4uo1550:bb0096e5-e964-405d-8c7d-5097c3209a2c to become 2 replicas running current status 2 replicas running

This looks confusing since the message indicates to become 2 replicas running current status 2 replicas running.

Make imagePullPolicy configurable for xrally kubernetes tests

In xrally tests, the image policy is set to Always. This should be made configurable so that the imagePullPolicy can be set appropriately depending on different environments. This will also help to execute the tests successfully in cluster which do not have internet connectivity or connectivity to docket hub. In this case, container images can. simply be uploaded to worker nodes and the tests can execute with IfNotPresent policy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.