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 }