mirror of https://github.com/k3s-io/k3s
Merge pull request #23467 from mikedanese/dont-sync-deployment
Auto commit by PR queue botpull/6/head
commit
e35efb5765
|
@ -627,7 +627,7 @@ func (dsc *DaemonSetsController) syncDaemonSet(key string) error {
|
|||
|
||||
everything := unversioned.LabelSelector{}
|
||||
if reflect.DeepEqual(ds.Spec.Selector, &everything) {
|
||||
dsc.eventRecorder.Eventf(ds, api.EventTypeWarning, "SelectingAll", "This controller is selecting all pods. Skipping sync.")
|
||||
dsc.eventRecorder.Eventf(ds, api.EventTypeWarning, "SelectingAll", "This daemon set is selecting all pods. A non-empty selector is required.")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -426,6 +426,11 @@ func (dc *DeploymentController) syncDeployment(key string) error {
|
|||
}
|
||||
|
||||
d := obj.(*extensions.Deployment)
|
||||
everything := unversioned.LabelSelector{}
|
||||
if reflect.DeepEqual(d.Spec.Selector, &everything) {
|
||||
dc.eventRecorder.Eventf(d, api.EventTypeWarning, "SelectingAll", "This deployment is selecting all pods. A non-empty selector is required.")
|
||||
return nil
|
||||
}
|
||||
|
||||
if d.Spec.Paused {
|
||||
// TODO: Implement scaling for paused deployments.
|
||||
|
|
|
@ -789,3 +789,28 @@ func TestSyncDeploymentCreatesReplicaSet(t *testing.T) {
|
|||
|
||||
f.run(getKey(d, t))
|
||||
}
|
||||
|
||||
// issue: https://github.com/kubernetes/kubernetes/issues/23218
|
||||
func TestDeploymentController_dontSyncDeploymentsWithEmptyPodSelector(t *testing.T) {
|
||||
fake := &fake.Clientset{}
|
||||
controller := NewDeploymentController(fake, controller.NoResyncPeriodFunc)
|
||||
|
||||
controller.eventRecorder = &record.FakeRecorder{}
|
||||
controller.rsStoreSynced = alwaysReady
|
||||
controller.podStoreSynced = alwaysReady
|
||||
|
||||
d := newDeployment(1, nil)
|
||||
empty := unversioned.LabelSelector{}
|
||||
d.Spec.Selector = &empty
|
||||
controller.dStore.Store.Add(d)
|
||||
// We expect the deployment controller to not take action here since it's configuration
|
||||
// is invalid, even though no replicasets exist that match it's selector.
|
||||
controller.syncDeployment(fmt.Sprintf("%s/%s", d.ObjectMeta.Namespace, d.ObjectMeta.Name))
|
||||
if len(fake.Actions()) == 0 {
|
||||
return
|
||||
}
|
||||
for _, action := range fake.Actions() {
|
||||
t.Logf("unexpected action: %#v", action)
|
||||
}
|
||||
t.Errorf("expected deployment controller to not take action")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue