6
6
7
7
"github.com/pkg/errors"
8
8
apps "k8s.io/api/apps/v1"
9
- v1 "k8s.io/api/core/v1"
9
+ v1 "k8s.io/api/apps/v1"
10
+ corev1 "k8s.io/api/core/v1"
10
11
kerrors "k8s.io/apimachinery/pkg/api/errors"
11
12
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12
13
@@ -15,20 +16,21 @@ import (
15
16
)
16
17
17
18
// startChunkServers start all chunkservers for each device of every node
18
- func (c * Cluster ) startChunkServers () error {
19
+ func (c * Cluster ) startChunkServers () ([]* v1.Deployment , error ) {
20
+ results := make ([]* v1.Deployment , 0 )
19
21
if len (job2DeviceInfos ) == 0 {
20
22
logger .Errorf ("no job to format device and provision chunk file" )
21
- return nil
23
+ return results , nil
22
24
}
23
25
24
26
if len (chunkserverConfigs ) == 0 {
25
27
logger .Errorf ("no device need to start chunkserver" )
26
- return nil
28
+ return results , nil
27
29
}
28
30
29
31
if len (job2DeviceInfos ) != len (chunkserverConfigs ) {
30
32
logger .Errorf ("no device need to start chunkserver" )
31
- return errors .New ("failed to start chunkserver because of job numbers is not equal with chunkserver config" )
33
+ return results , errors .New ("failed to start chunkserver because of job numbers is not equal with chunkserver config" )
32
34
}
33
35
34
36
_ = c .createStartCSConfigMap ()
@@ -41,18 +43,18 @@ func (c *Cluster) startChunkServers() error {
41
43
42
44
err := c .createConfigMap (csConfig )
43
45
if err != nil {
44
- return errors .Wrapf (err , "failed to create chunkserver configmap for %v" , config .ChunkserverConfigMapName )
46
+ return results , errors .Wrapf (err , "failed to create chunkserver configmap for %v" , config .ChunkserverConfigMapName )
45
47
}
46
48
47
49
d , err := c .makeDeployment (& csConfig )
48
50
if err != nil {
49
- return errors .Wrap (err , "failed to create chunkserver Deployment" )
51
+ return results , errors .Wrap (err , "failed to create chunkserver Deployment" )
50
52
}
51
53
52
54
newDeployment , err := c .context .Clientset .AppsV1 ().Deployments (c .namespacedName .Namespace ).Create (d )
53
55
if err != nil {
54
56
if ! kerrors .IsAlreadyExists (err ) {
55
- return errors .Wrapf (err , "failed to create chunkserver deployment %s" , csConfig .ResourceName )
57
+ return results , errors .Wrapf (err , "failed to create chunkserver deployment %s" , csConfig .ResourceName )
56
58
}
57
59
logger .Infof ("deployment for chunkserver %s already exists. updating if needed" , csConfig .ResourceName )
58
60
@@ -63,12 +65,11 @@ func (c *Cluster) startChunkServers() error {
63
65
} else {
64
66
logger .Infof ("Deployment %s has been created , waiting for startup" , newDeployment .GetName ())
65
67
// TODO:wait for the new deployment
66
- // deploymentsToWaitFor = append(deploymentsToWaitFor , newDeployment)
68
+ results = append (results , newDeployment )
67
69
}
68
70
// update condition type and phase etc.
69
71
}
70
-
71
- return nil
72
+ return results , nil
72
73
}
73
74
74
75
// createCSClientConfigMap create cs_client configmap
@@ -95,7 +96,7 @@ func (c *Cluster) createCSClientConfigMap() error {
95
96
config .CSClientConfigMapDataKey : replacedCsClientData ,
96
97
}
97
98
98
- cm := & v1 .ConfigMap {
99
+ cm := & corev1 .ConfigMap {
99
100
ObjectMeta : metav1.ObjectMeta {
100
101
Name : config .CSClientConfigMapName ,
101
102
Namespace : c .namespacedName .Namespace ,
@@ -146,7 +147,7 @@ func (c *Cluster) CreateS3ConfigMap() error {
146
147
config .S3ConfigMapDataKey : configMapData ,
147
148
}
148
149
149
- cm := & v1 .ConfigMap {
150
+ cm := & corev1 .ConfigMap {
150
151
ObjectMeta : metav1.ObjectMeta {
151
152
Name : config .S3ConfigMapName ,
152
153
Namespace : c .namespacedName .Namespace ,
@@ -175,7 +176,7 @@ func (c *Cluster) createStartCSConfigMap() error {
175
176
startChunkserverScriptFileDataKey : script .START ,
176
177
}
177
178
178
- cm := & v1 .ConfigMap {
179
+ cm := & corev1 .ConfigMap {
179
180
ObjectMeta : metav1.ObjectMeta {
180
181
Name : startChunkserverConfigMapName ,
181
182
Namespace : c .namespacedName .Namespace ,
@@ -227,7 +228,7 @@ func (c *Cluster) createConfigMap(csConfig chunkserverConfig) error {
227
228
config .ChunkserverConfigMapDataKey : replacedChunkServerData ,
228
229
}
229
230
230
- cm := & v1 .ConfigMap {
231
+ cm := & corev1 .ConfigMap {
231
232
ObjectMeta : metav1.ObjectMeta {
232
233
Name : csConfig .CurrentConfigMapName ,
233
234
Namespace : c .namespacedName .Namespace ,
@@ -254,19 +255,19 @@ func (c *Cluster) makeDeployment(csConfig *chunkserverConfig) (*apps.Deployment,
254
255
vols , _ := c .createTopoAndToolVolumeAndMount ()
255
256
volumes = append (volumes , vols ... )
256
257
257
- podSpec := v1 .PodTemplateSpec {
258
+ podSpec := corev1 .PodTemplateSpec {
258
259
ObjectMeta : metav1.ObjectMeta {
259
260
Name : csConfig .ResourceName ,
260
261
Labels : c .getChunkServerPodLabels (csConfig ),
261
262
},
262
- Spec : v1 .PodSpec {
263
- Containers : []v1 .Container {
263
+ Spec : corev1 .PodSpec {
264
+ Containers : []corev1 .Container {
264
265
c .makeCSDaemonContainer (csConfig ),
265
266
},
266
267
NodeName : csConfig .NodeName ,
267
- RestartPolicy : v1 .RestartPolicyAlways ,
268
+ RestartPolicy : corev1 .RestartPolicyAlways ,
268
269
HostNetwork : true ,
269
- DNSPolicy : v1 .DNSClusterFirstWithHostNet ,
270
+ DNSPolicy : corev1 .DNSClusterFirstWithHostNet ,
270
271
Volumes : volumes ,
271
272
},
272
273
}
@@ -301,7 +302,7 @@ func (c *Cluster) makeDeployment(csConfig *chunkserverConfig) (*apps.Deployment,
301
302
}
302
303
303
304
// makeCSDaemonContainer create chunkserver container
304
- func (c * Cluster ) makeCSDaemonContainer (csConfig * chunkserverConfig ) v1 .Container {
305
+ func (c * Cluster ) makeCSDaemonContainer (csConfig * chunkserverConfig ) corev1 .Container {
305
306
306
307
privileged := true
307
308
runAsUser := int64 (0 )
@@ -321,7 +322,7 @@ func (c *Cluster) makeCSDaemonContainer(csConfig *chunkserverConfig) v1.Containe
321
322
argsChunkserverPort := strconv .Itoa (csConfig .Port )
322
323
argsConfigFileMountPath := path .Join (config .ChunkserverConfigMapMountPathDir , config .ChunkserverConfigMapDataKey )
323
324
324
- container := v1 .Container {
325
+ container := corev1 .Container {
325
326
Name : "chunkserver" ,
326
327
Command : []string {
327
328
"/bin/bash" ,
@@ -339,16 +340,16 @@ func (c *Cluster) makeCSDaemonContainer(csConfig *chunkserverConfig) v1.Containe
339
340
Image : c .spec .CurveVersion .Image ,
340
341
ImagePullPolicy : c .spec .CurveVersion .ImagePullPolicy ,
341
342
VolumeMounts : volMounts ,
342
- Ports : []v1 .ContainerPort {
343
+ Ports : []corev1 .ContainerPort {
343
344
{
344
345
Name : "listen-port" ,
345
346
ContainerPort : int32 (csConfig .Port ),
346
347
HostPort : int32 (csConfig .Port ),
347
- Protocol : v1 .ProtocolTCP ,
348
+ Protocol : corev1 .ProtocolTCP ,
348
349
},
349
350
},
350
- Env : []v1 .EnvVar {{Name : "TZ" , Value : "Asia/Hangzhou" }},
351
- SecurityContext : & v1 .SecurityContext {
351
+ Env : []corev1 .EnvVar {{Name : "TZ" , Value : "Asia/Hangzhou" }},
352
+ SecurityContext : & corev1 .SecurityContext {
352
353
Privileged : & privileged ,
353
354
RunAsUser : & runAsUser ,
354
355
RunAsNonRoot : & runAsNonRoot ,
0 commit comments