Skip to content

Commit 7c22f02

Browse files
authored
Merge pull request #816 from ecordell/udpate-catalog
Update catalog if image changes
2 parents b2d1cd2 + 0061ece commit 7c22f02

File tree

10 files changed

+324
-190
lines changed

10 files changed

+324
-190
lines changed

manifests/0000_50_olm_09-aggregated.clusterrole.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@ metadata:
2525
rbac.authorization.k8s.io/aggregate-to-view: "true"
2626
rules:
2727
- apiGroups: ["operators.coreos.com"]
28-
resources: ["clusterserviceversions", "catalogsources", "installplans", "subscriptions", "packagemanifests"]
28+
resources: ["clusterserviceversions", "catalogsources", "installplans", "subscriptions", "operatorgroups"]
29+
verbs: ["get", "list", "watch"]
30+
- apiGroups: ["packages.operators.coreos.com"]
31+
resources: ["packagemanifests"]
2932
verbs: ["get", "list", "watch"]

pkg/controller/operators/catalog/operator.go

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -323,22 +323,6 @@ func (o *Operator) handleDeletion(obj interface{}) {
323323
return
324324
}
325325

326-
// Check the registry server
327-
checker := o.reconciler.ReconcilerForSource(catsrc)
328-
healthy, err := checker.CheckRegistryServer(catsrc)
329-
if err != nil {
330-
logger.WithError(err).Warn("error checking registry health")
331-
} else if !healthy {
332-
logger.Debug("registry server unhealthy, updating catalog source")
333-
catsrc.Status.RegistryServiceStatus = nil
334-
_, err = o.client.OperatorsV1alpha1().CatalogSources(catsrc.GetNamespace()).UpdateStatus(catsrc)
335-
if err == nil {
336-
logger.Debug("successfully updated catalogsource registry status")
337-
return
338-
}
339-
logger.WithError(err).Warn("error updating catalogsource registry status")
340-
}
341-
342326
// Requeue CatalogSource
343327
if err := o.catSrcQueueSet.Requeue(catsrc.GetName(), catsrc.GetNamespace()); err != nil {
344328
logger.WithError(err).Warn("error requeuing owner catalogsource")
@@ -429,17 +413,22 @@ func (o *Operator) syncCatalogSources(obj interface{}) (syncError error) {
429413
logger.Debug("catsrc configmap state good, checking registry pod")
430414
}
431415

432-
reconciler := o.reconciler.ReconcilerForSource(catsrc)
433-
if reconciler == nil {
416+
srcReconciler := o.reconciler.ReconcilerForSource(catsrc)
417+
if srcReconciler == nil {
434418
// TODO: Add failure status on catalogsource and remove from sources
435419
return fmt.Errorf("no reconciler for source type %s", catsrc.Spec.SourceType)
436420
}
437421

422+
healthy, err := srcReconciler.CheckRegistryServer(catsrc)
423+
if err != nil {
424+
return err
425+
}
426+
438427
// If registry pod hasn't been created or hasn't been updated since the last configmap update, recreate it
439-
if catsrc.Status.RegistryServiceStatus == nil || catsrc.Status.RegistryServiceStatus.CreatedAt.Before(&catsrc.Status.LastSync) {
428+
if !healthy || catsrc.Status.RegistryServiceStatus == nil || catsrc.Status.RegistryServiceStatus.CreatedAt.Before(&catsrc.Status.LastSync) {
440429
logger.Debug("ensuring registry server")
441430

442-
if err := reconciler.EnsureRegistryServer(out); err != nil {
431+
if err := srcReconciler.EnsureRegistryServer(out); err != nil {
443432
logger.WithError(err).Warn("couldn't ensure registry server")
444433
return err
445434
}
@@ -914,7 +903,7 @@ func (o *Operator) createInstallPlan(namespace string, subs []*v1alpha1.Subscrip
914903
func (o *Operator) requeueSubscription(name, namespace string) {
915904
// we can build the key directly, will need to change if queue uses different key scheme
916905
key := fmt.Sprintf("%s/%s", namespace, name)
917-
o.subQueue.AddRateLimited(key)
906+
o.subQueue.Add(key)
918907
return
919908
}
920909

0 commit comments

Comments
 (0)