Skip to content

Commit

Permalink
Merge branch 'kedacore:main' into seccomp-profile
Browse files Browse the repository at this point in the history
  • Loading branch information
joebowbeer committed Aug 20, 2022
2 parents e76cb39 + db6ba50 commit f0bdd4f
Show file tree
Hide file tree
Showing 72 changed files with 570 additions and 659 deletions.
11 changes: 5 additions & 6 deletions tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,6 @@ type templateData struct {
...
}

// templateValues consists of templates and their names
type templateValues map[string] string


func TestScaler(t *testing.T) {
setupTest(t)

Expand All @@ -158,12 +154,15 @@ func setupTest(t *testing.T) {
assert.NoErrorf(t, err, "error while installing redis - %s", err)
}

func getTemplateData() (templateData, map[string]string) {
func getTemplateData() (templateData, []Template) {
return templateData{
// Populate fields required in YAML templates
...
...
}, templateValues{"deploymentTemplate":deploymentTemplate, "scaledObjectTemplate":scaledObjectTemplate}
}, []Template{
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "scaledObjectTemplate", Config: scaledObjectTemplate},
}
}

func testScaleUp(t *testing.T, kc *kubernetes.Clientset) {
Expand Down
27 changes: 17 additions & 10 deletions tests/helper/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,10 @@ func KubernetesScaleDeployment(t *testing.T, kc *kubernetes.Clientset, name stri
}
}

type Template struct {
Name, Config string
}

