github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/pkg/apis/componentconfig/edgesite/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 "os" 21 "path" 22 23 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 24 25 "github.com/kubeedge/kubeedge/common/constants" 26 cloudcoreconfig "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/cloudcore/v1alpha1" 27 edgecoreconfig "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha1" 28 metaconfig "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/meta/v1alpha1" 29 "github.com/kubeedge/kubeedge/pkg/util" 30 ) 31 32 // NewDefaultEdgeSiteConfig returns a full EdgeSiteConfig object 33 func NewDefaultEdgeSiteConfig() *EdgeSiteConfig { 34 hostnameOverride, err := os.Hostname() 35 if err != nil { 36 hostnameOverride = constants.DefaultHostnameOverride 37 } 38 localIP, _ := util.GetLocalIP(hostnameOverride) 39 return &EdgeSiteConfig{ 40 TypeMeta: metav1.TypeMeta{ 41 Kind: Kind, 42 APIVersion: path.Join(GroupName, APIVersion), 43 }, 44 DataBase: &edgecoreconfig.DataBase{ 45 DriverName: DataBaseDriverName, 46 AliasName: DataBaseAliasName, 47 DataSource: DataBaseDataSource, 48 }, 49 KubeAPIConfig: &cloudcoreconfig.KubeAPIConfig{ 50 Master: "", 51 ContentType: constants.DefaultKubeContentType, 52 QPS: constants.DefaultKubeQPS, 53 Burst: constants.DefaultKubeBurst, 54 KubeConfig: constants.DefaultKubeConfig, 55 }, 56 Modules: &Modules{ 57 EdgeController: &cloudcoreconfig.EdgeController{ 58 Enable: true, 59 NodeUpdateFrequency: 10, 60 Buffer: &cloudcoreconfig.EdgeControllerBuffer{ 61 UpdatePodStatus: constants.DefaultUpdatePodStatusBuffer, 62 UpdateNodeStatus: constants.DefaultUpdateNodeStatusBuffer, 63 QueryConfigmap: constants.DefaultQueryConfigMapBuffer, 64 QuerySecret: constants.DefaultQuerySecretBuffer, 65 QueryService: constants.DefaultQueryServiceBuffer, 66 QueryEndpoints: constants.DefaultQueryEndpointsBuffer, 67 PodEvent: constants.DefaultPodEventBuffer, 68 ConfigmapEvent: constants.DefaultConfigMapEventBuffer, 69 SecretEvent: constants.DefaultSecretEventBuffer, 70 ServiceEvent: constants.DefaultServiceEventBuffer, 71 EndpointsEvent: constants.DefaultEndpointsEventBuffer, 72 QueryPersistentVolume: constants.DefaultQueryPersistentVolumeBuffer, 73 QueryPersistentVolumeClaim: constants.DefaultQueryPersistentVolumeClaimBuffer, 74 QueryVolumeAttachment: constants.DefaultQueryVolumeAttachmentBuffer, 75 QueryNode: constants.DefaultQueryNodeBuffer, 76 UpdateNode: constants.DefaultUpdateNodeBuffer, 77 }, 78 Context: &cloudcoreconfig.EdgeControllerContext{ 79 SendModule: metaconfig.ModuleNameMetaManager, 80 ReceiveModule: metaconfig.ModuleNameEdgeController, 81 ResponseModule: metaconfig.ModuleNameMetaManager, 82 }, 83 Load: &cloudcoreconfig.EdgeControllerLoad{ 84 UpdatePodStatusWorkers: constants.DefaultUpdatePodStatusWorkers, 85 UpdateNodeStatusWorkers: constants.DefaultUpdateNodeStatusWorkers, 86 QueryConfigmapWorkers: constants.DefaultQueryConfigMapWorkers, 87 QuerySecretWorkers: constants.DefaultQuerySecretWorkers, 88 QueryServiceWorkers: constants.DefaultQueryServiceWorkers, 89 QueryEndpointsWorkers: constants.DefaultQueryEndpointsWorkers, 90 QueryPersistentVolumeWorkers: constants.DefaultQueryPersistentVolumeWorkers, 91 QueryPersistentVolumeClaimWorkers: constants.DefaultQueryPersistentVolumeClaimWorkers, 92 QueryVolumeAttachmentWorkers: constants.DefaultQueryVolumeAttachmentWorkers, 93 QueryNodeWorkers: constants.DefaultQueryNodeWorkers, 94 UpdateNodeWorkers: constants.DefaultUpdateNodeWorkers, 95 }, 96 }, 97 Edged: &edgecoreconfig.Edged{ 98 Enable: true, 99 NodeStatusUpdateFrequency: constants.DefaultNodeStatusUpdateFrequency, 100 DockerAddress: constants.DefaultDockerAddress, 101 RuntimeType: constants.DefaultRuntimeType, 102 NodeIP: localIP, 103 ClusterDNS: "", 104 ClusterDomain: "", 105 EdgedMemoryCapacity: constants.DefaultEdgedMemoryCapacity, 106 RemoteRuntimeEndpoint: constants.DefaultRemoteRuntimeEndpoint, 107 RemoteImageEndpoint: constants.DefaultRemoteImageEndpoint, 108 PodSandboxImage: constants.DefaultPodSandboxImage, 109 ImagePullProgressDeadline: constants.DefaultImagePullProgressDeadline, 110 RuntimeRequestTimeout: constants.DefaultRuntimeRequestTimeout, 111 HostnameOverride: hostnameOverride, 112 RegisterNode: true, 113 RegisterNodeNamespace: constants.DefaultRegisterNodeNamespace, 114 InterfaceName: constants.DefaultInterfaceName, 115 DevicePluginEnabled: false, 116 GPUPluginEnabled: false, 117 ImageGCHighThreshold: constants.DefaultImageGCHighThreshold, 118 ImageGCLowThreshold: constants.DefaultImageGCLowThreshold, 119 MaximumDeadContainersPerPod: constants.DefaultMaximumDeadContainersPerPod, 120 CGroupDriver: edgecoreconfig.CGroupDriverCGroupFS, 121 }, 122 MetaManager: &edgecoreconfig.MetaManager{ 123 Enable: true, 124 ContextSendGroup: metaconfig.GroupNameEdgeController, 125 ContextSendModule: metaconfig.ModuleNameEdgeController, 126 PodStatusSyncInterval: constants.DefaultPodStatusSyncInterval, 127 }, 128 }, 129 } 130 } 131 132 // NewMinEdgeSiteConfig returns a common EdgeSiteConfig object 133 func NewMinEdgeSiteConfig() *EdgeSiteConfig { 134 hostnameOverride, err := os.Hostname() 135 if err != nil { 136 hostnameOverride = constants.DefaultHostnameOverride 137 } 138 localIP, _ := util.GetLocalIP(hostnameOverride) 139 return &EdgeSiteConfig{ 140 TypeMeta: metav1.TypeMeta{ 141 Kind: Kind, 142 APIVersion: path.Join(GroupName, APIVersion), 143 }, 144 DataBase: &edgecoreconfig.DataBase{ 145 DataSource: DataBaseDataSource, 146 }, 147 KubeAPIConfig: &cloudcoreconfig.KubeAPIConfig{ 148 Master: "", 149 KubeConfig: constants.DefaultKubeConfig, 150 }, 151 Modules: &Modules{ 152 Edged: &edgecoreconfig.Edged{ 153 DockerAddress: constants.DefaultDockerAddress, 154 RuntimeType: constants.DefaultRuntimeType, 155 NodeIP: localIP, 156 ClusterDNS: "", 157 ClusterDomain: "", 158 RemoteRuntimeEndpoint: constants.DefaultRemoteRuntimeEndpoint, 159 RemoteImageEndpoint: constants.DefaultRemoteImageEndpoint, 160 //TODO (@kuramal) Automatically set PodSandboxImage according to the architecture.(x86,amd64,arm or arm64) 161 PodSandboxImage: constants.DefaultPodSandboxImage, 162 HostnameOverride: hostnameOverride, 163 InterfaceName: constants.DefaultInterfaceName, 164 DevicePluginEnabled: false, 165 GPUPluginEnabled: false, 166 CGroupDriver: edgecoreconfig.CGroupDriverCGroupFS, 167 }, 168 }, 169 } 170 }