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 }