Skip to content

Commit

Permalink
fix: rename fields
Browse files Browse the repository at this point in the history
Signed-off-by: Vladislav Sukhin <[email protected]>
  • Loading branch information
vsukhin committed Jan 7, 2025
1 parent 0598fac commit 0a3cd77
Show file tree
Hide file tree
Showing 13 changed files with 52 additions and 52 deletions.
4 changes: 2 additions & 2 deletions api/v1/testkube.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10727,10 +10727,10 @@ components:
type: object
description: configuration value
properties:
public:
value:
description: public value to use in webhook template
$ref: "#/components/schemas/BoxedString"
private:
secret:
description: private value stored in secret to use in webhook template
$ref: "#/components/schemas/SecretRef"

Expand Down
10 changes: 5 additions & 5 deletions cmd/kubectl-testkube/commands/webhooks/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,12 +245,12 @@ func getWebhookConfig(configs map[string]string) (map[string]testkube.WebhookCon
config := map[string]testkube.WebhookConfigValue{}
for key, value := range configs {
switch {
case strings.HasPrefix(value, "public="):
case strings.HasPrefix(value, "value="):
config[key] = testkube.WebhookConfigValue{
Public: &testkube.BoxedString{Value: strings.TrimPrefix(value, "public=")},
Value: &testkube.BoxedString{Value: strings.TrimPrefix(value, "value=")},
}
case strings.HasPrefix(value, "private="):
data := strings.TrimPrefix(value, "private=")
case strings.HasPrefix(value, "secret="):
data := strings.TrimPrefix(value, "secret=")
r := csv.NewReader(strings.NewReader(data))
r.Comma = ','
r.LazyQuotes = true
Expand All @@ -270,7 +270,7 @@ func getWebhookConfig(configs map[string]string) (map[string]testkube.WebhookCon
}

config[key] = testkube.WebhookConfigValue{
Private: &testkube.SecretRef{
Secret: &testkube.SecretRef{
Namespace: records[0][0],
Name: records[0][1],
Key: records[0][2],
Expand Down
2 changes: 1 addition & 1 deletion cmd/kubectl-testkube/commands/webhooks/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func NewCreateWebhookCmd() *cobra.Command {
cmd.Flags().StringVarP(&payloadTemplate, "payload-template", "", "", "if webhook needs to send a custom notification, then a path to template file should be provided")
cmd.Flags().StringToStringVarP(&headers, "header", "", nil, "webhook header value pair (golang template supported): --header Content-Type=application/xml")
cmd.Flags().StringVar(&payloadTemplateReference, "payload-template-reference", "", "reference to payload template to use for the webhook")
cmd.Flags().StringToStringVarP(&config, "config", "", nil, "webhook config variable with csv coluums (public=value or private=namespace,secret,key): --config var1=public=value1 or --config var2=private=ns1,secret1,key1")
cmd.Flags().StringToStringVarP(&config, "config", "", nil, "webhook config variable with csv coluums (value=data or secret=namespace,name,key): --config var1=value=data or --config var2=secret=ns1,name1,key1")
cmd.Flags().StringToStringVarP(&parameters, "parameter", "", nil, "webhook parameter variable with csv coluums (description,required,example,default,pattern): --parameter var3=descr,true,12345,0,[0-9]*")
cmd.Flags().StringVar(&webhookTemplateReference, "webhook-template-reference", "", "reference to webhook to use as template for the webhook")
cmd.Flags().BoolVar(&update, "update", false, "update, if webhook already exists")
Expand Down
2 changes: 1 addition & 1 deletion cmd/kubectl-testkube/commands/webhooks/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func UpdateWebhookCmd() *cobra.Command {
cmd.Flags().StringVarP(&payloadTemplate, "payload-template", "", "", "if webhook needs to send a custom notification, then a path to template file should be provided")
cmd.Flags().StringToStringVarP(&headers, "header", "", nil, "webhook header value pair (golang template supported): --header Content-Type=application/xml")
cmd.Flags().StringVar(&payloadTemplateReference, "payload-template-reference", "", "reference to payload template to use for the webhook")
cmd.Flags().StringToStringVarP(&config, "config", "", nil, "webhook config variable with csv coluums (public=value or private=namespace,secret,key): --config var1=public=value1 or --config var2=private=ns1,secret1,key1")
cmd.Flags().StringToStringVarP(&config, "config", "", nil, "webhook config variable with csv coluums (value=data or secret=namespace,name,key): --config var1=value=data or --config var2=secret=ns1,name1,key1")
cmd.Flags().StringToStringVarP(&parameters, "parameter", "", nil, "webhook parameter variable with csv coluums (description,required,example,default,pattern): --parameter var3=descr,true,12345,0,[0-9]*")
cmd.Flags().StringVar(&webhookTemplateReference, "webhook-template-reference", "", "reference to webhook to use as template for the webhook")
cmd.Flags().BoolVar(&disable, "disable", false, "disable webhook")
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ require (
github.com/keygen-sh/jsonapi-go v1.2.1
github.com/keygen-sh/keygen-go/v3 v3.2.0
github.com/kubepug/kubepug v1.7.1
github.com/kubeshop/testkube-operator v1.17.55-0.20250107155019-60a0512f0adb
github.com/kubeshop/testkube-operator v1.17.55-0.20250107170252-f0f08f7d9cde
github.com/minio/minio-go/v7 v7.0.66
github.com/montanaflynn/stats v0.7.1
github.com/moogar0880/problems v0.1.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -336,8 +336,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kubepug/kubepug v1.7.1 h1:LKhfSxS8Y5mXs50v+3Lpyec+cogErDLcV7CMUuiaisw=
github.com/kubepug/kubepug v1.7.1/go.mod h1:lv+HxD0oTFL7ZWjj0u6HKhMbbTIId3eG7aWIW0gyF8g=
github.com/kubeshop/testkube-operator v1.17.55-0.20250107155019-60a0512f0adb h1:pTuCeBd2MwGGAiqomtMH8PbGuu1lSqXDK/zhcKdprA8=
github.com/kubeshop/testkube-operator v1.17.55-0.20250107155019-60a0512f0adb/go.mod h1:P47tw1nKQFufdsZndyq2HG2MSa0zK/lU0XpRfZtEmIk=
github.com/kubeshop/testkube-operator v1.17.55-0.20250107170252-f0f08f7d9cde h1:L9eP55V2RC0GlfEBcE/CJyNzolHexoKcrvAGyGoLRrc=
github.com/kubeshop/testkube-operator v1.17.55-0.20250107170252-f0f08f7d9cde/go.mod h1:P47tw1nKQFufdsZndyq2HG2MSa0zK/lU0XpRfZtEmIk=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/lithammer/fuzzysearch v1.1.8 h1:/HIuJnjHuXS8bKaiTMeeDlW2/AyIWk2brx1V8LFgLN4=
Expand Down
4 changes: 2 additions & 2 deletions pkg/api/v1/testkube/model_webhook_config_value.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ package testkube

// configuration value
type WebhookConfigValue struct {
Public *BoxedString `json:"public,omitempty"`
Private *SecretRef `json:"private,omitempty"`
Value *BoxedString `json:"value,omitempty"`
Secret *SecretRef `json:"secret,omitempty"`
}
8 changes: 4 additions & 4 deletions pkg/api/v1/testkube/model_webhook_create_request_extended.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ func (w *WebhookCreateRequest) QuoteTextFields() {
w.PayloadTemplate = fmt.Sprintf("%q", w.PayloadTemplate)
}

for key, value := range w.Config {
if value.Public != nil && value.Public.Value != "" {
value.Public.Value = fmt.Sprintf("%q", value.Public.Value)
for key, val := range w.Config {
if val.Value != nil && val.Value.Value != "" {
val.Value.Value = fmt.Sprintf("%q", val.Value.Value)
}
w.Config[key] = value
w.Config[key] = val
}

for key, value := range w.Parameters {
Expand Down
8 changes: 4 additions & 4 deletions pkg/api/v1/testkube/model_webhook_extended.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ func (w *Webhook) QuoteTextFields() {
w.PayloadTemplate = fmt.Sprintf("%q", w.PayloadTemplate)
}

for key, value := range w.Config {
if value.Public != nil && value.Public.Value != "" {
value.Public.Value = fmt.Sprintf("%q", value.Public.Value)
for key, val := range w.Config {
if val.Value != nil && val.Value.Value != "" {
val.Value.Value = fmt.Sprintf("%q", val.Value.Value)
}
w.Config[key] = value
w.Config[key] = val
}

for key, value := range w.Parameters {
Expand Down
16 changes: 8 additions & 8 deletions pkg/crd/crd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ func TestGenerateYAML(t *testing.T) {

t.Run("generate single CRD yaml", func(t *testing.T) {
// given
expected := "apiVersion: executor.testkube.io/v1\nkind: Webhook\nmetadata:\n name: name1\n namespace: namespace1\n labels:\n key1: value1\n annotations:\n key2: value2 \nspec:\n events:\n - start-test\n uri: http://localhost\n selector: app=backend\n payloadObjectField: text\n payloadTemplate: {{ .Id }}\n payloadTemplateReference: ref\n headers:\n Content-Type: appication/xml\n disabled: true\n config:\n var1:\n public: pb\n var2:\n private:\n namespace: ns\n name: secret\n key: pr\n parameters:\n var3:\n description: descr\n required: true\n example: 12345\n default: 0\n pattern: [0-9]*\n webhookTemplateRef:\n name: tmpl\n isTemplate: true\n"
expected := "apiVersion: executor.testkube.io/v1\nkind: Webhook\nmetadata:\n name: name1\n namespace: namespace1\n labels:\n key1: value1\n annotations:\n key2: value2 \nspec:\n events:\n - start-test\n uri: http://localhost\n selector: app=backend\n payloadObjectField: text\n payloadTemplate: {{ .Id }}\n payloadTemplateReference: ref\n headers:\n Content-Type: appication/xml\n disabled: true\n config:\n var1:\n value: pb\n var2:\n secret:\n namespace: ns\n name: secret\n key: pr\n parameters:\n var3:\n description: descr\n required: true\n example: 12345\n default: 0\n pattern: [0-9]*\n webhookTemplateRef:\n name: tmpl\n isTemplate: true\n"
webhooks := []testkube.Webhook{
{
Name: "name1",
Expand All @@ -28,8 +28,8 @@ func TestGenerateYAML(t *testing.T) {
PayloadTemplateReference: "ref",
Disabled: true,
Config: map[string]testkube.WebhookConfigValue{
"var1": {Public: &testkube.BoxedString{Value: "pb"}},
"var2": {Private: &testkube.SecretRef{Namespace: "ns", Name: "secret", Key: "pr"}}},
"var1": {Value: &testkube.BoxedString{Value: "pb"}},
"var2": {Secret: &testkube.SecretRef{Namespace: "ns", Name: "secret", Key: "pr"}}},
Parameters: map[string]testkube.WebhookParameterSchema{
"var3": {
Description: "descr",
Expand Down Expand Up @@ -58,7 +58,7 @@ func TestGenerateYAML(t *testing.T) {

t.Run("generate multiple CRDs yaml", func(t *testing.T) {
// given
expected := "apiVersion: executor.testkube.io/v1\nkind: Webhook\nmetadata:\n name: name1\n namespace: namespace1\n labels:\n key1: value1\n annotations:\n key3: value3 \nspec:\n events:\n - start-test\n uri: http://localhost\n selector: app=backend\n payloadObjectField: text\n payloadTemplate: {{ .Id }}\n payloadTemplateReference: ref\n headers:\n Content-Type: appication/xml\n disabled: true\n config:\n var1:\n public: pb\n var2:\n private:\n namespace: ns\n name: secret\n key: pr\n parameters:\n var3:\n description: descr\n required: true\n example: 12345\n default: 0\n pattern: [0-9]*\n webhookTemplateRef:\n name: tmpl\n isTemplate: true\n\n---\napiVersion: executor.testkube.io/v1\nkind: Webhook\nmetadata:\n name: name2\n namespace: namespace2\n labels:\n key2: value2\n annotations:\n key4: value4 \nspec:\n events:\n - end-test-success\n uri: http://localhost\n selector: app=backend\n payloadObjectField: text\n payloadTemplate: {{ .Id }}\n payloadTemplateReference: ref\n headers:\n Content-Type: appication/xml\n disabled: true\n config:\n var1:\n public: pb\n var2:\n private:\n namespace: ns\n name: secret\n key: pr\n parameters:\n var3:\n description: descr\n required: true\n example: 12345\n default: 0\n pattern: [0-9]*\n webhookTemplateRef:\n name: tmpl\n isTemplate: true\n"
expected := "apiVersion: executor.testkube.io/v1\nkind: Webhook\nmetadata:\n name: name1\n namespace: namespace1\n labels:\n key1: value1\n annotations:\n key3: value3 \nspec:\n events:\n - start-test\n uri: http://localhost\n selector: app=backend\n payloadObjectField: text\n payloadTemplate: {{ .Id }}\n payloadTemplateReference: ref\n headers:\n Content-Type: appication/xml\n disabled: true\n config:\n var1:\n value: pb\n var2:\n secret:\n namespace: ns\n name: secret\n key: pr\n parameters:\n var3:\n description: descr\n required: true\n example: 12345\n default: 0\n pattern: [0-9]*\n webhookTemplateRef:\n name: tmpl\n isTemplate: true\n\n---\napiVersion: executor.testkube.io/v1\nkind: Webhook\nmetadata:\n name: name2\n namespace: namespace2\n labels:\n key2: value2\n annotations:\n key4: value4 \nspec:\n events:\n - end-test-success\n uri: http://localhost\n selector: app=backend\n payloadObjectField: text\n payloadTemplate: {{ .Id }}\n payloadTemplateReference: ref\n headers:\n Content-Type: appication/xml\n disabled: true\n config:\n var1:\n value: pb\n var2:\n secret:\n namespace: ns\n name: secret\n key: pr\n parameters:\n var3:\n description: descr\n required: true\n example: 12345\n default: 0\n pattern: [0-9]*\n webhookTemplateRef:\n name: tmpl\n isTemplate: true\n"
webhooks := []testkube.Webhook{
{
Name: "name1",
Expand All @@ -74,8 +74,8 @@ func TestGenerateYAML(t *testing.T) {
PayloadTemplateReference: "ref",
Disabled: true,
Config: map[string]testkube.WebhookConfigValue{
"var1": {Public: &testkube.BoxedString{Value: "pb"}},
"var2": {Private: &testkube.SecretRef{Namespace: "ns", Name: "secret", Key: "pr"}}},
"var1": {Value: &testkube.BoxedString{Value: "pb"}},
"var2": {Secret: &testkube.SecretRef{Namespace: "ns", Name: "secret", Key: "pr"}}},
Parameters: map[string]testkube.WebhookParameterSchema{
"var3": {
Description: "descr",
Expand Down Expand Up @@ -106,8 +106,8 @@ func TestGenerateYAML(t *testing.T) {
PayloadTemplateReference: "ref",
Disabled: true,
Config: map[string]testkube.WebhookConfigValue{
"var1": {Public: &testkube.BoxedString{Value: "pb"}},
"var2": {Private: &testkube.SecretRef{Namespace: "ns", Name: "secret", Key: "pr"}}},
"var1": {Value: &testkube.BoxedString{Value: "pb"}},
"var2": {Secret: &testkube.SecretRef{Namespace: "ns", Name: "secret", Key: "pr"}}},
Parameters: map[string]testkube.WebhookParameterSchema{
"var3": {
Description: "descr",
Expand Down
16 changes: 8 additions & 8 deletions pkg/crd/templates/webhook.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,16 @@ spec:
{{- end }}
{{- if ne (len .Config) 0 }}
config:
{{- range $key, $value := .Config }}
{{- range $key, $val := .Config }}
{{ $key }}:
{{- if $value.Public }}
public: {{ $value.Public.Value }}
{{- if $val.Value }}
value: {{ $val.Value.Value }}
{{- end }}
{{- if $value.Private }}
private:
namespace: {{ $value.Private.Namespace }}
name: {{ $value.Private.Name }}
key: {{ $value.Private.Key }}
{{- if $val.Secret }}
secret:
namespace: {{ $val.Secret.Namespace }}
name: {{ $val.Secret.Name }}
key: {{ $val.Secret.Key }}
{{- end }}
{{- end }}
{{- end }}
Expand Down
20 changes: 10 additions & 10 deletions pkg/event/kind/webhook/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,28 +112,28 @@ OuterLoop:
types := webhooks.MapEventArrayToCRDEvents(webhook.Spec.Events)
name := fmt.Sprintf("%s.%s", webhook.ObjectMeta.Namespace, webhook.ObjectMeta.Name)
vars := make(map[string]string)
for key, value := range webhook.Spec.Config {
for key, val := range webhook.Spec.Config {
data := ""
if value.Public != nil {
data = *value.Public
if val.Value != nil {
data = *val.Value
}

if value.Private != nil {
if val.Secret != nil {
var ns []string
if value.Private.Namespace != "" {
ns = append(ns, value.Private.Namespace)
if val.Secret.Namespace != "" {
ns = append(ns, val.Secret.Namespace)
}

elements, err := r.secretClient.Get(value.Private.Name, ns...)
elements, err := r.secretClient.Get(val.Secret.Name, ns...)
if err != nil {
r.log.Errorw("error secret loading", "error", err, "name", value.Private.Name)
r.log.Errorw("error secret loading", "error", err, "name", val.Secret.Name)
continue
}

if element, ok := elements[value.Private.Key]; ok {
if element, ok := elements[val.Secret.Key]; ok {
data = element
} else {
r.log.Errorw("error secret key finding loading", "name", value.Private.Name, "key", value.Private.Key)
r.log.Errorw("error secret key finding loading", "name", val.Secret.Name, "key", val.Secret.Key)
continue
}
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/mapper/webhooks/mapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ func MapSecretRefCRDToAPI(v executorv1.SecretRef) testkube.SecretRef {
// MapConigValueCRDToAPI maps config value to OpenAPI spec
func MapConfigValueCRDToAPI(v executorv1.WebhookConfigValue) testkube.WebhookConfigValue {
return testkube.WebhookConfigValue{
Public: MapStringToBoxedString(v.Public),
Private: common.MapPtr(v.Private, MapSecretRefCRDToAPI),
Value: MapStringToBoxedString(v.Value),
Secret: common.MapPtr(v.Secret, MapSecretRefCRDToAPI),
}
}

Expand Down Expand Up @@ -133,8 +133,8 @@ func MapSecretRefAPIToCRD(v testkube.SecretRef) executorv1.SecretRef {
// MapConigValueAPIToCRD maps config value to CRD spec
func MapConfigValueAPIToCRD(v testkube.WebhookConfigValue) executorv1.WebhookConfigValue {
return executorv1.WebhookConfigValue{
Public: MapBoxedStringToString(v.Public),
Private: common.MapPtr(v.Private, MapSecretRefAPIToCRD),
Value: MapBoxedStringToString(v.Value),
Secret: common.MapPtr(v.Secret, MapSecretRefAPIToCRD),
}
}

Expand Down

0 comments on commit 0a3cd77

Please sign in to comment.