Skip to content

Commit

Permalink
Always create in new format rather than old (#361)
Browse files Browse the repository at this point in the history
* Always create in new format rather than old

* Rejigger tests and make them independent of filesytem

* Fix test on mergeout
  • Loading branch information
sixolet authored and knative-prow-robot committed Aug 15, 2019
1 parent 54d024f commit b707702
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 57 deletions.
12 changes: 3 additions & 9 deletions pkg/kn/commands/service/service_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,16 +206,10 @@ func constructService(cmd *cobra.Command, editFlags ConfigurationEditFlags, name
},
}

// TODO: Should it always be `runLatest` ?
service.Spec.DeprecatedRunLatest = &serving_v1alpha1_api.RunLatestType{
Configuration: serving_v1alpha1_api.ConfigurationSpec{
DeprecatedRevisionTemplate: &serving_v1alpha1_api.RevisionTemplateSpec{
Spec: serving_v1alpha1_api.RevisionSpec{
DeprecatedContainer: &corev1.Container{},
},
},
},
service.Spec.Template = &serving_v1alpha1_api.RevisionTemplateSpec{
Spec: serving_v1alpha1_api.RevisionSpec{},
}
service.Spec.Template.Spec.Containers = []corev1.Container{{}}

err := editFlags.Apply(&service, cmd)
if err != nil {
Expand Down
32 changes: 14 additions & 18 deletions pkg/kn/commands/service/service_create_mock_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ func TestServiceCreateLabel(t *testing.T) {
template, err := servinglib.RevisionTemplateOfService(service)
assert.NilError(t, err)
template.ObjectMeta.Labels = expected
template.Spec.DeprecatedContainer.Image = "gcr.io/foo/bar:baz"
template.Spec.Containers[0].Image = "gcr.io/foo/bar:baz"
r.CreateService(service, nil)

output, err := executeServiceCommand(client, "create", "foo", "--image", "gcr.io/foo/bar:baz", "-l", "a=mouse", "--label", "b=cookie", "--label=empty", "--async")
output, err := executeServiceCommand(client, "create", "foo", "--image", "gcr.io/foo/bar:baz", "-l", "a=mouse", "--label", "b=cookie", "--label=empty", "--async", "--revision-name=")
assert.NilError(t, err)
assert.Assert(t, util.ContainsAll(output, "created", "foo", "default"))

Expand All @@ -88,23 +88,19 @@ func getService(name string) *v1alpha1.Service {
Name: name,
Namespace: "default",
},
Spec: v1alpha1.ServiceSpec{
DeprecatedRunLatest: &v1alpha1.RunLatestType{
Configuration: v1alpha1.ConfigurationSpec{
DeprecatedRevisionTemplate: &v1alpha1.RevisionTemplateSpec{
Spec: v1alpha1.RevisionSpec{
DeprecatedContainer: &corev1.Container{
Resources: corev1.ResourceRequirements{
Limits: corev1.ResourceList{},
Requests: corev1.ResourceList{},
},
},
},
},
},
},
},
Spec: v1alpha1.ServiceSpec{},
}

service.Spec.Template = &v1alpha1.RevisionTemplateSpec{
Spec: v1alpha1.RevisionSpec{},
}

service.Spec.Template.Spec.Containers = []corev1.Container{{
Resources: corev1.ResourceRequirements{
Limits: corev1.ResourceList{},
Requests: corev1.ResourceList{},
},
}}
return service
}

Expand Down
60 changes: 30 additions & 30 deletions pkg/kn/commands/service/service_create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ func TestServiceCreateImage(t *testing.T) {
template, err := servinglib.RevisionTemplateOfService(created)
if err != nil {
t.Fatal(err)
} else if template.Spec.DeprecatedContainer.Image != "gcr.io/foo/bar:baz" {
t.Fatalf("wrong image set: %v", template.Spec.DeprecatedContainer.Image)
} else if template.Spec.Containers[0].Image != "gcr.io/foo/bar:baz" {
t.Fatalf("wrong image set: %v", template.Spec.Containers[0].Image)
} else if !strings.Contains(output, "foo") || !strings.Contains(output, "created") ||
!strings.Contains(output, commands.FakeNamespace) {
t.Fatalf("wrong stdout message: %v", output)
Expand All @@ -144,8 +144,8 @@ func TestServiceCreateImageSync(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if template.Spec.DeprecatedContainer.Image != "gcr.io/foo/bar:baz" {
t.Fatalf("wrong image set: %v", template.Spec.DeprecatedContainer.Image)
if template.Spec.Containers[0].Image != "gcr.io/foo/bar:baz" {
t.Fatalf("wrong image set: %v", template.Spec.Containers[0].Image)
}
if !strings.Contains(output, "foo") || !strings.Contains(output, "created") ||
!strings.Contains(output, commands.FakeNamespace) {
Expand Down Expand Up @@ -173,19 +173,19 @@ func TestServiceCreateEnv(t *testing.T) {
}

template, err := servinglib.RevisionTemplateOfService(created)
actualEnvVars, err := servinglib.EnvToMap(template.Spec.DeprecatedContainer.Env)
actualEnvVars, err := servinglib.EnvToMap(template.Spec.Containers[0].Env)
if err != nil {
t.Fatal(err)
}

if err != nil {
t.Fatal(err)
} else if template.Spec.DeprecatedContainer.Image != "gcr.io/foo/bar:baz" {
t.Fatalf("wrong image set: %v", template.Spec.DeprecatedContainer.Image)
} else if template.Spec.Containers[0].Image != "gcr.io/foo/bar:baz" {
t.Fatalf("wrong image set: %v", template.Spec.Containers[0].Image)
} else if !reflect.DeepEqual(
actualEnvVars,
expectedEnvVars) {
t.Fatalf("wrong env vars %v", template.Spec.DeprecatedContainer.Env)
t.Fatalf("wrong env vars %v", template.Spec.Containers[0].Env)
}
}

Expand All @@ -209,9 +209,9 @@ func TestServiceCreateWithRequests(t *testing.T) {
if err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Requests,
template.Spec.Containers[0].Resources.Requests,
expectedRequestsVars) {
t.Fatalf("wrong requests vars %v", template.Spec.DeprecatedContainer.Resources.Requests)
t.Fatalf("wrong requests vars %v", template.Spec.Containers[0].Resources.Requests)
}
}

Expand All @@ -235,9 +235,9 @@ func TestServiceCreateWithLimits(t *testing.T) {
if err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Limits,
template.Spec.Containers[0].Resources.Limits,
expectedLimitsVars) {
t.Fatalf("wrong limits vars %v", template.Spec.DeprecatedContainer.Resources.Limits)
t.Fatalf("wrong limits vars %v", template.Spec.Containers[0].Resources.Limits)
}
}

Expand Down Expand Up @@ -265,15 +265,15 @@ func TestServiceCreateRequestsLimitsCPU(t *testing.T) {
t.Fatal(err)
} else {
if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Requests,
template.Spec.Containers[0].Resources.Requests,
expectedRequestsVars) {
t.Fatalf("wrong requests vars %v", template.Spec.DeprecatedContainer.Resources.Requests)
t.Fatalf("wrong requests vars %v", template.Spec.Containers[0].Resources.Requests)
}

if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Limits,
template.Spec.Containers[0].Resources.Limits,
expectedLimitsVars) {
t.Fatalf("wrong limits vars %v", template.Spec.DeprecatedContainer.Resources.Limits)
t.Fatalf("wrong limits vars %v", template.Spec.Containers[0].Resources.Limits)
}
}
}
Expand Down Expand Up @@ -302,15 +302,15 @@ func TestServiceCreateRequestsLimitsMemory(t *testing.T) {
t.Fatal(err)
} else {
if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Requests,
template.Spec.Containers[0].Resources.Requests,
expectedRequestsVars) {
t.Fatalf("wrong requests vars %v", template.Spec.DeprecatedContainer.Resources.Requests)
t.Fatalf("wrong requests vars %v", template.Spec.Containers[0].Resources.Requests)
}

