Merge pull request #118597 from tkashem/apf-refactor

apf: refactor bootstrap ensure strategy
This commit is contained in:
Kubernetes Prow Robot 2023-06-13 04:59:58 -07:00 committed by GitHub
commit e80e6b8e5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -116,7 +116,9 @@ type configurationObject interface {
// NewSuggestedEnsureStrategy returns an EnsureStrategy for suggested config objects
func NewSuggestedEnsureStrategy() EnsureStrategy {
return &strategy{
alwaysAutoUpdateSpec: false,
alwaysAutoUpdateSpecFn: func(_ wantAndHave) bool {
return false
},
name: "suggested",
}
}
@ -124,14 +126,16 @@ func NewSuggestedEnsureStrategy() EnsureStrategy {
// NewMandatoryEnsureStrategy returns an EnsureStrategy for mandatory config objects
func NewMandatoryEnsureStrategy() EnsureStrategy {
return &strategy{
alwaysAutoUpdateSpec: true,
alwaysAutoUpdateSpecFn: func(_ wantAndHave) bool {
return true
},
name: "mandatory",
}
}
// auto-update strategy for the configuration objects
type strategy struct {
alwaysAutoUpdateSpec bool
alwaysAutoUpdateSpecFn func(wantAndHave) bool
name string
}
@ -146,7 +150,7 @@ func (s *strategy) ShouldUpdate(wah wantAndHave) (updatable, bool, error) {
return nil, false, nil
}
autoUpdateSpec := s.alwaysAutoUpdateSpec
autoUpdateSpec := s.alwaysAutoUpdateSpecFn(wah)
if !autoUpdateSpec {
autoUpdateSpec = shouldUpdateSpec(current)
}