github.com/kyma-project/kyma-environment-broker@v0.0.1/internal/process/upgrade_kyma/btp_operator_overrides.go (about)

     1  package upgrade_kyma
     2  
     3  import (
     4  	"time"
     5  
     6  	"github.com/kyma-project/kyma-environment-broker/internal"
     7  	"github.com/kyma-project/kyma-environment-broker/internal/process"
     8  	"github.com/kyma-project/kyma-environment-broker/internal/storage"
     9  
    10  	"github.com/sirupsen/logrus"
    11  )
    12  
    13  var ConfigMapGetter internal.ClusterIDGetter = internal.GetClusterIDWithKubeconfig
    14  
    15  type BTPOperatorOverridesStep struct {
    16  	operationManager *process.UpgradeKymaOperationManager
    17  }
    18  
    19  func NewBTPOperatorOverridesStep(os storage.Operations) *BTPOperatorOverridesStep {
    20  	return &BTPOperatorOverridesStep{
    21  		operationManager: process.NewUpgradeKymaOperationManager(os),
    22  	}
    23  }
    24  
    25  func (s *BTPOperatorOverridesStep) Name() string {
    26  	return "BTPOperatorOverrides"
    27  }
    28  
    29  func (s *BTPOperatorOverridesStep) Run(operation internal.UpgradeKymaOperation, log logrus.FieldLogger) (internal.UpgradeKymaOperation, time.Duration, error) {
    30  	if !operation.InputCreator.Configuration().ContainsAdditionalComponent(internal.BTPOperatorComponentName) {
    31  		log.Infof("BTP operator is not in the list of additional components, skipping")
    32  		return operation, 0, nil
    33  	}
    34  	clusterID := operation.InstanceDetails.ServiceManagerClusterID
    35  	if clusterID == "" {
    36  		var err error
    37  		if clusterID, err = ConfigMapGetter(operation.InstanceDetails.Kubeconfig); err != nil {
    38  			return s.operationManager.OperationFailed(operation, "failed to create BTP Operator input", err, log)
    39  		}
    40  	}
    41  	creds := operation.ProvisioningParameters.ErsContext.SMOperatorCredentials
    42  	overrides := internal.GetBTPOperatorProvisioningOverrides(creds, clusterID)
    43  	operation.InputCreator.AppendOverrides(internal.BTPOperatorComponentName, overrides)
    44  	operation.InputCreator.EnableOptionalComponent(internal.BTPOperatorComponentName)
    45  	if clusterID == operation.InstanceDetails.ServiceManagerClusterID {
    46  		return operation, 0, nil
    47  	}
    48  	f := func(op *internal.UpgradeKymaOperation) {
    49  		op.InstanceDetails.ServiceManagerClusterID = clusterID
    50  	}
    51  	return s.operationManager.UpdateOperation(operation, f, log)
    52  }