github.com/IBM-Blockchain/fabric-operator@v1.0.4/pkg/offering/base/orderer/override/orderernode.go (about)

     1  /*
     2   * Copyright contributors to the Hyperledger Fabric Operator project
     3   *
     4   * SPDX-License-Identifier: Apache-2.0
     5   *
     6   * Licensed under the Apache License, Version 2.0 (the "License");
     7   * you may not use this file except in compliance with the License.
     8   * You may obtain a copy of the License at:
     9   *
    10   * 	  http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   * Unless required by applicable law or agreed to in writing, software
    13   * distributed under the License is distributed on an "AS IS" BASIS,
    14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15   * See the License for the specific language governing permissions and
    16   * limitations under the License.
    17   */
    18  
    19  package override
    20  
    21  import (
    22  	"errors"
    23  	"strconv"
    24  
    25  	current "github.com/IBM-Blockchain/fabric-operator/api/v1beta1"
    26  	"github.com/IBM-Blockchain/fabric-operator/pkg/manager/resources"
    27  	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    28  )
    29  
    30  func (o *Override) OrdererNode(object v1.Object, orderernode *current.IBPOrderer, action resources.Action) error {
    31  	instance := object.(*current.IBPOrderer)
    32  	switch action {
    33  	case resources.Create:
    34  		return o.CreateOrderernode(instance, orderernode)
    35  	case resources.Update:
    36  		return o.UpdateOrderernode(instance, orderernode)
    37  	}
    38  
    39  	return nil
    40  }
    41  
    42  func (o *Override) CreateOrderernode(instance *current.IBPOrderer, orderernode *current.IBPOrderer) error {
    43  	if instance.Spec.ClusterLocation != nil && instance.Spec.ClusterSize != 0 {
    44  		offset := *instance.Spec.NodeNumber - 1
    45  		instance.Spec.Region = instance.Spec.ClusterLocation[offset].Region
    46  		instance.Spec.Zone = instance.Spec.ClusterLocation[offset].Zone
    47  
    48  		if instance.Spec.Zone != "" && instance.Spec.Region == "" {
    49  			instance.Spec.Region = "select"
    50  		}
    51  	}
    52  
    53  	if !instance.Spec.License.Accept {
    54  		return errors.New("user must accept license before continuing")
    55  	}
    56  
    57  	name := instance.GetName()
    58  	instance.DeepCopyInto(orderernode)
    59  	orderernode.Name = name + "node" + strconv.Itoa(*instance.Spec.NodeNumber)
    60  	orderernode.ResourceVersion = ""
    61  	orderernode.Labels = map[string]string{
    62  		"parent": name,
    63  	}
    64  
    65  	return nil
    66  }
    67  
    68  func (o *Override) UpdateOrderernode(instance *current.IBPOrderer, deployment *current.IBPOrderer) error {
    69  	return nil
    70  }