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