mirror of https://github.com/knative/client.git
Add timeout option to service create (#1643)
* Add timeout option to service create * Changed unit tests to reflect the default timeout value * Fixed timeout help message * Added unit test for --timeout flag * Moved --timeout flag to shared flags
This commit is contained in:
parent
bb7fd73821
commit
0ac405d4b5
|
|
@ -68,6 +68,7 @@ kn service apply s0 --filename my-svc.yml
|
||||||
--scale-utilization int Percentage of concurrent requests utilization before scaling up. (default 70)
|
--scale-utilization int Percentage of concurrent requests utilization before scaling up. (default 70)
|
||||||
--scale-window string Duration to look back for making auto-scaling decisions. The service is scaled to zero if no request was received in during that time. (eg: 10s)
|
--scale-window string Duration to look back for making auto-scaling decisions. The service is scaled to zero if no request was received in during that time. (eg: 10s)
|
||||||
--service-account string Service account name to set. An empty argument ("") clears the service account. The referenced service account must exist in the service's namespace.
|
--service-account string Service account name to set. An empty argument ("") clears the service account. The referenced service account must exist in the service's namespace.
|
||||||
|
--timeout int Duration in seconds that the request routing layer will wait for a request delivered to a container to begin replying (default 300)
|
||||||
--user int The user ID to run the container (e.g., 1001).
|
--user int The user ID to run the container (e.g., 1001).
|
||||||
--volume stringArray Add a volume from a ConfigMap (prefix cm: or config-map:) or a Secret (prefix secret: or sc:). Example: --volume myvolume=cm:myconfigmap or --volume myvolume=secret:mysecret. You can use this flag multiple times. To unset a ConfigMap/Secret reference, append "-" to the name, e.g. --volume myvolume-.
|
--volume stringArray Add a volume from a ConfigMap (prefix cm: or config-map:) or a Secret (prefix secret: or sc:). Example: --volume myvolume=cm:myconfigmap or --volume myvolume=secret:mysecret. You can use this flag multiple times. To unset a ConfigMap/Secret reference, append "-" to the name, e.g. --volume myvolume-.
|
||||||
--wait Wait for 'service apply' operation to be completed. (default true)
|
--wait Wait for 'service apply' operation to be completed. (default true)
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ kn service create NAME --image IMAGE
|
||||||
--service-account string Service account name to set. An empty argument ("") clears the service account. The referenced service account must exist in the service's namespace.
|
--service-account string Service account name to set. An empty argument ("") clears the service account. The referenced service account must exist in the service's namespace.
|
||||||
--tag strings Set tag (format: --tag revisionRef=tagName) where revisionRef can be a revision or '@latest' string representing latest ready revision. This flag can be specified multiple times.
|
--tag strings Set tag (format: --tag revisionRef=tagName) where revisionRef can be a revision or '@latest' string representing latest ready revision. This flag can be specified multiple times.
|
||||||
--target string Work on local directory instead of a remote cluster (experimental)
|
--target string Work on local directory instead of a remote cluster (experimental)
|
||||||
|
--timeout int Duration in seconds that the request routing layer will wait for a request delivered to a container to begin replying (default 300)
|
||||||
--user int The user ID to run the container (e.g., 1001).
|
--user int The user ID to run the container (e.g., 1001).
|
||||||
--volume stringArray Add a volume from a ConfigMap (prefix cm: or config-map:) or a Secret (prefix secret: or sc:). Example: --volume myvolume=cm:myconfigmap or --volume myvolume=secret:mysecret. You can use this flag multiple times. To unset a ConfigMap/Secret reference, append "-" to the name, e.g. --volume myvolume-.
|
--volume stringArray Add a volume from a ConfigMap (prefix cm: or config-map:) or a Secret (prefix secret: or sc:). Example: --volume myvolume=cm:myconfigmap or --volume myvolume=secret:mysecret. You can use this flag multiple times. To unset a ConfigMap/Secret reference, append "-" to the name, e.g. --volume myvolume-.
|
||||||
--wait Wait for 'service create' operation to be completed. (default true)
|
--wait Wait for 'service create' operation to be completed. (default true)
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,7 @@ kn service update NAME
|
||||||
--service-account string Service account name to set. An empty argument ("") clears the service account. The referenced service account must exist in the service's namespace.
|
--service-account string Service account name to set. An empty argument ("") clears the service account. The referenced service account must exist in the service's namespace.
|
||||||
--tag strings Set tag (format: --tag revisionRef=tagName) where revisionRef can be a revision or '@latest' string representing latest ready revision. This flag can be specified multiple times.
|
--tag strings Set tag (format: --tag revisionRef=tagName) where revisionRef can be a revision or '@latest' string representing latest ready revision. This flag can be specified multiple times.
|
||||||
--target string Work on local directory instead of a remote cluster (experimental)
|
--target string Work on local directory instead of a remote cluster (experimental)
|
||||||
|
--timeout int Duration in seconds that the request routing layer will wait for a request delivered to a container to begin replying (default 300)
|
||||||
--traffic strings Set traffic distribution (format: --traffic revisionRef=percent) where revisionRef can be a revision or a tag or '@latest' string representing latest ready revision. This flag can be given multiple times with percent summing up to 100%.
|
--traffic strings Set traffic distribution (format: --traffic revisionRef=percent) where revisionRef can be a revision or a tag or '@latest' string representing latest ready revision. This flag can be given multiple times with percent summing up to 100%.
|
||||||
--untag strings Untag revision (format: --untag tagName). This flag can be specified multiple times.
|
--untag strings Untag revision (format: --untag tagName). This flag can be specified multiple times.
|
||||||
--user int The user ID to run the container (e.g., 1001).
|
--user int The user ID to run the container (e.g., 1001).
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"knative.dev/serving/pkg/apis/config"
|
||||||
|
|
||||||
knflags "knative.dev/client/pkg/kn/flags"
|
knflags "knative.dev/client/pkg/kn/flags"
|
||||||
servinglib "knative.dev/client/pkg/serving"
|
servinglib "knative.dev/client/pkg/serving"
|
||||||
|
|
@ -54,6 +54,7 @@ type ConfigurationEditFlags struct {
|
||||||
AnnotationsRevision []string
|
AnnotationsRevision []string
|
||||||
ClusterLocal bool
|
ClusterLocal bool
|
||||||
ScaleInit int
|
ScaleInit int
|
||||||
|
TimeoutSeconds int64
|
||||||
|
|
||||||
// Preferences about how to do the action.
|
// Preferences about how to do the action.
|
||||||
LockToDigest bool
|
LockToDigest bool
|
||||||
|
|
@ -170,6 +171,11 @@ func (p *ConfigurationEditFlags) addSharedFlags(command *cobra.Command) {
|
||||||
|
|
||||||
command.Flags().IntVar(&p.ScaleInit, "scale-init", 0, "Initial number of replicas with which a service starts. Can be 0 or a positive integer.")
|
command.Flags().IntVar(&p.ScaleInit, "scale-init", 0, "Initial number of replicas with which a service starts. Can be 0 or a positive integer.")
|
||||||
p.markFlagMakesRevision("scale-init")
|
p.markFlagMakesRevision("scale-init")
|
||||||
|
|
||||||
|
command.Flags().Int64Var(&p.TimeoutSeconds, "timeout", config.DefaultRevisionTimeoutSeconds,
|
||||||
|
"Duration in seconds that the request routing layer will wait for a request delivered to a "+""+
|
||||||
|
"container to begin replying")
|
||||||
|
p.markFlagMakesRevision("timeout")
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddUpdateFlags adds the flags specific to update.
|
// AddUpdateFlags adds the flags specific to update.
|
||||||
|
|
@ -450,6 +456,10 @@ func (p *ConfigurationEditFlags) Apply(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cmd.Flags().Changed("timeout") {
|
||||||
|
service.Spec.Template.Spec.TimeoutSeconds = &p.TimeoutSeconds
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -478,6 +478,7 @@ func getService(name string) *servingv1.Service {
|
||||||
Requests: corev1.ResourceList{},
|
Requests: corev1.ResourceList{},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
|
||||||
return service
|
return service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -193,6 +193,17 @@ func TestServiceCreateCommand(t *testing.T) {
|
||||||
assert.DeepEqual(t, template.Spec.Containers[0].Command, []string{"sh", "/app/start.sh"})
|
assert.DeepEqual(t, template.Spec.Containers[0].Command, []string{"sh", "/app/start.sh"})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestServiceCreateTimeout(t *testing.T) {
|
||||||
|
action, created, _, err := fakeServiceCreate([]string{
|
||||||
|
"service", "create", "foo", "--image", "gcr.io/foo/bar:baz", "--timeout", "2"}, false)
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Assert(t, action.Matches("create", "services"))
|
||||||
|
|
||||||
|
timeoutSeconds := *created.Spec.Template.Spec.TimeoutSeconds
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.DeepEqual(t, int64(2), timeoutSeconds)
|
||||||
|
}
|
||||||
|
|
||||||
func TestServiceCreateArg(t *testing.T) {
|
func TestServiceCreateArg(t *testing.T) {
|
||||||
action, created, _, err := fakeServiceCreate([]string{
|
action, created, _, err := fakeServiceCreate([]string{
|
||||||
"service", "create", "foo", "--image", "gcr.io/foo/bar:baz",
|
"service", "create", "foo", "--image", "gcr.io/foo/bar:baz",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue