Skip to content

Commit

Permalink
test hassynced
Browse files Browse the repository at this point in the history
Signed-off-by: Qi Wang <qiwan@redhat.com>
  • Loading branch information
QiWang19 committed Feb 29, 2024
1 parent a8dbd61 commit 6795ede
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 20 deletions.
1 change: 1 addition & 0 deletions cmd/machine-config-controller/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ func createControllers(ctx *ctrlcommon.ControllerContext) []ctrlcommon.Controlle
ctx.ConfigInformerFactory.Config().V1().Images(),
ctx.ConfigInformerFactory.Config().V1().ImageDigestMirrorSets(),
ctx.ConfigInformerFactory.Config().V1().ImageTagMirrorSets(),
nil,
ctx.ConfigInformerFactory,
ctx.OperatorInformerFactory.Operator().V1alpha1().ImageContentSourcePolicies(),
ctx.ConfigInformerFactory.Config().V1().ClusterVersions(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ type Controller struct {
clusterImagePolicyInformer cligoinformersv1alpha1.ClusterImagePolicyInformer
clusterImagePolicyLister cligolistersv1alpha1.ClusterImagePolicyLister
clusterImagePolicyListerSynced cache.InformerSynced
addedPolicyObservers bool

mcpLister mcfglistersv1.MachineConfigPoolLister
mcpListerSynced cache.InformerSynced
Expand All @@ -133,6 +134,7 @@ func New(
imgInformer cligoinformersv1.ImageInformer,
idmsInformer cligoinformersv1.ImageDigestMirrorSetInformer,
itmsInformer cligoinformersv1.ImageTagMirrorSetInformer,
clusterImagePolicyInformer cligoinformersv1alpha1.ClusterImagePolicyInformer,
configInformerFactory configinformers.SharedInformerFactory,
icspInformer operatorinformersv1alpha1.ImageContentSourcePolicyInformer,
clusterVersionInformer cligoinformersv1.ClusterVersionInformer,
Expand Down Expand Up @@ -217,12 +219,21 @@ func New(
ctrl.configInformerFactory = configInformerFactory

enabled, err := ctrl.sigstoreAPIEnabled()
klog.Infof("imageverification sigstore FeatureGates: %v, error: %v", enabled, err)

if enabled {
ctrl.enableClusterImagePolicyHandler()
klog.Infof("creating controller sigstore FeatureGates: %v, error: %v", enabled, err)
if err != nil && enabled {
ctrl.clusterImagePolicyInformer = ctrl.configInformerFactory.Config().V1alpha1().ClusterImagePolicies()
_, err = ctrl.clusterImagePolicyInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: ctrl.clusterImagePolicyAdded,
UpdateFunc: ctrl.clusterImagePolicyUpdated,
DeleteFunc: ctrl.clusterImagePolicyDeleted,
})
ctrl.clusterImagePolicyLister = ctrl.clusterImagePolicyInformer.Lister()
ctrl.clusterImagePolicyListerSynced = ctrl.clusterImagePolicyInformer.Informer().HasSynced
if err == nil {
ctrl.addedPolicyObservers = true
}
klog.Infof("addHandler Error: %v, added observers: %v", err, ctrl.addedPolicyObservers)
}

return ctrl
}

Expand All @@ -235,9 +246,24 @@ func (ctrl *Controller) Run(workers int, stopCh <-chan struct{}) {
ctrl.imgListerSynced, ctrl.icspListerSynced, ctrl.idmsListerSynced, ctrl.itmsListerSynced, ctrl.clusterVersionListerSynced}

enabled, err := ctrl.sigstoreAPIEnabled()
klog.Infof("staring containerruntimeconfig controller sigstoreimageverification FeatureGates: %v, error: %v", enabled, err)
if enabled {
ctrl.enableClusterImagePolicyHandler()
klog.Infof("staring containerruntimeconfig controller sigstoreimageverification FeatureGates: %v, error: %v, addObservers: %v", enabled, err, ctrl.addedPolicyObservers)
klog.Infof("added observers: %v", ctrl.addedPolicyObservers)
if enabled && !ctrl.addedPolicyObservers {
ctrl.clusterImagePolicyInformer = ctrl.configInformerFactory.Config().V1alpha1().ClusterImagePolicies()

_, err = ctrl.clusterImagePolicyInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: ctrl.clusterImagePolicyAdded,
UpdateFunc: ctrl.clusterImagePolicyUpdated,
DeleteFunc: ctrl.clusterImagePolicyDeleted,
})
ctrl.clusterImagePolicyLister = ctrl.clusterImagePolicyInformer.Lister()
ctrl.clusterImagePolicyListerSynced = ctrl.clusterImagePolicyInformer.Informer().HasSynced
if err == nil {
ctrl.addedPolicyObservers = true
}
klog.Infof("addHandler Error: %v, added observers: %v", err, ctrl.addedPolicyObservers)
ctrl.configInformerFactory.Start(stopCh)

listerCaches = append(listerCaches, ctrl.clusterImagePolicyListerSynced)
}

Expand Down Expand Up @@ -354,17 +380,6 @@ func (ctrl *Controller) sigstoreAPIEnabled() (bool, error) {
return featureGates.Enabled(apicfgv1.FeatureGateSigstoreImageVerification), nil
}

func (ctrl *Controller) enableClusterImagePolicyHandler() {
ctrl.clusterImagePolicyInformer = ctrl.configInformerFactory.Config().V1alpha1().ClusterImagePolicies()
ctrl.clusterImagePolicyInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: ctrl.clusterImagePolicyAdded,
UpdateFunc: ctrl.clusterImagePolicyUpdated,
DeleteFunc: ctrl.clusterImagePolicyDeleted,
})
ctrl.clusterImagePolicyLister = ctrl.clusterImagePolicyInformer.Lister()
ctrl.clusterImagePolicyListerSynced = ctrl.clusterImagePolicyInformer.Informer().HasSynced
}

func (ctrl *Controller) updateContainerRuntimeConfig(oldObj, newObj interface{}) {
oldCtrCfg := oldObj.(*mcfgv1.ContainerRuntimeConfig)
newCtrCfg := newObj.(*mcfgv1.ContainerRuntimeConfig)
Expand Down Expand Up @@ -884,6 +899,7 @@ func (ctrl *Controller) syncImageConfig(key string) error {
if err != nil && errors.IsNotFound(err) {
clusterImagePolicies = []*apicfgv1alpha1.ClusterImagePolicy{}
}
klog.Infof("list of clusterImagePolicies: %v", len(clusterImagePolicies))
}

if clusterVersionCfg != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,8 @@ func (f *fixture) newController() *Controller {
ci.Config().V1().Images(),
ci.Config().V1().ImageDigestMirrorSets(),
ci.Config().V1().ImageTagMirrorSets(),
ci,
nil,
ci.Config().V1alpha1(),
oi.Operator().V1alpha1().ImageContentSourcePolicies(),
ci.Config().V1().ClusterVersions(),
k8sfake.NewSimpleClientset(), f.client, f.imgClient,
Expand Down

0 comments on commit 6795ede

Please sign in to comment.