github.com/IBM-Blockchain/fabric-operator@v1.0.4/pkg/offering/base/console/override/service.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  	current "github.com/IBM-Blockchain/fabric-operator/api/v1beta1"
    23  	"github.com/IBM-Blockchain/fabric-operator/pkg/manager/resources"
    24  	corev1 "k8s.io/api/core/v1"
    25  	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    26  )
    27  
    28  func (o *Override) Service(object v1.Object, service *corev1.Service, action resources.Action) error {
    29  	instance := object.(*current.IBPConsole)
    30  
    31  	switch action {
    32  	case resources.Create:
    33  		return o.CreateService(instance, service)
    34  	case resources.Update:
    35  		return o.UpdateService(instance, service)
    36  	}
    37  
    38  	return nil
    39  }
    40  
    41  func (o *Override) CreateService(instance *current.IBPConsole, service *corev1.Service) error {
    42  	err := o.CommonServiceOverride(instance, service)
    43  	if err != nil {
    44  		return err
    45  	}
    46  
    47  	consolePort := instance.Spec.NetworkInfo.ConsolePort
    48  	if consolePort != 0 && instance.Spec.Service != nil && instance.Spec.Service.Type == corev1.ServiceTypeNodePort {
    49  		service.Spec.Ports[0].NodePort = consolePort
    50  	}
    51  
    52  	return nil
    53  }
    54  
    55  func (o *Override) UpdateService(instance *current.IBPConsole, service *corev1.Service) error {
    56  	return nil
    57  }
    58  
    59  func (o *Override) CommonServiceOverride(instance *current.IBPConsole, service *corev1.Service) error {
    60  	if instance.Spec.Service != nil {
    61  		serviceType := instance.Spec.Service.Type
    62  		if serviceType != "" {
    63  			service.Spec.Type = serviceType
    64  		}
    65  	}
    66  
    67  	// ensures a default value
    68  	if instance.Spec.Proxying == nil {
    69  		t := true
    70  		instance.Spec.Proxying = &t
    71  	}
    72  
    73  	return nil
    74  }