Coder Social home page Coder Social logo

kishen-v / cpe-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibm/cpe-operator

0.0 1.0 0.0 14.43 MB

automated continuous benchmarking framework on Kubernetes

License: Apache License 2.0

Shell 0.35% Go 94.78% Makefile 4.04% Dockerfile 0.83%

cpe-operator's Introduction

CPE Operator

CPE operator is a project that originally implements the AutoDECK framework. AutoDECK (Automated DEClarative Performance Evaluation and Tuning Framework on Kubernetes) is an evaluation system of Kubernetes-as-a-Service (KaaS) that automates configuring, deploying, evaluating, summarizing, and visualizing benchmarking workloads with a fully declarative manner.

system

Installation

1. Install supplementary/complementary systems

System Description Installation guide
Prometheus Operator for monitoring and visualization read more
Openshift Build Controller for image tracking read more
Node Tuning Operator for node tuning read more
Cloud Object Storaget (COS) for job result logging read more

2. Deploy controller (and parser)

Clone the repo and enter the workspace

git clone https://github.com/IBM/cpe-operator.git
cd cpe-operator

Deploy with either of the following choices:

2.1. Deploy default CPE system (controller with parser)

kubectl create -f ./config/samples/cpe-operator/default.yaml

2.2. Deploy with recommended CPE system (controller with parser and service monitor)

  • require Prometheus Operator to be deployed.
  • need to replace openshift-monitoring with the namespace that prometheus has been deployed for correcting RBAC resource.
kubectl create -f ./config/samples/cpe-operator/recommended.yaml

2.3. Custom deploy using kustomize

2.3.1. Set IMAGE_REGISTRY to your registry and update image in kustomization.yaml

export IMAGE_REGISTRY=[your registry URL]
export VERSION=[your image version tag]

** VERSION value must be specified as a valid semantic version for operator-sdk (Major.Minor.Patch)

2.3.2. Modify kustomization in /config

TAG description dependencies to-modify kustomization note
[PARSER] Deploy CPE parser - default Can specifiy PARSER_IMG environment for custom parser image
[PROMETHEUS] Deploy ServiceMonitor and RBAC Prometheus Operator default May need to modify namespace label in manager.yaml and RBAC depending on Prometheus deployment
[AUTO-TUNE] Deploy tuning namespace and mounted to controller Node Tuning Operator default
[LOG-COS] Set environment for COS secret Cloud Object Storage secret (see /output) default (and parser if [PARSER] enabled)

2.3.3. Deploy custom manifests

# require operator-sdk (>= 1.4), go (>= 1.13)
make deploy

# confirm cpe operator is running
kubectl get po -n cpe-operator-system
# see manager log
kubectl logs $(kubectl get po -n cpe-operator-system|grep controller|tail -1|awk '{print $1}') -n cpe-operator-system -c manager

To remove this operator run: make undeploy

3. Deploy Operators and Benchmark

See How to use the off-the-shelf/your own operator

Deploy simple coremark benchmark deployment:

kubectl create -f examples/none/cpe_coremark.yaml

Try benchmark with custom benchmark operator:

kubectl create -f examples/benchmark_operator/cpe_v1_benchmarkoperator_helm.yaml
# confirm ripsaw operator is running
kubectl get po -n my-ripsaw
kubectl create -f examples/benchmark_operator/cpe_v1_benchmark_iperf3.yaml
# confirm the job
kubectl get po -n my-ripsaw

Roadmap

  • design custom resource; see benchmark_types.go, benchmarkoperator_types.go
  • integrate to off-the-shelf benchmark operator; see benchmarks
  • implement build tracker; see tracker
  • raw output collector/parser; see output
    • integrate wrapper from snafu
  • iteration support; see iteration
    • app-parameter variation (scenario)
    • spec configuration
    • node profile tuning
  • visualize multi-cluster; see multi-cluster
  • insert a sidecar if set
  • combine resource usage metric; see metric
    • prometheus-export metrics
    • app-export metrics
    • eBPF metric collector

cpe-operator's People

Contributors

ibm-open-source-bot avatar imgbotapp avatar rinana avatar samyuan1990 avatar sunya-ch avatar tatsuhirochiba avatar trent-s 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.