func KubectlApplyWithTemplate(t *testing.T, data interface{}, templateName string, config string) {
t.Logf("Applying template: %s", templateName)

Expand All @@ -420,9 +424,10 @@ func KubectlApplyWithTemplate(t *testing.T, data interface{}, templateName strin
assert.NoErrorf(t, err, "cannot close temp file - %s", err)
}

func KubectlApplyMultipleWithTemplate(t *testing.T, data interface{}, configs map[string]string) {
for templateName, config := range configs {
KubectlApplyWithTemplate(t, data, templateName, config)
// Apply templates in order of slice
func KubectlApplyMultipleWithTemplate(t *testing.T, data interface{}, templates []Template) {
for _, tmpl := range templates {
KubectlApplyWithTemplate(t, data, tmpl.Name, tmpl.Config)
}
}

Expand All @@ -447,19 +452,21 @@ func KubectlDeleteWithTemplate(t *testing.T, data interface{}, templateName, con
assert.NoErrorf(t, err, "cannot close temp file - %s", err)
}

func KubectlDeleteMultipleWithTemplate(t *testing.T, data interface{}, configs map[string]string) {
for templateName, config := range configs {
KubectlDeleteWithTemplate(t, data, templateName, config)
// Delete templates in reverse order of slice
func KubectlDeleteMultipleWithTemplate(t *testing.T, data interface{}, templates []Template) {
for idx := len(templates) - 1; idx >= 0; idx-- {
tmpl := templates[idx]
KubectlDeleteWithTemplate(t, data, tmpl.Name, tmpl.Config)
}
}

func CreateKubernetesResources(t *testing.T, kc *kubernetes.Clientset, nsName string, data interface{}, configs map[string]string) {
func CreateKubernetesResources(t *testing.T, kc *kubernetes.Clientset, nsName string, data interface{}, templates []Template) {
CreateNamespace(t, kc, nsName)
KubectlApplyMultipleWithTemplate(t, data, configs)
KubectlApplyMultipleWithTemplate(t, data, templates)
}

func DeleteKubernetesResources(t *testing.T, kc *kubernetes.Clientset, nsName string, data interface{}, configs map[string]string) {
KubectlDeleteMultipleWithTemplate(t, data, configs)
func DeleteKubernetesResources(t *testing.T, kc *kubernetes.Clientset, nsName string, data interface{}, templates []Template) {
KubectlDeleteMultipleWithTemplate(t, data, templates)
DeleteNamespace(t, kc, nsName)
deleted := WaitForNamespaceDeletion(t, kc, nsName)
assert.Truef(t, deleted, "%s namespace not deleted", nsName)
Expand Down
9 changes: 5 additions & 4 deletions tests/internals/custom_hpa_name/custom_hpa_name_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ type templateData struct {
CustomHpaName string
}

type templateValues map[string]string

const (
deploymentTemplate = `
apiVersion: apps/v1
Expand Down Expand Up @@ -128,7 +126,10 @@ func test(t *testing.T, testName string, firstHpaName string, firstSOTemplate st
// Create kubernetes resources
kc := GetKubernetesClient(t)
data := getTemplateData(testNamespace, deploymentName, scaledObjectName, customHpaName)
templates := templateValues{"deploymentTemplate": deploymentTemplate, "firstSOTemplate": firstSOTemplate}
templates := []Template{
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "firstSOTemplate", Config: firstSOTemplate},
}

CreateKubernetesResources(t, kc, testNamespace, data, templates)

Expand All @@ -137,7 +138,7 @@ func test(t *testing.T, testName string, firstHpaName string, firstSOTemplate st
assert.Equal(t, firstHpaName, hpa.Name)

t.Log("--- change hpa name ---")
templatesCustomName := templateValues{"secondSOTemplate": secondSOTemplate}
templatesCustomName := []Template{{Name: "secondSOTemplate", Config: secondSOTemplate}}
KubectlApplyMultipleWithTemplate(t, data, templatesCustomName)

t.Logf("--- validate new hpa is with %s name ---", secondHpaDescription)
Expand Down
12 changes: 6 additions & 6 deletions tests/internals/idle_replicas/idle_replicas_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ type templateData struct {
ScaledObjectName string
MonitoredDeploymentName string
}
type templateValues map[string]string

const (
monitoredDeploymentTemplate = `
Expand Down Expand Up @@ -125,16 +124,17 @@ func TestScaler(t *testing.T) {
DeleteKubernetesResources(t, kc, testNamespace, data, templates)
}

func getTemplateData() (templateData, templateValues) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
DeploymentName: deploymentName,
ScaledObjectName: scaledObjectName,
MonitoredDeploymentName: monitoredDeploymentName,
}, templateValues{
"deploymentTemplate": deploymentTemplate,
"monitoredDeploymentTemplate": monitoredDeploymentTemplate,
"scaledObjectTemplate": scaledObjectTemplate}
}, []Template{
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "monitoredDeploymentTemplate", Config: monitoredDeploymentTemplate},
{Name: "scaledObjectTemplate", Config: scaledObjectTemplate},
}
}

func testScaleUp(t *testing.T, kc *kubernetes.Clientset) {
Expand Down
12 changes: 6 additions & 6 deletions tests/internals/min_replica_sj/min_replica_sj_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ type templateData struct {
MetricThreshold, MetricValue int
MinReplicaCount, MaxReplicaCount int
}
type templateValues map[string]string

const (
serviceTemplate = `
Expand Down Expand Up @@ -173,7 +172,7 @@ func testMinReplicaCountWithMetricValueGreaterMaxReplicaCountScalesOnlyToMaxRepl
"job count should be %d after %d iterations", data.MaxReplicaCount, iterationCount)
}

func getTemplateData(minReplicaCount int, maxReplicaCount int, metricValue int) (templateData, templateValues) {
func getTemplateData(minReplicaCount int, maxReplicaCount int, metricValue int) (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
ServiceName: serviceName,
Expand All @@ -183,8 +182,9 @@ func getTemplateData(minReplicaCount int, maxReplicaCount int, metricValue int)
MetricValue: metricValue,
MinReplicaCount: minReplicaCount,
MaxReplicaCount: maxReplicaCount,
}, templateValues{
"scalerTemplate": scalerTemplate,
"serviceTemplate": serviceTemplate,
"scaledJobTemplate": scaledJobTemplate}
}, []Template{
{Name: "scalerTemplate", Config: scalerTemplate},
{Name: "serviceTemplate", Config: serviceTemplate},
{Name: "scaledJobTemplate", Config: scaledJobTemplate},
}
}
12 changes: 6 additions & 6 deletions tests/internals/pause_scaling/pause_scaling_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ type templateData struct {
MonitoredDeploymentName string
PausedReplicaCount int
}
type templateValues map[string]string

const (
monitoredDeploymentTemplate = `
Expand Down Expand Up @@ -151,17 +150,18 @@ func TestScaler(t *testing.T) {
DeleteKubernetesResources(t, kc, testNamespace, data, templates)
}

func getTemplateData() (templateData, templateValues) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
DeploymentName: deploymentName,
ScaledObjectName: scaledObjectName,
MonitoredDeploymentName: monitoredDeploymentName,
PausedReplicaCount: 0,
}, templateValues{
"deploymentTemplate": deploymentTemplate,
"monitoredDeploymentTemplate": monitoredDeploymentTemplate,
"scaledObjectAnnotatedTemplate": scaledObjectAnnotatedTemplate}
}, []Template{
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "monitoredDeploymentTemplate", Config: monitoredDeploymentTemplate},
{Name: "scaledObjectAnnotatedTemplate", Config: scaledObjectAnnotatedTemplate},
}
}

func testPauseAt0(t *testing.T, kc *kubernetes.Clientset) {
Expand Down
9 changes: 4 additions & 5 deletions tests/internals/restore_original/restore_original_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ type templateData struct {
ScaledObjectName string
MonitoredDeploymentName string
}
type templateValues map[string]string

const (
monitoredDeploymentTemplate = `
Expand Down Expand Up @@ -123,15 +122,15 @@ func TestScaler(t *testing.T) {
DeleteKubernetesResources(t, kc, testNamespace, data, templates)
}

func getTemplateData() (templateData, templateValues) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
DeploymentName: deploymentName,
ScaledObjectName: scaledObjectName,
MonitoredDeploymentName: monitoredDeploymentName,
}, templateValues{
"deploymentTemplate": deploymentTemplate,
"monitoredDeploymentTemplate": monitoredDeploymentTemplate,
}, []Template{
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "monitoredDeploymentTemplate", Config: monitoredDeploymentTemplate},
}
}

Expand Down
13 changes: 6 additions & 7 deletions tests/internals/subresource_scale/subresource_scale_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ type templateData struct {
ScaledObjectName string
}

type templateValues map[string]string

const (
monitoredDeploymentTemplate = `apiVersion: apps/v1
kind: Deployment
Expand Down Expand Up @@ -181,16 +179,17 @@ func testScaleDown(t *testing.T, kc *kubernetes.Clientset) {
"replica count should be 0 after 1 minute")
}

func getTemplateData() (templateData, templateValues) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
MonitoredDeploymentName: monitoredDeploymentName,
ArgoRolloutName: argoRolloutName,
ScaledObjectName: scaledObjectName,
}, templateValues{
"monitoredDeploymentTemplate": monitoredDeploymentTemplate,
"argoRolloutTemplate": argoRolloutTemplate,
"scaledObjectTemplate": scaledObjectTemplate}
}, []Template{
{Name: "monitoredDeploymentTemplate", Config: monitoredDeploymentTemplate},
{Name: "argoRolloutTemplate", Config: argoRolloutTemplate},
{Name: "scaledObjectTemplate", Config: scaledObjectTemplate},
}
}

func waitForArgoRolloutReplicaCount(t *testing.T, name, namespace string, target int) bool {
Expand Down
9 changes: 4 additions & 5 deletions tests/internals/value_metric_type/value_metric_type_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ type templateData struct {
MonitoredDeploymentName string
MetricType string
}
type templateValues map[string]string

const (
monitoredDeploymentTemplate = `
Expand Down Expand Up @@ -126,15 +125,15 @@ func TestScaler(t *testing.T) {
DeleteKubernetesResources(t, kc, testNamespace, data, templates)
}

func getTemplateData() (templateData, templateValues) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
DeploymentName: deploymentName,
ScaledObjectName: scaledObjectName,
MonitoredDeploymentName: monitoredDeploymentName,
}, templateValues{
"deploymentTemplate": deploymentTemplate,
"monitoredDeploymentTemplate": monitoredDeploymentTemplate,
}, []Template{
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "monitoredDeploymentTemplate", Config: monitoredDeploymentTemplate},
}
}

Expand Down
20 changes: 9 additions & 11 deletions tests/scalers/activemq/activemq_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ type templateData struct {
ActiveMQDestination string
}

type templateValues map[string]string

const (
secretTemplate = `apiVersion: v1
kind: Secret
Expand Down Expand Up @@ -514,7 +512,7 @@ func testScaleDown(t *testing.T, kc *kubernetes.Clientset) {
"replica count should be %d after 3 minutes", minReplicaCount)
}

func getTemplateData() (templateData, map[string]string) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
DeploymentName: deploymentName,
Expand All @@ -525,13 +523,13 @@ func getTemplateData() (templateData, map[string]string) {
ActiveMQConf: activemqConf,
ActiveMQHome: activemqHome,
ActiveMQDestination: activemqDestination,
}, templateValues{
"secretTemplate": secretTemplate,
"triggerAuthenticationTemplate": triggerAuthenticationTemplate,
"activemqServiceTemplate": activemqServiceTemplate,
"activemqConfigTemplate": activemqConfigTemplate,
"activemqSteatefulTemplate": activemqSteatefulTemplate,
"deploymentTemplate": deploymentTemplate,
"scaledObjectTemplate": scaledObjectTemplate,
}, []Template{
{Name: "secretTemplate", Config: secretTemplate},
{Name: "triggerAuthenticationTemplate", Config: triggerAuthenticationTemplate},
{Name: "activemqServiceTemplate", Config: activemqServiceTemplate},
{Name: "activemqConfigTemplate", Config: activemqConfigTemplate},
{Name: "activemqSteatefulTemplate", Config: activemqSteatefulTemplate},
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "scaledObjectTemplate", Config: scaledObjectTemplate},
}
}
26 changes: 11 additions & 15 deletions tests/scalers/artemis/artemis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ type templateData struct {
ArtemisUserBase64 string
}

type templateValues map[string]string

const (
secretTemplate = `apiVersion: v1
kind: Secret
Expand Down Expand Up @@ -324,16 +322,14 @@ func TestArtemisScaler(t *testing.T) {

func testActivation(t *testing.T, kc *kubernetes.Clientset, data templateData) {
t.Log("--- testing activation ---")
templateTriggerJob := templateValues{"triggerJobTemplate": producerJob}
KubectlApplyMultipleWithTemplate(t, data, templateTriggerJob)
KubectlApplyWithTemplate(t, data, "triggerJobTemplate", producerJob)

AssertReplicaCountNotChangeDuringTimePeriod(t, kc, deploymentName, testNamespace, minReplicaCount, 60)
}

func testScaleUp(t *testing.T, kc *kubernetes.Clientset, data templateData) {
t.Log("--- testing scale up ---")
templateTriggerJob := templateValues{"triggerJobTemplate": producerJob}
KubectlApplyMultipleWithTemplate(t, data, templateTriggerJob)
KubectlApplyWithTemplate(t, data, "triggerJobTemplate", producerJob)

assert.True(t, WaitForDeploymentReplicaReadyCount(t, kc, deploymentName, testNamespace, maxReplicaCount, 60, 3),
"replica count should be %d after 3 minutes", maxReplicaCount)
Expand All @@ -346,21 +342,21 @@ func testScaleDown(t *testing.T, kc *kubernetes.Clientset) {
"replica count should be %d after 3 minutes", minReplicaCount)
}

func getTemplateData() (templateData, map[string]string) {
func getTemplateData() (templateData, []Template) {
return templateData{
TestNamespace: testNamespace,
DeploymentName: deploymentName,
ScaledObjectName: scaledObjectName,
SecretName: secretName,
ArtemisPasswordBase64: base64.StdEncoding.EncodeToString([]byte(artemisPassword)),
ArtemisUserBase64: base64.StdEncoding.EncodeToString([]byte(artemisUser)),
}, templateValues{
"secretTemplate": secretTemplate,
"triggerAuthenticationTemplate": triggerAuthenticationTemplate,
"artemisServiceTemplate": artemisServiceTemplate,
"artemisConfigTemplate": artemisConfigTemplate,
"artemisDeploymentTemplate": artemisDeploymentTemplate,
"deploymentTemplate": deploymentTemplate,
"scaledObjectTemplate": scaledObjectTemplate,
}, []Template{
{Name: "secretTemplate", Config: secretTemplate},
{Name: "triggerAuthenticationTemplate", Config: triggerAuthenticationTemplate},
{Name: "artemisServiceTemplate", Config: artemisServiceTemplate},
{Name: "artemisConfigTemplate", Config: artemisConfigTemplate},
{Name: "artemisDeploymentTemplate", Config: artemisDeploymentTemplate},
{Name: "deploymentTemplate", Config: deploymentTemplate},
{Name: "scaledObjectTemplate", Config: scaledObjectTemplate},
}
}
Loading

0 comments on commit f0bdd4f

Please sign in to comment.