github.com/operator-framework/operator-lifecycle-manager@v0.30.0/pkg/controller/operators/olm/overrides/config.go (about) 1 package overrides 2 3 import ( 4 "fmt" 5 6 "github.com/operator-framework/api/pkg/operators/v1alpha1" 7 "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister" 8 "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil" 9 "github.com/sirupsen/logrus" 10 corev1 "k8s.io/api/core/v1" 11 "k8s.io/apimachinery/pkg/labels" 12 ) 13 14 type operatorConfig struct { 15 lister operatorlister.OperatorLister 16 logger *logrus.Logger 17 } 18 19 func (o *operatorConfig) GetConfigOverrides(ownerCSV ownerutil.Owner) (envVarOverrides []corev1.EnvVar, envFromOverrides []corev1.EnvFromSource, volumeOverrides []corev1.Volume, volumeMountOverrides []corev1.VolumeMount, tolerationOverrides []corev1.Toleration, resourcesOverride *corev1.ResourceRequirements, nodeSelectorOverride map[string]string, affinity *corev1.Affinity, annotations map[string]string, err error) { 20 list, listErr := o.lister.OperatorsV1alpha1().SubscriptionLister().Subscriptions(ownerCSV.GetNamespace()).List(labels.Everything()) 21 if listErr != nil { 22 err = fmt.Errorf("failed to list subscription namespace=%s - %v", ownerCSV.GetNamespace(), listErr) 23 return 24 } 25 26 owner := findOwner(list, ownerCSV) 27 if owner == nil { 28 o.logger.Debugf("failed to get the owner subscription csv=%s", ownerCSV.GetName()) 29 return 30 } 31 32 if owner.Spec.Config == nil { 33 // No overrides 34 return 35 } 36 37 envVarOverrides = owner.Spec.Config.Env 38 envFromOverrides = owner.Spec.Config.EnvFrom 39 volumeOverrides = owner.Spec.Config.Volumes 40 volumeMountOverrides = owner.Spec.Config.VolumeMounts 41 tolerationOverrides = owner.Spec.Config.Tolerations 42 resourcesOverride = owner.Spec.Config.Resources 43 nodeSelectorOverride = owner.Spec.Config.NodeSelector 44 affinity = owner.Spec.Config.Affinity 45 annotations = owner.Spec.Config.Annotations 46 47 return 48 } 49 50 func findOwner(list []*v1alpha1.Subscription, ownerCSV ownerutil.Owner) *v1alpha1.Subscription { 51 for i := range list { 52 sub := list[i] 53 if sub.Status.InstalledCSV == ownerCSV.GetName() { 54 return sub 55 } 56 } 57 58 return nil 59 }