Skip to content

Commit

Permalink
Merge pull request #209 from dmage/status-subresource
Browse files Browse the repository at this point in the history
Enable subresource status
  • Loading branch information
openshift-merge-robot authored Feb 26, 2019
2 parents 0780074 + 78ccdac commit 565ef16
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
2 changes: 2 additions & 0 deletions manifests/00-crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ spec:
listKind: ConfigList
plural: configs
singular: config
subresources:
status: {}
32 changes: 26 additions & 6 deletions pkg/operator/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,24 +153,44 @@ func (c *Controller) sync() error {

metadataChanged := strategy.Metadata(&prevCR.ObjectMeta, &cr.ObjectMeta)
specChanged := !reflect.DeepEqual(prevCR.Spec, cr.Spec)
statusChanged := !reflect.DeepEqual(prevCR.Status, cr.Status)
if metadataChanged || specChanged || statusChanged {
glog.Infof("object changed: %s (metadata=%t, spec=%t, status=%t)", util.ObjectInfo(cr), metadataChanged, specChanged, statusChanged)

cr.Status.ObservedGeneration = cr.Generation
if metadataChanged || specChanged {
glog.Infof("object changed: %s (metadata=%t, spec=%t)", util.ObjectInfo(cr), metadataChanged, specChanged)

client, err := regopset.NewForConfig(c.kubeconfig)
if err != nil {
return err
}

_, err = client.ImageregistryV1().Configs().Update(cr)
updatedCR, err := client.ImageregistryV1().Configs().Update(cr)
if err != nil {
if !errors.IsConflict(err) {
glog.Errorf("unable to update %s: %s", util.ObjectInfo(cr), err)
}
return err
}

// If we updated the Status field too, we'll make one more call and we
// want it to succeed.
cr.ResourceVersion = updatedCR.ResourceVersion
}

cr.Status.ObservedGeneration = cr.Generation
statusChanged := !reflect.DeepEqual(prevCR.Status, cr.Status)
if statusChanged {
glog.Infof("object changed: %s (status=%t)", util.ObjectInfo(cr), statusChanged)

client, err := regopset.NewForConfig(c.kubeconfig)
if err != nil {
return err
}

_, err = client.ImageregistryV1().Configs().UpdateStatus(cr)
if err != nil {
if !errors.IsConflict(err) {
glog.Errorf("unable to update status %s: %s", util.ObjectInfo(cr), err)
}
return err
}
}

if _, ok := applyError.(permanentError); !ok {
Expand Down

0 comments on commit 565ef16

Please sign in to comment.