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  }