• k8s-merge-robot's avatar
    Merge pull request #24514 from derekwaynecarr/pod_quota_fix · 32121e34
    k8s-merge-robot authored
    Automatic merge from submit-queue
    
    Quota ignores pod compute resources on updates
    
    Scenario:
    
    1. define a quota Q that tracks memory and cpu
    2. create pod P that uses memory=100Mi, cpu=100m
    3. update pod P to use memory=50Mi,cpu=10m
    
    Expected Results:
    Step 3 should fail with validation error.
    Quota Q should not have changed.
    
    Actual Results:
    Step 3 fails validation, but quota Q is decremented to have memory usage down 50Mi and cpu usage down 40m.  This is because the quota was getting updated even though the pod was going to fail validation.
    
    Fix:
    Quota should only support modifying pod compute resources when pods themselves support modifying their compute resources.
    
    This also fixes https://github.com/kubernetes/kubernetes/issues/24352
    
    /cc @smarterclayton - this is what we discussed.
    
    fyi: @kubernetes/rh-cluster-infra 
    32121e34
Name
Last commit
Last update
..
cleanup Loading commit data...
framework Loading commit data...
perftype Loading commit data...
testing-manifests Loading commit data...
addon_update.go Loading commit data...
autoscaling_utils.go Loading commit data...
batch_v1_jobs.go Loading commit data...
cadvisor.go Loading commit data...
cluster_size_autoscaling.go Loading commit data...
cluster_upgrade.go Loading commit data...
configmap.go Loading commit data...
container_probe.go Loading commit data...
daemon_restart.go Loading commit data...
daemon_set.go Loading commit data...
dashboard.go Loading commit data...
density.go Loading commit data...
deployment.go Loading commit data...
dns.go Loading commit data...
docker_containers.go Loading commit data...
downward_api.go Loading commit data...
downwardapi_volume.go Loading commit data...
e2e.go Loading commit data...
e2e_test.go Loading commit data...
empty_dir.go Loading commit data...
empty_dir_wrapper.go Loading commit data...
es_cluster_logging.go Loading commit data...
etcd_failure.go Loading commit data...
events.go Loading commit data...
example_cluster_dns.go Loading commit data...
example_k8petstore.go Loading commit data...
examples.go Loading commit data...
expansion.go Loading commit data...
garbage_collector.go Loading commit data...
generated_clientset.go Loading commit data...
google_compute.go Loading commit data...
horizontal_pod_autoscaling.go Loading commit data...
host_path.go Loading commit data...
ingress.go Loading commit data...
ingress_utils.go Loading commit data...
initial_resources.go Loading commit data...
job.go Loading commit data...
kibana_logging.go Loading commit data...
kubectl.go Loading commit data...
kubelet.go Loading commit data...
kubelet_etc_hosts.go Loading commit data...
kubelet_perf.go Loading commit data...
kubeproxy.go Loading commit data...
limit_range.go Loading commit data...
load.go Loading commit data...
mesos.go Loading commit data...
metrics_grabber_test.go Loading commit data...
monitoring.go Loading commit data...
namespace.go Loading commit data...
networking.go Loading commit data...
nodeoutofdisk.go Loading commit data...
pd.go Loading commit data...
persistent_volumes.go Loading commit data...
pods.go Loading commit data...
portforward.go Loading commit data...
pre_stop.go Loading commit data...
privileged.go Loading commit data...
proxy.go Loading commit data...
rc.go Loading commit data...
reboot.go Loading commit data...
replica_set.go Loading commit data...
resize_nodes.go Loading commit data...
resource_quota.go Loading commit data...
restart.go Loading commit data...
scheduler_predicates.go Loading commit data...
secrets.go Loading commit data...
security_context.go Loading commit data...
service.go Loading commit data...
service_accounts.go Loading commit data...
service_latency.go Loading commit data...
serviceloadbalancers.go Loading commit data...
ssh.go Loading commit data...
ubernetes_lite.go Loading commit data...
volume_provisioning.go Loading commit data...
volumes.go Loading commit data...