Skip to content

Commit

Permalink
encryption: fix unionrevisionedpod to match Deployer interface
Browse files Browse the repository at this point in the history
  • Loading branch information
mfojtik committed Mar 24, 2020
1 parent 1b0c1e5 commit d20dc01
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
22 changes: 15 additions & 7 deletions pkg/operator/encryption/deployer/unionrevisionedpod.go
Expand Up @@ -13,9 +13,10 @@ import (
// UnionRevisionLabelPodDeployer provides unified state from multiple distinct deployers.
type UnionRevisionLabelPodDeployer struct {
delegates []statemachine.Deployer
hasSynced []cache.InformerSynced
}

var _ statemachine.Deployer = &RevisionLabelPodDeployer{}
var _ statemachine.Deployer = &UnionRevisionLabelPodDeployer{}

// NewUnionRevisionLabelPodDeployer creates a deployer that returns a unified state from multiple distinct deployers.
// That means:
Expand Down Expand Up @@ -67,13 +68,20 @@ func (d *UnionRevisionLabelPodDeployer) DeployedEncryptionConfigSecret() (secret
return goldenSecret, true, nil
}

// AddEventHandler registers a event handler that might influence the result of DeployedEncryptionConfigSecret for all configured deployers.
func (d *UnionRevisionLabelPodDeployer) AddEventHandler(handler cache.ResourceEventHandler) []cache.InformerSynced {
ret := []cache.InformerSynced{}
func (d *UnionRevisionLabelPodDeployer) HasSynced() bool {
for _, hasSynced := range d.hasSynced {
if !hasSynced() {
return false
}
}
return true
}

// AddEventHandler registers a event handler that might influence the result of DeployedEncryptionConfigSecret for all configured deployers.
func (d *UnionRevisionLabelPodDeployer) AddEventHandler(handler cache.ResourceEventHandler) {
d.hasSynced = []cache.InformerSynced{}
for _, delegate := range d.delegates {
ret = append(ret, delegate.AddEventHandler(handler)...)
delegate.AddEventHandler(handler)
d.hasSynced = append(d.hasSynced, delegate.HasSynced)
}

return ret
}
7 changes: 5 additions & 2 deletions pkg/operator/encryption/deployer/unionrevisionedpod_test.go
Expand Up @@ -150,6 +150,9 @@ func (d *fakeDeployer) DeployedEncryptionConfigSecret() (secret *corev1.Secret,
return d.secret, d.converged, d.err
}

func (d *fakeDeployer) AddEventHandler(handler cache.ResourceEventHandler) []cache.InformerSynced {
return nil
func (d *fakeDeployer) AddEventHandler(handler cache.ResourceEventHandler) {
}

func (d *fakeDeployer) HasSynced() bool {
return true
}
2 changes: 1 addition & 1 deletion test/e2e-encryption/encryption_test.go
Expand Up @@ -135,7 +135,7 @@ func TestEncryptionIntegration(tt *testing.T) {
fakeConfigInformer.Start(stopCh)
kubeInformers.Start(stopCh)
operatorInformer.Start(stopCh)
go controllers.Run(stopCh)
go controllers.Run(ctx, 1)

waitForConfigEventuallyCond := func(cond func(s string) bool) {
t.Helper()
Expand Down

0 comments on commit d20dc01

Please sign in to comment.