mirror of https://github.com/k3s-io/k3s
Fix Job Reaping
Ensure batch.Kind("Job") has a reaper, so that pods are not orphaned. Check for orphaned pods in test-cmd.sh. Also provide describer and scaler for batch.Kind("Job"). The scaler, reaper, and describer for extensions can be reused for batch.pull/6/head
parent
3433d50bc3
commit
bcdbd1c709
|
@ -242,6 +242,7 @@ runTests() {
|
||||||
hpa_min_field=".spec.minReplicas"
|
hpa_min_field=".spec.minReplicas"
|
||||||
hpa_max_field=".spec.maxReplicas"
|
hpa_max_field=".spec.maxReplicas"
|
||||||
hpa_cpu_field=".spec.cpuUtilization.targetPercentage"
|
hpa_cpu_field=".spec.cpuUtilization.targetPercentage"
|
||||||
|
job_parallelism_field=".spec.parallelism"
|
||||||
deployment_replicas=".spec.replicas"
|
deployment_replicas=".spec.replicas"
|
||||||
secret_data=".data"
|
secret_data=".data"
|
||||||
secret_type=".type"
|
secret_type=".type"
|
||||||
|
@ -723,6 +724,8 @@ __EOF__
|
||||||
kube::test::get_object_assert jobs "{{range.items}}{{$id_field}}:{{end}}" 'pi:'
|
kube::test::get_object_assert jobs "{{range.items}}{{$id_field}}:{{end}}" 'pi:'
|
||||||
# Clean up
|
# Clean up
|
||||||
kubectl delete jobs pi "${kube_flags[@]}"
|
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
|
# Pre-Condition: no Deployment exists
|
||||||
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" ''
|
kube::test::get_object_assert deployment "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
# Command
|
# Command
|
||||||
|
@ -1047,7 +1050,10 @@ __EOF__
|
||||||
|
|
||||||
### Scale a job
|
### Scale a job
|
||||||
kubectl create -f docs/user-guide/job.yaml "${kube_flags[@]}"
|
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
|
# Clean-up
|
||||||
kubectl delete job/pi "${kube_flags[@]}"
|
kubectl delete job/pi "${kube_flags[@]}"
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/api/resource"
|
"k8s.io/kubernetes/pkg/api/resource"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/fieldpath"
|
"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("DaemonSet"): &DaemonSetDescriber{c},
|
||||||
extensions.Kind("Deployment"): &DeploymentDescriber{clientset.FromUnversionedClient(c)},
|
extensions.Kind("Deployment"): &DeploymentDescriber{clientset.FromUnversionedClient(c)},
|
||||||
extensions.Kind("Job"): &JobDescriber{c},
|
extensions.Kind("Job"): &JobDescriber{c},
|
||||||
|
batch.Kind("Job"): &JobDescriber{c},
|
||||||
extensions.Kind("Ingress"): &IngressDescriber{c},
|
extensions.Kind("Ingress"): &IngressDescriber{c},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/util/wait"
|
"k8s.io/kubernetes/pkg/util/wait"
|
||||||
)
|
)
|
||||||
|
@ -46,8 +47,8 @@ func ScalerFor(kind unversioned.GroupKind, c client.Interface) (Scaler, error) {
|
||||||
return &ReplicationControllerScaler{c}, nil
|
return &ReplicationControllerScaler{c}, nil
|
||||||
case extensions.Kind("ReplicaSet"):
|
case extensions.Kind("ReplicaSet"):
|
||||||
return &ReplicaSetScaler{c.Extensions()}, nil
|
return &ReplicaSetScaler{c.Extensions()}, nil
|
||||||
case extensions.Kind("Job"):
|
case extensions.Kind("Job"), batch.Kind("Job"):
|
||||||
return &JobScaler{c.Extensions()}, nil
|
return &JobScaler{c.Extensions()}, nil // Either kind of job can be scaled with Extensions interface.
|
||||||
case extensions.Kind("Deployment"):
|
case extensions.Kind("Deployment"):
|
||||||
return &DeploymentScaler{c.Extensions()}, nil
|
return &DeploymentScaler{c.Extensions()}, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
|
@ -75,7 +76,7 @@ func ReaperFor(kind unversioned.GroupKind, c client.Interface) (Reaper, error) {
|
||||||
case api.Kind("Service"):
|
case api.Kind("Service"):
|
||||||
return &ServiceReaper{c}, nil
|
return &ServiceReaper{c}, nil
|
||||||
|
|
||||||
case extensions.Kind("Job"):
|
case extensions.Kind("Job"), batch.Kind("Job"):
|
||||||
return &JobReaper{c, Interval, Timeout}, nil
|
return &JobReaper{c, Interval, Timeout}, nil
|
||||||
|
|
||||||
case extensions.Kind("Deployment"):
|
case extensions.Kind("Deployment"):
|
||||||
|
|
Loading…
Reference in New Issue