diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index f3b324ece3..b274f8d462 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -242,6 +242,7 @@ runTests() { hpa_min_field=".spec.minReplicas" hpa_max_field=".spec.maxReplicas" hpa_cpu_field=".spec.cpuUtilization.targetPercentage" + job_parallelism_field=".spec.parallelism" deployment_replicas=".spec.replicas" secret_data=".data" secret_type=".type" @@ -723,6 +724,8 @@ __EOF__ kube::test::get_object_assert jobs "{{range.items}}{{$id_field}}:{{end}}" 'pi:' # Clean up kubectl delete jobs pi "${kube_flags[@]}" + # Post-condition: no pods exist. + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Pre-Condition: no Deployment exists kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" '' # Command @@ -1047,7 +1050,10 @@ __EOF__ ### Scale a job kubectl create -f docs/user-guide/job.yaml "${kube_flags[@]}" - # Job scale support removed. + # Command + kubectl scale --replicas=2 job/pi + # Post-condition: 2 replicas for pi + kube::test::get_object_assert 'job pi' "{{$job_parallelism_field}}" '2' # Clean-up kubectl delete job/pi "${kube_flags[@]}" diff --git a/pkg/kubectl/describe.go b/pkg/kubectl/describe.go index fe51062862..c05b79b19b 100644 --- a/pkg/kubectl/describe.go +++ b/pkg/kubectl/describe.go @@ -32,6 +32,7 @@ import ( "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/batch" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/fieldpath" @@ -92,6 +93,7 @@ func describerMap(c *client.Client) map[unversioned.GroupKind]Describer { extensions.Kind("DaemonSet"): &DaemonSetDescriber{c}, extensions.Kind("Deployment"): &DeploymentDescriber{clientset.FromUnversionedClient(c)}, extensions.Kind("Job"): &JobDescriber{c}, + batch.Kind("Job"): &JobDescriber{c}, extensions.Kind("Ingress"): &IngressDescriber{c}, } diff --git a/pkg/kubectl/scale.go b/pkg/kubectl/scale.go index 963f3050a5..10609dfd14 100644 --- a/pkg/kubectl/scale.go +++ b/pkg/kubectl/scale.go @@ -25,6 +25,7 @@ import ( "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/batch" client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/util/wait" ) @@ -46,8 +47,8 @@ func ScalerFor(kind unversioned.GroupKind, c client.Interface) (Scaler, error) { return &ReplicationControllerScaler{c}, nil case extensions.Kind("ReplicaSet"): return &ReplicaSetScaler{c.Extensions()}, nil - case extensions.Kind("Job"): - return &JobScaler{c.Extensions()}, nil + case extensions.Kind("Job"), batch.Kind("Job"): + return &JobScaler{c.Extensions()}, nil // Either kind of job can be scaled with Extensions interface. case extensions.Kind("Deployment"): return &DeploymentScaler{c.Extensions()}, nil } diff --git a/pkg/kubectl/stop.go b/pkg/kubectl/stop.go index 828b43dcc5..f90fabd31e 100644 --- a/pkg/kubectl/stop.go +++ b/pkg/kubectl/stop.go @@ -26,6 +26,7 @@ import ( "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/batch" client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/util" @@ -75,7 +76,7 @@ func ReaperFor(kind unversioned.GroupKind, c client.Interface) (Reaper, error) { case api.Kind("Service"): return &ServiceReaper{c}, nil - case extensions.Kind("Job"): + case extensions.Kind("Job"), batch.Kind("Job"): return &JobReaper{c, Interval, Timeout}, nil case extensions.Kind("Deployment"):