@@ -254,10 +254,17 @@ func (c *Cluster) Create() (err error) {
254254 )
255255
256256 defer func () {
257+ var pgUpdatedStatus * acidv1.Postgresql
257258 if err == nil {
258- c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusRunning ) //TODO: are you sure it's running?
259+ pgUpdatedStatus , err = c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusRunning ) //TODO: are you sure it's running?
259260 } else {
260- c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusAddFailed )
261+ pgUpdatedStatus , err = c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusAddFailed )
262+ }
263+ if err != nil {
264+ c .logger .Warningf ("could not set cluster status: %v" , err )
265+ }
266+ if pgUpdatedStatus != nil {
267+ c .setSpec (pgUpdatedStatus )
261268 }
262269 }()
263270
@@ -790,6 +797,7 @@ func (c *Cluster) addFinalizer() error {
790797
791798 // update the spec, maintaining the new resourceVersion
792799 c .setSpec (newSpec )
800+
793801 return nil
794802}
795803
@@ -838,10 +846,20 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error {
838846 c .setSpec (newSpec )
839847
840848 defer func () {
849+ var (
850+ pgUpdatedStatus * acidv1.Postgresql
851+ err error
852+ )
841853 if updateFailed {
842- c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusUpdateFailed )
854+ pgUpdatedStatus , err = c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusUpdateFailed )
843855 } else {
844- c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusRunning )
856+ pgUpdatedStatus , err = c .KubeClient .SetPostgresCRDStatus (c .clusterName (), acidv1 .ClusterStatusRunning )
857+ }
858+ if err != nil {
859+ c .logger .Warningf ("could not set cluster status: %v" , err )
860+ }
861+ if pgUpdatedStatus != nil {
862+ c .setSpec (pgUpdatedStatus )
845863 }
846864 }()
847865
0 commit comments