if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Limits,
template.Spec.Containers[0].Resources.Limits,
expectedLimitsVars) {
t.Fatalf("wrong limits vars %v", template.Spec.DeprecatedContainer.Resources.Limits)
t.Fatalf("wrong limits vars %v", template.Spec.Containers[0].Resources.Limits)
}
}
}
Expand Down Expand Up @@ -379,15 +379,15 @@ func TestServiceCreateRequestsLimitsCPUMemory(t *testing.T) {
t.Fatal(err)
} else {
if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Requests,
template.Spec.Containers[0].Resources.Requests,
expectedRequestsVars) {
t.Fatalf("wrong requests vars %v", template.Spec.DeprecatedContainer.Resources.Requests)
t.Fatalf("wrong requests vars %v", template.Spec.Containers[0].Resources.Requests)
}

if !reflect.DeepEqual(
template.Spec.DeprecatedContainer.Resources.Limits,
template.Spec.Containers[0].Resources.Limits,
expectedLimitsVars) {
t.Fatalf("wrong limits vars %v", template.Spec.DeprecatedContainer.Resources.Limits)
t.Fatalf("wrong limits vars %v", template.Spec.Containers[0].Resources.Limits)
}
}
}
Expand Down Expand Up @@ -426,8 +426,8 @@ func TestServiceCreateImageForce(t *testing.T) {
template, err := servinglib.RevisionTemplateOfService(created)
if err != nil {
t.Fatal(err)
} else if template.Spec.DeprecatedContainer.Image != "gcr.io/foo/bar:v2" {
t.Fatalf("wrong image set: %v", template.Spec.DeprecatedContainer.Image)
} else if template.Spec.Containers[0].Image != "gcr.io/foo/bar:v2" {
t.Fatalf("wrong image set: %v", template.Spec.Containers[0].Image)
} else if !strings.Contains(output, "foo") || !strings.Contains(output, commands.FakeNamespace) {
t.Fatalf("wrong output: %s", output)
}
Expand All @@ -453,18 +453,18 @@ func TestServiceCreateEnvForce(t *testing.T) {
"B": "LIONS"}

template, err := servinglib.RevisionTemplateOfService(created)
actualEnvVars, err := servinglib.EnvToMap(template.Spec.DeprecatedContainer.Env)
actualEnvVars, err := servinglib.EnvToMap(template.Spec.Containers[0].Env)
if err != nil {
t.Fatal(err)
}
if err != nil {
t.Fatal(err)
} else if template.Spec.DeprecatedContainer.Image != "gcr.io/foo/bar:v2" {
t.Fatalf("wrong image set: %v", template.Spec.DeprecatedContainer.Image)
} else if template.Spec.Containers[0].Image != "gcr.io/foo/bar:v2" {
t.Fatalf("wrong image set: %v", template.Spec.Containers[0].Image)
} else if !reflect.DeepEqual(
actualEnvVars,
expectedEnvVars) {
t.Fatalf("wrong env vars:%v", template.Spec.DeprecatedContainer.Env)
t.Fatalf("wrong env vars:%v", template.Spec.Containers[0].Env)
} else if !strings.Contains(output, "foo") || !strings.Contains(output, commands.FakeNamespace) {
t.Fatalf("wrong output: %s", output)
}
Expand Down
25 changes: 25 additions & 0 deletions pkg/kn/commands/service/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,37 @@ import (

"github.com/knative/client/pkg/kn/commands"
knclient "github.com/knative/client/pkg/serving/v1alpha1"
"k8s.io/client-go/tools/clientcmd"
)

// Helper methods
var blankConfig clientcmd.ClientConfig

func init() {
var err error
blankConfig, err = clientcmd.NewClientConfigFromBytes([]byte(`kind: Config
version: v1
users:
- name: u
clusters:
- name: c
cluster:
server: example.com
contexts:
- name: x
context:
user: u
cluster: c
current-context: x
`))
if err != nil {
panic(err)
}
}

func executeServiceCommand(client knclient.KnClient, args ...string) (string, error) {
knParams := &commands.KnParams{}
knParams.ClientConfig = blankConfig

output := new(bytes.Buffer)
knParams.Output = output
Expand Down

0 comments on commit b707702

Please sign in to comment.