github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/pkg/apis/componentconfig/cloudcore/v1alpha1/default.go (about)

     1  /*
     2  Copyright 2019 The KubeEdge Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8     http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package v1alpha1
    18  
    19  import (
    20  	"path"
    21  
    22  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    23  
    24  	"github.com/kubeedge/kubeedge/common/constants"
    25  	metaconfig "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/meta/v1alpha1"
    26  )
    27  
    28  // NewDefaultCloudCoreConfig returns a full CloudCoreConfig object
    29  func NewDefaultCloudCoreConfig() *CloudCoreConfig {
    30  	return &CloudCoreConfig{
    31  		TypeMeta: metav1.TypeMeta{
    32  			Kind:       Kind,
    33  			APIVersion: path.Join(GroupName, APIVersion),
    34  		},
    35  		KubeAPIConfig: &KubeAPIConfig{
    36  			Master:      "",
    37  			ContentType: constants.DefaultKubeContentType,
    38  			QPS:         constants.DefaultKubeQPS,
    39  			Burst:       constants.DefaultKubeBurst,
    40  			KubeConfig:  constants.DefaultKubeConfig,
    41  		},
    42  		Modules: &Modules{
    43  			CloudHub: &CloudHub{
    44  				Enable:            true,
    45  				KeepaliveInterval: 30,
    46  				NodeLimit:         10,
    47  				TLSCAFile:         constants.DefaultCAFile,
    48  				TLSCertFile:       constants.DefaultCertFile,
    49  				TLSPrivateKeyFile: constants.DefaultKeyFile,
    50  				WriteTimeout:      30,
    51  				Quic: &CloudHubQUIC{
    52  					Enable:             false,
    53  					Address:            "0.0.0.0",
    54  					Port:               10001,
    55  					MaxIncomingStreams: 10000,
    56  				},
    57  				UnixSocket: &CloudHubUnixSocket{
    58  					Enable:  true,
    59  					Address: "unix:///var/lib/kubeedge/kubeedge.sock",
    60  				},
    61  				WebSocket: &CloudHubWebSocket{
    62  					Enable:  true,
    63  					Port:    10000,
    64  					Address: "0.0.0.0",
    65  				},
    66  			},
    67  			EdgeController: &EdgeController{
    68  				Enable:              true,
    69  				NodeUpdateFrequency: 10,
    70  				Buffer: &EdgeControllerBuffer{
    71  					UpdatePodStatus:            constants.DefaultUpdatePodStatusBuffer,
    72  					UpdateNodeStatus:           constants.DefaultUpdateNodeStatusBuffer,
    73  					QueryConfigmap:             constants.DefaultQueryConfigMapBuffer,
    74  					QuerySecret:                constants.DefaultQuerySecretBuffer,
    75  					QueryService:               constants.DefaultQueryServiceBuffer,
    76  					QueryEndpoints:             constants.DefaultQueryEndpointsBuffer,
    77  					PodEvent:                   constants.DefaultPodEventBuffer,
    78  					ConfigmapEvent:             constants.DefaultConfigMapEventBuffer,
    79  					SecretEvent:                constants.DefaultSecretEventBuffer,
    80  					ServiceEvent:               constants.DefaultServiceEventBuffer,
    81  					EndpointsEvent:             constants.DefaultEndpointsEventBuffer,
    82  					QueryPersistentVolume:      constants.DefaultQueryPersistentVolumeBuffer,
    83  					QueryPersistentVolumeClaim: constants.DefaultQueryPersistentVolumeClaimBuffer,
    84  					QueryVolumeAttachment:      constants.DefaultQueryVolumeAttachmentBuffer,
    85  					QueryNode:                  constants.DefaultQueryNodeBuffer,
    86  					UpdateNode:                 constants.DefaultUpdateNodeBuffer,
    87  				},
    88  				Context: &EdgeControllerContext{
    89  					SendModule:     metaconfig.ModuleNameCloudHub,
    90  					ReceiveModule:  metaconfig.ModuleNameEdgeController,
    91  					ResponseModule: metaconfig.ModuleNameCloudHub,
    92  				},
    93  				Load: &EdgeControllerLoad{
    94  					UpdatePodStatusWorkers:            constants.DefaultUpdatePodStatusWorkers,
    95  					UpdateNodeStatusWorkers:           constants.DefaultUpdateNodeStatusWorkers,
    96  					QueryConfigmapWorkers:             constants.DefaultQueryConfigMapWorkers,
    97  					QuerySecretWorkers:                constants.DefaultQuerySecretWorkers,
    98  					QueryServiceWorkers:               constants.DefaultQueryServiceWorkers,
    99  					QueryEndpointsWorkers:             constants.DefaultQueryEndpointsWorkers,
   100  					QueryPersistentVolumeWorkers:      constants.DefaultQueryPersistentVolumeWorkers,
   101  					QueryPersistentVolumeClaimWorkers: constants.DefaultQueryPersistentVolumeClaimWorkers,
   102  					QueryVolumeAttachmentWorkers:      constants.DefaultQueryVolumeAttachmentWorkers,
   103  					QueryNodeWorkers:                  constants.DefaultQueryNodeWorkers,
   104  					UpdateNodeWorkers:                 constants.DefaultUpdateNodeWorkers,
   105  				},
   106  			},
   107  			DeviceController: &DeviceController{
   108  				Enable: true,
   109  				Context: &DeviceControllerContext{
   110  					SendModule:     metaconfig.ModuleNameCloudHub,
   111  					ReceiveModule:  metaconfig.ModuleNameDeviceController,
   112  					ResponseModule: metaconfig.ModuleNameCloudHub,
   113  				},
   114  				Buffer: &DeviceControllerBuffer{
   115  					UpdateDeviceStatus: constants.DefaultUpdateDeviceStatusBuffer,
   116  					DeviceEvent:        constants.DefaultDeviceEventBuffer,
   117  					DeviceModelEvent:   constants.DefaultDeviceModelEventBuffer,
   118  				},
   119  				Load: &DeviceControllerLoad{
   120  					UpdateDeviceStatusWorkers: constants.DefaultUpdateDeviceStatusWorkers,
   121  				},
   122  			},
   123  			SyncController: &SyncController{
   124  				Enable: true,
   125  			},
   126  		},
   127  	}
   128  }
   129  
   130  // NewMinCloudCoreConfig returns a min CloudCoreConfig object
   131  func NewMinCloudCoreConfig() *CloudCoreConfig {
   132  	return &CloudCoreConfig{
   133  		TypeMeta: metav1.TypeMeta{
   134  			Kind:       Kind,
   135  			APIVersion: path.Join(GroupName, APIVersion),
   136  		},
   137  		KubeAPIConfig: &KubeAPIConfig{
   138  			Master:     "",
   139  			KubeConfig: constants.DefaultKubeConfig,
   140  		},
   141  		Modules: &Modules{
   142  			CloudHub: &CloudHub{
   143  				NodeLimit:         10,
   144  				TLSCAFile:         constants.DefaultCAFile,
   145  				TLSCertFile:       constants.DefaultCertFile,
   146  				TLSPrivateKeyFile: constants.DefaultKeyFile,
   147  				UnixSocket: &CloudHubUnixSocket{
   148  					Enable:  true,
   149  					Address: "unix:///var/lib/kubeedge/kubeedge.sock",
   150  				},
   151  				WebSocket: &CloudHubWebSocket{
   152  					Enable:  true,
   153  					Port:    10000,
   154  					Address: "0.0.0.0",
   155  				},
   156  			},
   157  		},
   158  	}
   159  }