github.com/spotahome/redis-operator@v1.2.4/operator/redisfailover/ensurer.go (about) 1 package redisfailover 2 3 import ( 4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 5 6 redisfailoverv1 "github.com/spotahome/redis-operator/api/redisfailover/v1" 7 "github.com/spotahome/redis-operator/metrics" 8 ) 9 10 // Ensure is called to ensure all of the resources associated with a RedisFailover are created 11 func (w *RedisFailoverHandler) Ensure(rf *redisfailoverv1.RedisFailover, labels map[string]string, or []metav1.OwnerReference, metricsClient metrics.Recorder) error { 12 if rf.Spec.Redis.Exporter.Enabled { 13 if err := w.rfService.EnsureRedisService(rf, labels, or); err != nil { 14 return err 15 } 16 } else { 17 if err := w.rfService.EnsureNotPresentRedisService(rf); err != nil { 18 return err 19 } 20 } 21 22 sentinelsAllowed := rf.SentinelsAllowed() 23 if sentinelsAllowed { 24 if err := w.rfService.EnsureSentinelService(rf, labels, or); err != nil { 25 return err 26 } 27 if err := w.rfService.EnsureSentinelConfigMap(rf, labels, or); err != nil { 28 return err 29 } 30 } 31 32 if err := w.rfService.EnsureRedisShutdownConfigMap(rf, labels, or); err != nil { 33 return err 34 } 35 if err := w.rfService.EnsureRedisReadinessConfigMap(rf, labels, or); err != nil { 36 return err 37 } 38 if err := w.rfService.EnsureRedisConfigMap(rf, labels, or); err != nil { 39 return err 40 } 41 if err := w.rfService.EnsureRedisStatefulset(rf, labels, or); err != nil { 42 return err 43 } 44 45 if sentinelsAllowed { 46 if err := w.rfService.EnsureSentinelDeployment(rf, labels, or); err != nil { 47 return err 48 } 49 } 50 51 return nil 52 }