Handle overlapping deployments gracefully
1. When overlapping deployments are discovered, annotate them 2. Expose those overlapping annotations as warnings in kubectl describe 3. Only respect the earliest updated one (skip syncing all other overlapping deployments) 4. Use indexer instead of store for deployment lister
This commit is contained in:
@@ -203,7 +203,7 @@ func (f *fixture) run(deploymentName string) {
|
||||
c.rsStoreSynced = alwaysReady
|
||||
c.podStoreSynced = alwaysReady
|
||||
for _, d := range f.dStore {
|
||||
c.dStore.Store.Add(d)
|
||||
c.dStore.Indexer.Add(d)
|
||||
}
|
||||
for _, rs := range f.rsStore {
|
||||
c.rsStore.Store.Add(rs)
|
||||
@@ -275,7 +275,7 @@ func TestDeploymentController_dontSyncDeploymentsWithEmptyPodSelector(t *testing
|
||||
d := newDeployment(1, nil)
|
||||
empty := unversioned.LabelSelector{}
|
||||
d.Spec.Selector = &empty
|
||||
controller.dStore.Store.Add(d)
|
||||
controller.dStore.Indexer.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))
|
||||
|
Reference in New Issue
Block a user