Skip to content

Commit a750e2b

Browse files
authored
feat: Support keda-add-on configs (#243)
* feat: Support keda-add-on configs Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es> * . Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es> --------- Signed-off-by: Jorge Turrado <jorge_turrado@hotmail.es>
1 parent a9628b7 commit a750e2b

5 files changed

Lines changed: 88 additions & 99 deletions

File tree

e2e/images/external-scaler/externalscaler/externalscaler.pb.go

Lines changed: 61 additions & 87 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

e2e/images/external-scaler/externalscaler/externalscaler.proto

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
syntax = "proto3";
22

33
package externalscaler;
4-
option go_package = "github.com/kedacore/test-tools/external-scaler-e2e/externalscaler";
4+
option go_package = ".;externalscaler";
55

66
service ExternalScaler {
77
rpc IsActive(ScaledObjectRef) returns (IsActiveResponse) {}
@@ -30,6 +30,7 @@ message MetricSpec {
3030
// deprecated, use targetSizeFloat instead
3131
int64 targetSize = 2;
3232
double targetSizeFloat = 3;
33+
optional string metricType = 4;
3334
}
3435

3536
message GetMetricsRequest {

e2e/images/external-scaler/externalscaler/externalscaler_grpc.pb.go

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
-12.8 MB
Binary file not shown.

e2e/images/external-scaler/main.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,21 @@ import (
1515
pb "github.com/kedacore/test-tools/external-scaler/externalscaler"
1616
)
1717

18-
func setValue(w http.ResponseWriter, r *http.Request) {
18+
func setType(w http.ResponseWriter, r *http.Request) {
19+
vars := mux.Vars(r)
20+
metricType := vars["type"]
21+
log.Printf("new metric type: %s\n", metricType)
22+
if metricType != "AverageValue" && metricType != "Value" && metricType != "null" {
23+
log.Print("invalid type -> it won't be included in GetMetricSpecResponse")
24+
return
25+
}
26+
ExternalScalerType = nil
27+
if metricType != "null" {
28+
ExternalScalerType = &metricType
29+
}
30+
}
1931

32+
func setValue(w http.ResponseWriter, r *http.Request) {
2033
vars := mux.Vars(r)
2134
number := vars["number"]
2235
ExternalScalerValue, _ = strconv.ParseInt(number, 10, 64)
@@ -38,20 +51,22 @@ func setFloatValue(w http.ResponseWriter, r *http.Request) {
3851

3952
func RunManagementApi() {
4053
r := mux.NewRouter()
54+
r.HandleFunc("/api/type/{type}", setType).Methods("POST")
4155
r.HandleFunc("/api/value/{number:[-0-9]+}", setValue).Methods("POST")
4256
r.HandleFunc("/api/floatvalue/{number:[-\\.0-9]+}", setFloatValue).Methods("POST")
4357
r.HandleFunc("/ready", func(w http.ResponseWriter, r *http.Request) {
4458
w.WriteHeader(http.StatusOK)
4559
}).Methods("GET")
4660
http.Handle("/", r)
4761
fmt.Printf("Running http management server on port: %d\n", 8080)
48-
fmt.Print("example usage:\n - POST -> localhost:8080/api/value/3\n - POST -> localhost:8080/api/floatvalue/3.14\n")
62+
fmt.Print("example usage:\n - POST -> localhost:8080/api/value/3\n - POST -> localhost:8080/api/floatvalue/3.14\n - POST -> localhost:8080/api/type/AverageValue\n")
4963
fmt.Print("if you set one of those values as negative, it won't be sent in the payload\n")
5064
http.ListenAndServe(":8080", nil)
5165
}
5266

5367
var ExternalScalerValue int64 = 0
5468
var ExternalScalerValueFloat = .0
69+
var ExternalScalerType *string = nil
5570

5671
type ExternalScaler struct {
5772
pb.UnimplementedExternalScalerServer
@@ -72,10 +87,9 @@ func (es *ExternalScaler) GetMetricSpec(ctx context.Context, scaledObjectRef *pb
7287
if err != nil {
7388
return nil, fmt.Errorf("invalid value for metric threshold - %s", err)
7489
}
75-
7690
return &pb.GetMetricSpecResponse{
7791
MetricSpecs: []*pb.MetricSpec{
78-
{MetricName: "external-scaler-e2e-test", TargetSizeFloat: metricThreshold},
92+
{MetricName: "external-scaler-e2e-test", TargetSizeFloat: metricThreshold, MetricType: ExternalScalerType},
7993
},
8094
}, nil
8195
}

0 commit comments

Comments
 (0)