Skip to content

Commit d99447c

Browse files
committed
etcd-manager: Use image volumes to mount etcd images
1 parent 08bb87b commit d99447c

File tree

5 files changed

+283
-0
lines changed

5 files changed

+283
-0
lines changed

pkg/model/components/etcdmanager/model.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,33 @@ func (b *EtcdManagerBuilder) buildPod(etcdCluster kops.EtcdClusterSpec, instance
331331

332332
// Remap image via AssetBuilder
333333
container.Image = b.AssetBuilder.RemapImage(container.Image)
334+
335+
for _, etcdVersion := range etcdSupportedVersions() {
336+
if etcdVersion.SymlinkToVersion == "" {
337+
volume := v1.Volume{
338+
Name: "etcd-" + strings.ReplaceAll(etcdVersion.Version, ".", "-"),
339+
VolumeSource: v1.VolumeSource{
340+
Image: &v1.ImageVolumeSource{
341+
Reference: b.AssetBuilder.RemapImage(etcdVersion.Image),
342+
PullPolicy: v1.PullIfNotPresent,
343+
},
344+
},
345+
}
346+
pod.Spec.Volumes = append(pod.Spec.Volumes, volume)
347+
348+
volumeMount := v1.VolumeMount{
349+
Name: "etcd-" + strings.ReplaceAll(etcdVersion.Version, ".", "-"),
350+
MountPath: "/opt/etcd/" + etcdVersion.Version,
351+
}
352+
container.VolumeMounts = append(container.VolumeMounts, volumeMount)
353+
} else {
354+
volumeMount := v1.VolumeMount{
355+
Name: "etcd-" + strings.ReplaceAll(etcdVersion.Version, ".", "-"),
356+
MountPath: "/opt/etcd/" + etcdVersion.SymlinkToVersion,
357+
}
358+
container.VolumeMounts = append(container.VolumeMounts, volumeMount)
359+
}
360+
}
334361
}
335362

336363
var clientHost string

pkg/model/components/etcdmanager/tests/interval/tasks.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,30 @@ Contents: |
103103
name: pki
104104
- mountPath: /opt
105105
name: opt
106+
- mountPath: /opt/etcd/3.4.13
107+
name: etcd-3-4-13
108+
- mountPath: /opt/etcd/3.4.13
109+
name: etcd-3-4-3
110+
- mountPath: /opt/etcd/3.5.21
111+
name: etcd-3-5-0
112+
- mountPath: /opt/etcd/3.5.21
113+
name: etcd-3-5-1
114+
- mountPath: /opt/etcd/3.5.21
115+
name: etcd-3-5-13
116+
- mountPath: /opt/etcd/3.5.21
117+
name: etcd-3-5-17
118+
- mountPath: /opt/etcd/3.5.21
119+
name: etcd-3-5-21
120+
- mountPath: /opt/etcd/3.5.21
121+
name: etcd-3-5-3
122+
- mountPath: /opt/etcd/3.5.21
123+
name: etcd-3-5-4
124+
- mountPath: /opt/etcd/3.5.21
125+
name: etcd-3-5-6
126+
- mountPath: /opt/etcd/3.5.21
127+
name: etcd-3-5-7
128+
- mountPath: /opt/etcd/3.5.21
129+
name: etcd-3-5-9
106130
- mountPath: /var/log/etcd.log
107131
name: varlogetcd
108132
hostNetwork: true
@@ -196,6 +220,14 @@ Contents: |
196220
name: pki
197221
- emptyDir: {}
198222
name: opt
223+
- image:
224+
pullPolicy: IfNotPresent
225+
reference: registry.k8s.io/etcd:v3.4.13
226+
name: etcd-3-4-13
227+
- image:
228+
pullPolicy: IfNotPresent
229+
reference: registry.k8s.io/etcd:v3.5.21
230+
name: etcd-3-5-21
199231
- hostPath:
200232
path: /var/log/etcd-events.log
201233
type: FileOrCreate
@@ -246,6 +278,30 @@ Contents: |
246278
name: pki
247279
- mountPath: /opt
248280
name: opt
281+
- mountPath: /opt/etcd/3.4.13
282+
name: etcd-3-4-13
283+
- mountPath: /opt/etcd/3.4.13
284+
name: etcd-3-4-3
285+
- mountPath: /opt/etcd/3.5.21
286+
name: etcd-3-5-0
287+
- mountPath: /opt/etcd/3.5.21
288+
name: etcd-3-5-1
289+
- mountPath: /opt/etcd/3.5.21
290+
name: etcd-3-5-13
291+
- mountPath: /opt/etcd/3.5.21
292+
name: etcd-3-5-17
293+
- mountPath: /opt/etcd/3.5.21
294+
name: etcd-3-5-21
295+
- mountPath: /opt/etcd/3.5.21
296+
name: etcd-3-5-3
297+
- mountPath: /opt/etcd/3.5.21
298+
name: etcd-3-5-4
299+
- mountPath: /opt/etcd/3.5.21
300+
name: etcd-3-5-6
301+
- mountPath: /opt/etcd/3.5.21
302+
name: etcd-3-5-7
303+
- mountPath: /opt/etcd/3.5.21
304+
name: etcd-3-5-9
249305
- mountPath: /var/log/etcd.log
250306
name: varlogetcd
251307
hostNetwork: true
@@ -339,6 +395,14 @@ Contents: |
339395
name: pki
340396
- emptyDir: {}
341397
name: opt
398+
- image:
399+
pullPolicy: IfNotPresent
400+
reference: registry.k8s.io/etcd:v3.4.13
401+
name: etcd-3-4-13
402+
- image:
403+
pullPolicy: IfNotPresent
404+
reference: registry.k8s.io/etcd:v3.5.21
405+
name: etcd-3-5-21
342406
- hostPath:
343407
path: /var/log/etcd.log
344408
type: FileOrCreate

