Skip to content

Commit

Permalink
Discover HAProxy version
Browse files Browse the repository at this point in the history
Signed-off-by: Raul Sevilla <[email protected]>
  • Loading branch information
rsevilla87 committed Sep 21, 2023
1 parent 1e8458a commit f14ae58
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 4 deletions.
3 changes: 1 addition & 2 deletions pkg/runner/exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"sync"
"time"

ocpmetadata "github.com/cloud-bulldozer/go-commons/ocp-metadata"
"github.com/cloud-bulldozer/go-commons/version"
"github.com/cloud-bulldozer/ingress-perf/pkg/config"
"github.com/cloud-bulldozer/ingress-perf/pkg/runner/tools"
Expand All @@ -36,7 +35,7 @@ import (

var lock = &sync.Mutex{}

func runBenchmark(cfg config.Config, clusterMetadata ocpmetadata.ClusterMetadata) ([]tools.Result, error) {
func runBenchmark(cfg config.Config, clusterMetadata tools.ClusterMetadata) ([]tools.Result, error) {
var aggAvgRps, aggAvgLatency, aggP99Latency float64
var timeouts, httpErrors int64
var benchmarkResult []tools.Result
Expand Down
52 changes: 52 additions & 0 deletions pkg/runner/metadata.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package runner

import (
"bytes"
"context"
"strings"

log "github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/tools/remotecommand"
)

func getHAProxyVersion() (string, error) {
var stdout, stderr bytes.Buffer
podList, err := clientSet.CoreV1().Pods("openshift-ingress").List(context.TODO(),
metav1.ListOptions{
LabelSelector: "ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default",
FieldSelector: "status.phase=Running"},
)
if err != nil {
return "", err
}
routerPod := podList.Items[0]
req := clientSet.CoreV1().RESTClient().Post().
Resource("pods").
Name(routerPod.Name).
Namespace(routerPod.Namespace).
SubResource("exec")
req.VersionedParams(&corev1.PodExecOptions{
Container: "router",
Stdin: false,
Stdout: true,
Stderr: true,
Command: []string{"bash", "-c", "rpm -qa | grep haproxy"},
TTY: false,
}, scheme.ParameterCodec)
exec, err := remotecommand.NewSPDYExecutor(restConfig, "POST", req.URL())
if err != nil {
log.Error(err.Error())
return "", err
}
err = exec.StreamWithContext(context.TODO(), remotecommand.StreamOptions{
Stdout: &stdout,
Stderr: &stderr,
})
if err != nil {
return "", err
}
return strings.TrimRight(stdout.String(), "\n"), err
}
7 changes: 6 additions & 1 deletion pkg/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ func Start(uuid, baseUUID, baseIndex string, tolerancy int, indexer *indexers.In
var kubeconfig string
var benchmarkResult []tools.Result
var comparator comparison.Comparator
var clusterMetadata tools.ClusterMetadata
passed := true
log.Info("Starting ingress-perf")
if os.Getenv("KUBECONFIG") != "" {
Expand All @@ -73,7 +74,11 @@ func Start(uuid, baseUUID, baseIndex string, tolerancy int, indexer *indexers.In
if err != nil {
return err
}
clusterMetadata, err := ocpMetadata.GetClusterMetadata()
clusterMetadata.ClusterMetadata, err = ocpMetadata.GetClusterMetadata()
if err != nil {
return err
}
clusterMetadata.HAProxyVersion, err = getHAProxyVersion()
if err != nil {
return err
}
Expand Down
8 changes: 7 additions & 1 deletion pkg/runner/tools/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ import (
"github.com/cloud-bulldozer/ingress-perf/pkg/config"
)

// We need to embed ClusterMetadata in order to add extra fields to it
type ClusterMetadata struct {
ocpmetadata.ClusterMetadata
HAProxyVersion string `json:"haproxyVersion,omitempty"`
}

type Tool interface {
ParseResult(string, string) (PodResult, error)
Cmd() []string
Expand Down Expand Up @@ -65,5 +71,5 @@ type Result struct {
Requests int64 `json:"requests"`
Timeouts int64 `json:"timeouts"`
Version string `json:"version"`
ocpmetadata.ClusterMetadata
ClusterMetadata
}

0 comments on commit f14ae58

Please sign in to comment.