GithubHelp home page GithubHelp logo

egressip's Introduction

EgressIP scale testing workload

This repo consists of workload configuration for scale testing EgressIPs.

image

image folder consists of customized nginx server which adds source IP address to the return packet. Corresponding change in image/nginx/nginx.conf.template

http { server { location / { return 200 $remote_addr; } } }

image/nginx/Containerfile provides LISTEN_PORT for user to specify as input in Pod so that nginx server can listen on this port. OCP worker on AWS platform opens only ports from 9001, so we can use these ports for serving requets

quay.io/vkommadi/nginx-custom:latest already built with this configuration.

kube_burner_eip_simulate.go

This simulates how kube-burner-ocp and kube-burner interacts to generate EIP object template while running the job iterations. kube_burner_ocp() will generate ip addresses from CIDR by excluding nodeips and then set them as environment variables. kube_burner() will read this environment variable and generate IP addresses for each EIP object template

Pass --iterations and --addresses-per-iteration as cli arguments to kube_burner_eip_simulate.go.

[vkommadi@fedora temp]$ go run kube_burner_eip_simulate.go --iterations 2 --addresses-per-iteration 2 --exclude-addresses "192.168.1.0 192.168.1.1"
EgressIPs:
 - 192.168.1.4
 - 192.168.1.5

EgressIPs:
 - 192.168.1.6
 - 192.168.1.7

go_eips.go

This is a test file to simulate how we can generate EIP addresses in the workload object template. Config params - eip_cidr - User provides CIDR to allocate addresses for EIP (kube-burner-ocp can read this from the node configuration). nodeips - User also provides IPs to exclude from this CIDR (this will be node IP addrsses which kube-burner can get from OCP cluster). numIterations - total job iterations addrPerIteration - ip addresses per iteration. We will use 1 or 2 EIP ip addresses per EIP object

From the provided CIDR, test will generate IP addresses incrementaly for the objects which are part of iterations (excluding the node IPs) and add these addresses to object template file.

Sample output

[vkommadi@fedora temp]$ go run go_eips.go 
EgressIPs:
 - 192.168.1.5
 - 192.168.1.6

EgressIPs:
 - 192.168.1.7
 - 192.168.1.8

This code will be added to kube-burner-ocp egressip workload. kube-burner-ocp will only generate ip addresses (exluding node ips) and then pass them to kube-burner which will add them to the template.

Note: There is alternate way of passing all the params (eip_cidr, nodeips) to kube-burner by kube-burner-ocp and kube-burner generate the ip addresses. But need to think a way for kube-burner to provide alternate IPs for node IP.

egressip's People

Contributors

venkataanil avatar

Watchers

 avatar

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.