pkg/model/components/etcdmanager/tests/minimal/tasks.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,30 @@ Contents: |
102102
name: pki
103103
- mountPath: /opt
104104
name: opt
105+
- mountPath: /opt/etcd/3.4.13
106+
name: etcd-3-4-13
107+
- mountPath: /opt/etcd/3.4.13
108+
name: etcd-3-4-3
109+
- mountPath: /opt/etcd/3.5.21
110+
name: etcd-3-5-0
111+
- mountPath: /opt/etcd/3.5.21
112+
name: etcd-3-5-1
113+
- mountPath: /opt/etcd/3.5.21
114+
name: etcd-3-5-13
115+
- mountPath: /opt/etcd/3.5.21
116+
name: etcd-3-5-17
117+
- mountPath: /opt/etcd/3.5.21
118+
name: etcd-3-5-21
119+
- mountPath: /opt/etcd/3.5.21
120+
name: etcd-3-5-3
121+
- mountPath: /opt/etcd/3.5.21
122+
name: etcd-3-5-4
123+
- mountPath: /opt/etcd/3.5.21
124+
name: etcd-3-5-6
125+
- mountPath: /opt/etcd/3.5.21
126+
name: etcd-3-5-7
127+
- mountPath: /opt/etcd/3.5.21
128+
name: etcd-3-5-9
105129
- mountPath: /var/log/etcd.log
106130
name: varlogetcd
107131
hostNetwork: true
@@ -195,6 +219,14 @@ Contents: |
195219
name: pki
196220
- emptyDir: {}
197221
name: opt
222+
- image:
223+
pullPolicy: IfNotPresent
224+
reference: registry.k8s.io/etcd:v3.4.13
225+
name: etcd-3-4-13
226+
- image:
227+
pullPolicy: IfNotPresent
228+
reference: registry.k8s.io/etcd:v3.5.21
229+
name: etcd-3-5-21
198230
- hostPath:
199231
path: /var/log/etcd-events.log
200232
type: FileOrCreate
@@ -244,6 +276,30 @@ Contents: |
244276
name: pki
245277
- mountPath: /opt
246278
name: opt
279+
- mountPath: /opt/etcd/3.4.13
280+
name: etcd-3-4-13
281+
- mountPath: /opt/etcd/3.4.13
282+
name: etcd-3-4-3
283+
- mountPath: /opt/etcd/3.5.21
284+
name: etcd-3-5-0
285+
- mountPath: /opt/etcd/3.5.21
286+
name: etcd-3-5-1
287+
- mountPath: /opt/etcd/3.5.21
288+
name: etcd-3-5-13
289+
- mountPath: /opt/etcd/3.5.21
290+
name: etcd-3-5-17
291+
- mountPath: /opt/etcd/3.5.21
292+
name: etcd-3-5-21
293+
- mountPath: /opt/etcd/3.5.21
294+
name: etcd-3-5-3
295+
- mountPath: /opt/etcd/3.5.21
296+
name: etcd-3-5-4
297+
- mountPath: /opt/etcd/3.5.21
298+
name: etcd-3-5-6
299+
- mountPath: /opt/etcd/3.5.21
300+
name: etcd-3-5-7
301+
- mountPath: /opt/etcd/3.5.21
302+
name: etcd-3-5-9
247303
- mountPath: /var/log/etcd.log
248304
name: varlogetcd
249305
hostNetwork: true
@@ -337,6 +393,14 @@ Contents: |
337393
name: pki
338394
- emptyDir: {}
339395
name: opt
396+
- image:
397+
pullPolicy: IfNotPresent
398+
reference: registry.k8s.io/etcd:v3.4.13
399+
name: etcd-3-4-13
400+
- image:
401+
pullPolicy: IfNotPresent
402+
reference: registry.k8s.io/etcd:v3.5.21
403+
name: etcd-3-5-21
340404
- hostPath:
341405
path: /var/log/etcd.log
342406
type: FileOrCreate

pkg/model/components/etcdmanager/tests/overwrite_settings/tasks.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,30 @@ Contents: |
105105
name: pki
106106
- mountPath: /opt
107107
name: opt
108+
- mountPath: /opt/etcd/3.4.13
109+
name: etcd-3-4-13
110+
- mountPath: /opt/etcd/3.4.13
111+
name: etcd-3-4-3
112+
- mountPath: /opt/etcd/3.5.21
113+
name: etcd-3-5-0
114+
- mountPath: /opt/etcd/3.5.21
115+
name: etcd-3-5-1
116+
- mountPath: /opt/etcd/3.5.21
117+
name: etcd-3-5-13
118+
- mountPath: /opt/etcd/3.5.21
119+
name: etcd-3-5-17
120+
- mountPath: /opt/etcd/3.5.21
121+
name: etcd-3-5-21
122+
- mountPath: /opt/etcd/3.5.21
123+
name: etcd-3-5-3
124+
- mountPath: /opt/etcd/3.5.21
125+
name: etcd-3-5-4
126+
- mountPath: /opt/etcd/3.5.21
127+
name: etcd-3-5-6
128+
- mountPath: /opt/etcd/3.5.21
129+
name: etcd-3-5-7
130+
- mountPath: /opt/etcd/3.5.21
131+
name: etcd-3-5-9
108132
- mountPath: /var/log/etcd.log
109133
name: varlogetcd
110134
hostNetwork: true
@@ -198,6 +222,14 @@ Contents: |
198222
name: pki
199223
- emptyDir: {}
200224
name: opt
225+
- image:
226+
pullPolicy: IfNotPresent
227+
reference: registry.k8s.io/etcd:v3.4.13
228+
name: etcd-3-4-13
229+
- image:
230+
pullPolicy: IfNotPresent
231+
reference: registry.k8s.io/etcd:v3.5.21
232+
name: etcd-3-5-21
201233
- hostPath:
202234
path: /var/log/etcd-events.log
203235
type: FileOrCreate
@@ -250,6 +282,30 @@ Contents: |
250282
name: pki
251283
- mountPath: /opt
252284
name: opt
285+
- mountPath: /opt/etcd/3.4.13
286+
name: etcd-3-4-13
287+
- mountPath: /opt/etcd/3.4.13
288+
name: etcd-3-4-3
289+
- mountPath: /opt/etcd/3.5.21
290+
name: etcd-3-5-0
291+
- mountPath: /opt/etcd/3.5.21
292+
name: etcd-3-5-1
293+
- mountPath: /opt/etcd/3.5.21
294+
name: etcd-3-5-13
295+
- mountPath: /opt/etcd/3.5.21
296+
name: etcd-3-5-17
297+
- mountPath: /opt/etcd/3.5.21
298+
name: etcd-3-5-21
299+
- mountPath: /opt/etcd/3.5.21
300+
name: etcd-3-5-3
301+
- mountPath: /opt/etcd/3.5.21
302+
name: etcd-3-5-4
303+
- mountPath: /opt/etcd/3.5.21
304+
name: etcd-3-5-6
305+
- mountPath: /opt/etcd/3.5.21
306+
name: etcd-3-5-7
307+
- mountPath: /opt/etcd/3.5.21
308+
name: etcd-3-5-9
253309
- mountPath: /var/log/etcd.log
254310
name: varlogetcd
255311
hostNetwork: true
@@ -343,6 +399,14 @@ Contents: |
343399
name: pki
344400
- emptyDir: {}
345401
name: opt
402+
- image:
403+
pullPolicy: IfNotPresent
404+
reference: registry.k8s.io/etcd:v3.4.13
405+
name: etcd-3-4-13
406+
- image:
407+
pullPolicy: IfNotPresent
408+
reference: registry.k8s.io/etcd:v3.5.21
409+
name: etcd-3-5-21
346410
- hostPath:
347411
path: /var/log/etcd.log
348412
type: FileOrCreate

0 commit comments

Comments
 (0)